diff options
Diffstat (limited to 'nephilim/plugins/PlayControl.py')
-rw-r--r-- | nephilim/plugins/PlayControl.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/nephilim/plugins/PlayControl.py b/nephilim/plugins/PlayControl.py index 1338fea..32a0e59 100644 --- a/nephilim/plugins/PlayControl.py +++ b/nephilim/plugins/PlayControl.py @@ -35,6 +35,7 @@ class wgPlayControl(QtGui.QToolBar): random = None single = None consume = None + outputs_menu = None p = None logger = None @@ -100,11 +101,25 @@ class wgPlayControl(QtGui.QToolBar): self.p.mpclient.consume_changed.connect(self.consume.setChecked) self.consume.toggled.connect(self.p.mpclient.consume) + self.outputs_menu = QtGui.QMenu('Audio outputs') + outputs = self.addAction(QtGui.QIcon('gfx/outputs.png'), 'Audio outputs') + outputs.triggered.connect(lambda : self.outputs_menu.popup(QtGui.QCursor.pos())) + self.p.mpclient.connect_changed.connect(self.__update_outputs) + self.orientationChanged.connect(self.vol_slider.setOrientation) self.p.mpclient.state_changed.connect(self.onStateChange) self.p.mpclient.volume_changed.connect(self.onVolumeChange) + def __update_outputs(self): + self.outputs_menu.clear() + for output in self.p.mpclient.outputs: + act = self.outputs_menu.addAction(output.name) + act.setCheckable(True) + act.setChecked(output.state) + act.toggled.connect(output.set_state) + output.state_changed.connect(act.setChecked) + def onStateChange(self, new_state): status = self.p.mpclient.status() @@ -137,8 +152,8 @@ class wgPlayControl(QtGui.QToolBar): def on_next_click(self): self.logger.info('Playing next') self.p.mpclient.next() - def onVolumeSliderChange(self): - self.p.mpclient.set_volume(self.vol_slider.value()) + def onVolumeSliderChange(self, val): + self.p.mpclient.set_volume(val) class PlayControl(Plugin): # public, const |