예제 #1
0
    def __init__(self, dogvibes, id):
        self.dogvibes = dogvibes
        self.pipeline = gst.Pipeline("amppipeline" + id)

        # create the tee element
        self.tee = gst.element_factory_make("tee", "tee")
        self.pipeline.add(self.tee)

        # listen for EOS
        self.bus = self.pipeline.get_bus()
        self.bus.add_signal_watch()
        self.bus.connect('message', self.pipeline_message)

        # Create amps playqueue
        if Playlist.name_exists(dogvibes.ampdbname + id) == False:
            self.dogvibes.API_createPlaylist(dogvibes.ampdbname + id)
        tqplaylist = Playlist.get_by_name(dogvibes.ampdbname + id)
        self.tmpqueue_id = tqplaylist.id

        self.active_playlist_id = self.tmpqueue_id
        if (tqplaylist.length() > 0):
            self.active_playlists_track_id = tqplaylist.get_track_nbr(0).ptid
        else:
            self.active_playlists_track_id = -1
        self.fallback_playlist_id = -1
        self.fallback_playlists_track_id = -1

        # sources connected to the amp
        self.sources = []

        # the gstreamer source that is currently used for playback
        self.src = None

        self.needs_push_update = False