#! /usr/bin/env python
# BlinkenArea Stage Director
# Copyright 2013-2014 Stefan Schuermans <stefan@schuermans.info>
# Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
# a blinkenarea.org project - https://www.blinkenarea.org/
import gi
gi.require_version('Gtk', '3.0')
import os
from gi.repository import GObject
from gi.repository import Gtk
from gi.repository import Pango
import socket
import struct
import sys
import time
import playlist
import time_fmt
scriptdir = os.path.dirname(os.path.abspath(__file__))
class StageDirector:
def __init__(self):
"""construct a StageDirector object"""
self.builder = Gtk.Builder()
self.builder.add_from_file(scriptdir + "/stage_director.glade")
self.widMainWindow = self.builder.get_object("MainWindow")
self.widPlaylistView = self.builder.get_object("PlaylistView")
self.widPlaylistStore = self.builder.get_object("PlaylistStore")
self.widPosition = self.builder.get_object("Position")
self.widPositionScale = self.builder.get_object("PositionScale")
self.widPositionAt = self.builder.get_object("PositionAt")
self.widPositionRemaining = self.builder.get_object("PositionRemaining")
self.widBtnPlay = self.builder.get_object("Play")
self.widBtnPause = self.builder.get_object("Pause")
self.widLogoStop = self.builder.get_object("LogoStop")
self.widLogoPlay = self.builder.get_object("LogoPlay")
self.widLogoUdpErr = self.builder.get_object("LogoUdpErr")
self.widLogoUdpOk = self.builder.get_object("LogoUdpOk")
self.widSingleStep = self.builder.get_object("SingleStep")
self.widUdpOutput = self.builder.get_object("UdpOutput")
self.widStatus = self.builder.get_object("Status")
handlers = {
"onDestroy": self.onDestroy,
"onFileOpen": self.onFileOpen,
"onFileExit": self.onFileExit,
"onExtrasDestination": self.onExtrasDestination,
"onExtrasAbout": self.onExtrasAbout,