Embedded mplayer demos

This commit is contained in:
Maxim Stewart 2019-06-18 23:52:02 -05:00
parent bf13e3882e
commit 9842c94360
5 changed files with 236 additions and 204 deletions

Binary file not shown.

View File

@ -37,13 +37,13 @@ class GWinWrap:
dialog.add_filter(filefilter)
# Get reference to remove and add it back...
self.gridLabel = self.builder.get_object("gridLabel")
self.gridLabel = self.builder.get_object("gridLabel")
self.focusedImg = gtk.Image()
self.usrHome = os.path.expanduser('~')
self.xScreenVal = None
self.toSavePath = None # Global file path and type for saving to file
self.applyType = 1 # 1 is XWinWrap and 2 is Nitrogen
self.focusedImg = gtk.Image()
self.usrHome = os.path.expanduser('~')
self.xScreenVal = None
self.toSavePath = None # Global file path and type for saving to file
self.applyType = 1 # 1 is XWinWrap and 2 is Nitrogen
self.loadProgress = self.builder.get_object("loadProgress")
self.helpLabel = self.builder.get_object("helpLabel")
@ -68,7 +68,7 @@ class GWinWrap:
self.defPath = None
self.player = None
self.imgVwr = None
self.xScrnDemoPid = None
self.demoAreaPid = None
self.retrieveSettings()
window.show()
@ -194,16 +194,6 @@ class GWinWrap:
return gtk.Image()
def runMplayerProcess(self, widget, eve, params):
self.setSelected(params[2])
video = params[0] #.replace(" ", "\\ ")
if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS:
subprocess.call([self.player, video, "-really-quiet", "-ao", "null", "-loop", "0"])
self.toSavePath = params[0]
self.applyType = 1
self.helpLabel.set_markup("<span foreground=\"#e0cc64\">" + params[1] + "</span>")
def openMainImageViewer(self, widget):
subprocess.call([self.imgVwr, self.toSavePath])
@ -306,32 +296,57 @@ class GWinWrap:
treeiter = xSvrListStore.get_iter(path[0])
self.xScreenVal = xSvrListStore.get_value(treeiter, 0)
def runMplayerProcess(self, widget, eve, params):
self.setSelected(params[2])
video = params[0]
if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS:
if self.player == "mplayer":
xid = self.getXID()
command = [self.player, video, "-slave", "-wid", str(xid), "-really-quiet", "-ao", "null", "-loop", "0"]
self.runDemoToDrawArea(command)
else:
subprocess.call([self.player, video, "-really-quiet", "-ao", "null", "-loop", "0"])
self.toSavePath = params[0]
self.applyType = 1
self.helpLabel.set_markup("<span foreground=\"#e0cc64\">" + params[1] + "</span>")
def previewXscreen(self, widget, eve):
if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS:
# Must be actualized before getting window
demoWindow = self.builder.get_object("xScrnPreviewPopWindow")
self.helpLabel.set_markup("<span foreground=\"#e0cc64\"></span>")
demoXscrnSaver = self.xscrPth + self.xScreenVal
xid = self.getXID()
command = [demoXscrnSaver, "-window-id", str(xid)]
self.runDemoToDrawArea(command)
if self.xScrnDemoPid:
os.kill(self.xScrnDemoPid, signal.SIGTERM) #or signal.SIGKILL
self.xScrnDemoPid = None
def getXID(self):
# Must be actualized before getting window
demoWindowPopup = self.builder.get_object("demoPreviewPopWindow")
if demoWindow.get_visible() == False:
demoWindow.show_all()
demoWindow.popup()
if demoWindowPopup.get_visible() == False:
demoWindowPopup.show_all()
demoWindowPopup.popup()
time.sleep(.800) # 800 mili-seconds to ensure first process dead
xScreenPreview = self.builder.get_object("xScreenPreview")
demoXscrnSaver = self.xscrPth + self.xScreenVal
window = xScreenPreview.get_window()
xid = window.get_xid()
process = subprocess.Popen([demoXscrnSaver, "-window-id", str(xid)])
self.xScrnDemoPid = process.pid
demoPreview = self.builder.get_object("demoPreview")
drwWindow = demoPreview.get_window()
return drwWindow.get_xid()
def runDemoToDrawArea(self, command):
self.helpLabel.set_markup("<span foreground=\"#e0cc64\"></span>")
if self.demoAreaPid:
os.kill(self.demoAreaPid, signal.SIGTERM) #or signal.SIGKILL
self.demoAreaPid = None
time.sleep(.800) # 800 mili-seconds to ensure first process dead
process = subprocess.Popen(command)
self.demoAreaPid = process.pid
def closeDemoWindow(self, widget, data=None):
self.builder.get_object("xScrnPreviewPopWindow").popdown()
os.kill(self.xScrnDemoPid, signal.SIGTERM) #or signal.SIGKILL
self.xScrnDemoPid = None
self.builder.get_object("demoPreviewPopWindow").popdown()
os.kill(self.demoAreaPid, signal.SIGTERM) #or signal.SIGKILL
self.demoAreaPid = None
def clearSelection(self, widget, data=None):
self.clear()

View File

@ -588,6 +588,71 @@
</object>
</child>
</object>
<object class="GtkPopover" id="demoPreviewPopWindow">
<property name="width_request">640</property>
<property name="height_request">525</property>
<property name="can_focus">False</property>
<property name="margin_right">350</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="relative_to">helpLabel</property>
<property name="position">bottom</property>
<property name="modal">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Close Demo Window</property>
<property name="image">closePopupImage</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="closeDemoWindow" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkAspectFrame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkDrawingArea" id="demoPreview">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkPopover" id="previewWindow">
<property name="width_request">640</property>
<property name="height_request">525</property>
@ -704,7 +769,8 @@
<property name="height_request">26</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="placeholder_text" translatable="yes">Set Custom Selected Path</property>
<property name="tooltip_text" translatable="yes">Set Custom Default Path</property>
<property name="placeholder_text" translatable="yes">Set Custom Default Path</property>
</object>
<packing>
<property name="expand">False</property>
@ -814,69 +880,4 @@
</object>
</child>
</object>
<object class="GtkPopover" id="xScrnPreviewPopWindow">
<property name="width_request">640</property>
<property name="height_request">525</property>
<property name="can_focus">False</property>
<property name="margin_right">350</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="relative_to">helpLabel</property>
<property name="position">bottom</property>
<property name="modal">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Close XScreenSaver Demo Window</property>
<property name="image">closePopupImage</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="closeDemoWindow" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkAspectFrame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkDrawingArea" id="xScreenPreview">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@ -37,13 +37,13 @@ class GWinWrap:
dialog.add_filter(filefilter)
# Get reference to remove and add it back...
self.gridLabel = self.builder.get_object("gridLabel")
self.gridLabel = self.builder.get_object("gridLabel")
self.focusedImg = gtk.Image()
self.usrHome = os.path.expanduser('~')
self.xScreenVal = None
self.toSavePath = None # Global file path and type for saving to file
self.applyType = 1 # 1 is XWinWrap and 2 is Nitrogen
self.focusedImg = gtk.Image()
self.usrHome = os.path.expanduser('~')
self.xScreenVal = None
self.toSavePath = None # Global file path and type for saving to file
self.applyType = 1 # 1 is XWinWrap and 2 is Nitrogen
self.loadProgress = self.builder.get_object("loadProgress")
self.helpLabel = self.builder.get_object("helpLabel")
@ -68,7 +68,7 @@ class GWinWrap:
self.defPath = None
self.player = None
self.imgVwr = None
self.xScrnDemoPid = None
self.demoAreaPid = None
self.retrieveSettings()
window.show()
@ -194,16 +194,6 @@ class GWinWrap:
return gtk.Image()
def runMplayerProcess(self, widget, eve, params):
self.setSelected(params[2])
video = params[0] #.replace(" ", "\\ ")
if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS:
subprocess.call([self.player, video, "-really-quiet", "-ao", "null", "-loop", "0"])
self.toSavePath = params[0]
self.applyType = 1
self.helpLabel.set_markup("<span foreground=\"#e0cc64\">" + params[1] + "</span>")
def openMainImageViewer(self, widget):
subprocess.call([self.imgVwr, self.toSavePath])
@ -306,32 +296,57 @@ class GWinWrap:
treeiter = xSvrListStore.get_iter(path[0])
self.xScreenVal = xSvrListStore.get_value(treeiter, 0)
def runMplayerProcess(self, widget, eve, params):
self.setSelected(params[2])
video = params[0]
if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS:
if self.player == "mplayer":
xid = self.getXID()
command = [self.player, video, "-slave", "-wid", str(xid), "-really-quiet", "-ao", "null", "-loop", "0"]
self.runDemoToDrawArea(command)
else:
subprocess.call([self.player, video, "-really-quiet", "-ao", "null", "-loop", "0"])
self.toSavePath = params[0]
self.applyType = 1
self.helpLabel.set_markup("<span foreground=\"#e0cc64\">" + params[1] + "</span>")
def previewXscreen(self, widget, eve):
if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS:
# Must be actualized before getting window
demoWindow = self.builder.get_object("xScrnPreviewPopWindow")
self.helpLabel.set_markup("<span foreground=\"#e0cc64\"></span>")
demoXscrnSaver = self.xscrPth + self.xScreenVal
xid = self.getXID()
command = [demoXscrnSaver, "-window-id", str(xid)]
self.runDemoToDrawArea(command)
if self.xScrnDemoPid:
os.kill(self.xScrnDemoPid, signal.SIGTERM) #or signal.SIGKILL
self.xScrnDemoPid = None
def getXID(self):
# Must be actualized before getting window
demoWindowPopup = self.builder.get_object("demoPreviewPopWindow")
if demoWindow.get_visible() == False:
demoWindow.show_all()
demoWindow.popup()
if demoWindowPopup.get_visible() == False:
demoWindowPopup.show_all()
demoWindowPopup.popup()
time.sleep(.800) # 800 mili-seconds to ensure first process dead
xScreenPreview = self.builder.get_object("xScreenPreview")
demoXscrnSaver = self.xscrPth + self.xScreenVal
window = xScreenPreview.get_window()
xid = window.get_xid()
process = subprocess.Popen([demoXscrnSaver, "-window-id", str(xid)])
self.xScrnDemoPid = process.pid
demoPreview = self.builder.get_object("demoPreview")
drwWindow = demoPreview.get_window()
return drwWindow.get_xid()
def runDemoToDrawArea(self, command):
self.helpLabel.set_markup("<span foreground=\"#e0cc64\"></span>")
if self.demoAreaPid:
os.kill(self.demoAreaPid, signal.SIGTERM) #or signal.SIGKILL
self.demoAreaPid = None
time.sleep(.800) # 800 mili-seconds to ensure first process dead
process = subprocess.Popen(command)
self.demoAreaPid = process.pid
def closeDemoWindow(self, widget, data=None):
self.builder.get_object("xScrnPreviewPopWindow").popdown()
os.kill(self.xScrnDemoPid, signal.SIGTERM) #or signal.SIGKILL
self.xScrnDemoPid = None
self.builder.get_object("demoPreviewPopWindow").popdown()
os.kill(self.demoAreaPid, signal.SIGTERM) #or signal.SIGKILL
self.demoAreaPid = None
def clearSelection(self, widget, data=None):
self.clear()

View File

@ -588,6 +588,71 @@
</object>
</child>
</object>
<object class="GtkPopover" id="demoPreviewPopWindow">
<property name="width_request">640</property>
<property name="height_request">525</property>
<property name="can_focus">False</property>
<property name="margin_right">350</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="relative_to">helpLabel</property>
<property name="position">bottom</property>
<property name="modal">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Close Demo Window</property>
<property name="image">closePopupImage</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="closeDemoWindow" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkAspectFrame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkDrawingArea" id="demoPreview">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkPopover" id="previewWindow">
<property name="width_request">640</property>
<property name="height_request">525</property>
@ -704,7 +769,8 @@
<property name="height_request">26</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="placeholder_text" translatable="yes">Set Custom Selected Path</property>
<property name="tooltip_text" translatable="yes">Set Custom Default Path</property>
<property name="placeholder_text" translatable="yes">Set Custom Default Path</property>
</object>
<packing>
<property name="expand">False</property>
@ -814,69 +880,4 @@
</object>
</child>
</object>
<object class="GtkPopover" id="xScrnPreviewPopWindow">
<property name="width_request">640</property>
<property name="height_request">525</property>
<property name="can_focus">False</property>
<property name="margin_right">350</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="relative_to">helpLabel</property>
<property name="position">bottom</property>
<property name="modal">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Close XScreenSaver Demo Window</property>
<property name="image">closePopupImage</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="closeDemoWindow" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkAspectFrame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkDrawingArea" id="xScreenPreview">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>