Fixed the progress bar when using ffmpeg
Added the capability of storing non-visible values
This commit is contained in:
parent
dc350be634
commit
5529560ce9
7 changed files with 66 additions and 23 deletions
|
|
@ -22,6 +22,7 @@ import os
|
|||
import devede.configuration_data
|
||||
import devede.executor
|
||||
import devede.mux_dvd_menu
|
||||
import devede.avconv_converter
|
||||
|
||||
class avconv_converter(devede.executor.executor):
|
||||
|
||||
|
|
@ -47,7 +48,7 @@ class avconv_converter(devede.executor.executor):
|
|||
divx = False
|
||||
h264 = False
|
||||
for line in stdout.decode("latin-1").split("\n"):
|
||||
parts = line.split(" ")
|
||||
parts = line.strip().split(" ")
|
||||
if len(parts) < 2:
|
||||
continue
|
||||
if len(parts[0]) != 6:
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
import devede.configuration_data
|
||||
import devede.mplayer_detector
|
||||
import devede.avconv_converter
|
||||
import devede.ffmpeg_converter
|
||||
import devede.vlc
|
||||
import devede.brasero
|
||||
import devede.k3b
|
||||
|
|
@ -37,7 +38,7 @@ class converter:
|
|||
|
||||
self.config = devede.configuration_data.configuration.get_config()
|
||||
# List of classes with conversion capabilities, in order of preference
|
||||
self.c = [devede.vlc.vlc_player, devede.mplayer_detector.mplayer_detector, devede.avconv_converter.avconv_converter,
|
||||
self.c = [devede.vlc.vlc_player, devede.mplayer_detector.mplayer_detector, devede.ffmpeg_converter.ffmpeg_converter, devede.avconv_converter.avconv_converter,
|
||||
devede.brasero.brasero, devede.k3b.k3b]
|
||||
|
||||
self.analizers = {}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
self.add_group("position_horizontal", ["left", "center", "right"], "center", self.update_preview)
|
||||
self.add_group("at_startup", ["menu_show_at_startup", "play_first_title_at_startup"], "menu_show_at_startup")
|
||||
|
||||
self.add_integer_adjustment("sound_length", 30)
|
||||
|
||||
self.add_float_adjustment("margin_left", 10.0, self.update_preview)
|
||||
self.add_float_adjustment("margin_top", 12.5, self.update_preview)
|
||||
self.add_float_adjustment("margin_right", 10.0, self.update_preview)
|
||||
|
|
@ -63,7 +65,6 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
|
||||
self.cached_menu_font = None
|
||||
self.cached_menu_size = 0
|
||||
self.sound_length = 30
|
||||
self.video_rate = 2500
|
||||
self.audio_rate = 224
|
||||
|
||||
|
|
@ -89,18 +90,21 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
else:
|
||||
self.sound_length = length
|
||||
|
||||
|
||||
def update_preview(self,b=None):
|
||||
|
||||
self.store_ui(self.builder)
|
||||
self.sf = None # force to repaint the menu
|
||||
self.wdrawing_area.queue_draw()
|
||||
|
||||
|
||||
def on_default_background_clicked(self,b):
|
||||
|
||||
self.background_picture = self.default_background
|
||||
self.update_ui(self.builder)
|
||||
self.update_preview()
|
||||
|
||||
|
||||
def on_no_sound_clicked(self,b):
|
||||
|
||||
self.background_music = self.default_sound
|
||||
|
|
@ -167,6 +171,7 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
self.store_ui(self.builder)
|
||||
self.wmenu.destroy()
|
||||
|
||||
|
||||
def on_cancel_clicked(self,b):
|
||||
|
||||
self.restore_ui()
|
||||
|
|
@ -205,6 +210,7 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
|
||||
return fontname,fontstyle,fontslant,fontsize
|
||||
|
||||
|
||||
def paint_arrow(self,xl,xr,y,arrow_type,left):
|
||||
|
||||
if arrow_type == "menu_entry":
|
||||
|
|
@ -302,7 +308,6 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
self.cr.set_antialias(cairo.ANTIALIAS_DEFAULT)
|
||||
|
||||
|
||||
|
||||
def refresh_static_data(self):
|
||||
""" This method sets data that can't be changed from the dvd settings window.
|
||||
It must be called before painting a menu """
|
||||
|
|
@ -433,6 +438,7 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
self.paint_arrow(xl, med, y, "menu_entry_activated", True)
|
||||
return coordinates
|
||||
|
||||
|
||||
def paint_base(self,xl, xr, y, type_b):
|
||||
|
||||
height = self.cached_menu_size + self.entry_vertical_margin
|
||||
|
|
@ -462,6 +468,7 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
self.current_shown_page -= 1
|
||||
self.update_preview()
|
||||
|
||||
|
||||
def on_previous_page_clicked(self,b):
|
||||
|
||||
self.current_shown_page -= 1
|
||||
|
|
@ -469,6 +476,7 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
self.current_shown_page = 0
|
||||
self.update_preview()
|
||||
|
||||
|
||||
def on_drawingarea_preview_draw(self,widget,cr):
|
||||
|
||||
""" Callback to repaint the menu preview window when it
|
||||
|
|
@ -482,6 +490,7 @@ class dvd_menu(devede.interface_manager.interface_manager):
|
|||
cr.set_source_surface(self.sf)
|
||||
cr.paint()
|
||||
|
||||
|
||||
def create_menu_stream(self,path,n_page,coordinates):
|
||||
|
||||
""" Creates the menu XML file """
|
||||
|
|
|
|||
|
|
@ -185,26 +185,30 @@ class interface_manager(GObject.GObject):
|
|||
|
||||
for element in self.interface_labels:
|
||||
value = eval('self.'+element)
|
||||
if (value != None):
|
||||
builder.get_object(element).set_text(str(value))
|
||||
else:
|
||||
builder.get_object(element).set_text("")
|
||||
obj = builder.get_object(element)
|
||||
if obj != None:
|
||||
if (value != None):
|
||||
obj.set_text(str(value))
|
||||
else:
|
||||
obj.set_text("")
|
||||
|
||||
for element in self.interface_integer_adjustments:
|
||||
value = eval('self.'+element[0])
|
||||
obj = builder.get_object(element[0])
|
||||
obj.set_value(float(value))
|
||||
callback = element[1]
|
||||
if (callback != None):
|
||||
obj.connect("value_changed",callback)
|
||||
if obj != None:
|
||||
value = eval('self.'+element[0])
|
||||
obj.set_value(float(value))
|
||||
callback = element[1]
|
||||
if (callback != None):
|
||||
obj.connect("value_changed",callback)
|
||||
|
||||
for element in self.interface_float_adjustments:
|
||||
value = eval('self.'+element[0])
|
||||
obj = builder.get_object(element[0])
|
||||
obj.set_value(value)
|
||||
callback = element[1]
|
||||
if (callback != None):
|
||||
obj.connect("value_changed",callback)
|
||||
if obj != None:
|
||||
value = eval('self.'+element[0])
|
||||
obj.set_value(value)
|
||||
callback = element[1]
|
||||
if (callback != None):
|
||||
obj.connect("value_changed",callback)
|
||||
|
||||
for element in self.interface_lists:
|
||||
obj = eval('self.'+element[0])
|
||||
|
|
@ -290,6 +294,7 @@ class interface_manager(GObject.GObject):
|
|||
obj.connect('toggled',self.toggled_element2)
|
||||
self.toggled_element2(obj)
|
||||
|
||||
|
||||
def toggled_element(self,element):
|
||||
""" Wenever an element with 'hide' or 'show' needs is toggled, this callback is called """
|
||||
|
||||
|
|
@ -357,6 +362,7 @@ class interface_manager(GObject.GObject):
|
|||
for item in to_disable:
|
||||
item.set_sensitive(False)
|
||||
|
||||
|
||||
def store_ui(self,builder):
|
||||
""" Takes the values of the widgets and stores them in the internal variables """
|
||||
|
||||
|
|
@ -380,11 +386,13 @@ class interface_manager(GObject.GObject):
|
|||
|
||||
for element in self.interface_integer_adjustments:
|
||||
obj = builder.get_object(element[0])
|
||||
exec('self.'+element[0]+' = int(obj.get_value())')
|
||||
if obj != None:
|
||||
exec('self.'+element[0]+' = int(obj.get_value())')
|
||||
|
||||
for element in self.interface_float_adjustments:
|
||||
obj = builder.get_object(element[0])
|
||||
exec('self.'+element[0]+' = obj.get_value()')
|
||||
if obj != None:
|
||||
exec('self.'+element[0]+' = obj.get_value()')
|
||||
|
||||
for element in self.interface_colorbuttons:
|
||||
obj = builder.get_object(element[0])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue