From cd021cc8198932969c055d55b6e4a5c0daadcbf6 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sat, 8 Sep 2012 22:03:30 +0200 Subject: [PATCH] Move create_track() out of the fakemixer as it is useful for other mixers --- mopidy/mixers/__init__.py | 37 ++++++++++++++++++++++++++++++ mopidy/mixers/fake.py | 48 +++++++-------------------------------- 2 files changed, 45 insertions(+), 40 deletions(-) diff --git a/mopidy/mixers/__init__.py b/mopidy/mixers/__init__.py index cf282a03..87fbd52f 100644 --- a/mopidy/mixers/__init__.py +++ b/mopidy/mixers/__init__.py @@ -1,2 +1,39 @@ +import pygst +pygst.require('0.10') +import gst +import gobject + + +def create_track(label, initial_volume, min_volume, max_volume, + num_channels, flags): + class Track(gst.interfaces.MixerTrack): + def __init__(self): + super(Track, self).__init__() + self.volumes = (initial_volume,) * self.num_channels + + @gobject.property + def label(self): + return label + + @gobject.property + def min_volume(self): + return min_volume + + @gobject.property + def max_volume(self): + return max_volume + + @gobject.property + def num_channels(self): + return num_channels + + @gobject.property + def flags(self): + return flags + + return Track() + + +# Import all mixers so that they are registered with GStreamer from mopidy.mixers.auto import AutoAudioMixer from mopidy.mixers.fake import FakeMixer diff --git a/mopidy/mixers/fake.py b/mopidy/mixers/fake.py index 83bde6fc..3c47ef33 100644 --- a/mopidy/mixers/fake.py +++ b/mopidy/mixers/fake.py @@ -3,35 +3,7 @@ pygst.require('0.10') import gobject import gst - -def create_fake_track(label, initial_volume, min_volume, max_volume, - num_channels, flags): - class Track(gst.interfaces.MixerTrack): - def __init__(self): - super(Track, self).__init__() - self.volumes = (initial_volume,) * self.num_channels - - @gobject.property - def label(self): - return label - - @gobject.property - def min_volume(self): - return min_volume - - @gobject.property - def max_volume(self): - return max_volume - - @gobject.property - def num_channels(self): - return num_channels - - @gobject.property - def flags(self): - return flags - - return Track() +from mopidy.mixers import create_track class FakeMixer(gst.Element, gst.ImplementsInterface, gst.interfaces.Mixer): @@ -41,15 +13,10 @@ class FakeMixer(gst.Element, gst.ImplementsInterface, gst.interfaces.Mixer): 'Thomas Adamcik') track_label = gobject.property(type=str, default='Master') - track_initial_volume = gobject.property(type=int, default=0) - track_min_volume = gobject.property(type=int, default=0) - track_max_volume = gobject.property(type=int, default=100) - track_num_channels = gobject.property(type=int, default=2) - track_flags = gobject.property(type=int, default=(gst.interfaces.MIXER_TRACK_MASTER | gst.interfaces.MIXER_TRACK_OUTPUT)) @@ -58,12 +25,13 @@ class FakeMixer(gst.Element, gst.ImplementsInterface, gst.interfaces.Mixer): gst.Element.__init__(self) def list_tracks(self): - track = create_fake_track(self.track_label, - self.track_initial_volume, - self.track_min_volume, - self.track_max_volume, - self.track_num_channels, - self.track_flags) + track = create_track( + self.track_label, + self.track_initial_volume, + self.track_min_volume, + self.track_max_volume, + self.track_num_channels, + self.track_flags) return [track] def get_volume(self, track):