ability to change mic volume through GUI (doesn't work for the moment)

This commit is contained in:
Yann Leboulanger 2009-12-02 21:37:21 +01:00
parent 8bb1aaf382
commit 619518204c
3 changed files with 26 additions and 14 deletions

View file

@ -771,7 +771,6 @@
<property name="adjustment">0 0 110 1 10 10</property>
<property name="digits">0</property>
<property name="value_pos">bottom</property>
<signal name="value_changed" handler="on_sound_hscale_value_changed"/>
</widget>
<packing>
<property name="expand">False</property>
@ -796,7 +795,6 @@
<property name="adjustment">0 0 110 1 10 10</property>
<property name="digits">0</property>
<property name="value_pos">bottom</property>
<signal name="value_changed" handler="on_mic_hscale_value_changed"/>
</widget>
<packing>
<property name="expand">False</property>

View file

@ -1382,6 +1382,14 @@ class ChatControl(ChatControlBase):
id_ = widget.connect('released', self.on_num_button_released)
self.handlers[id_] = widget
widget = self.xml.get_widget('mic_hscale')
id_ = widget.connect('value_changed', self.on_mic_hscale_value_changed)
self.handlers[id_] = widget
widget = self.xml.get_widget('sound_hscale')
id_ = widget.connect('value_changed', self.on_sound_hscale_value_changed)
self.handlers[id_] = widget
if not session:
# Don't use previous session if we want to a specific resource
# and it's not the same
@ -1604,22 +1612,22 @@ class ChatControl(ChatControlBase):
def set_video_state(self, state, sid=None, reason=None):
self._set_jingle_state('video', state, sid=sid, reason=reason)
def on_num_button_pressed(self, widget, num):
def _get_audio_content(self):
session = gajim.connections[self.account].get_jingle_session(
self.contact.get_full_jid(), self.audio_sid)
content = session.get_content('audio')
content._start_dtmf(num)
return session.get_content('audio')
def on_num_button_pressed(self, widget, num):
self._get_audio_content()._start_dtmf(num)
def on_num_button_released(self, released):
session = gajim.connections[self.account].get_jingle_session(
self.contact.get_full_jid(), self.audio_sid)
content = session.get_content('audio')
content._stop_dtmf()
self._get_audio_content()._stop_dtmf()
def on_mic_hscale_value_changed(self, widget, scroll_type):
pass
def on_mic_hscale_value_changed(self, widget):
value = widget.get_value()
self._get_audio_content().set_mic_volume(value / 100)
def on_sound_hscale_value_changed(self, widget, scroll_type):
def on_sound_hscale_value_changed(self, widget):
pass
def on_avatar_eventbox_enter_notify_event(self, widget, event):

View file

@ -257,6 +257,12 @@ class JingleAudio(JingleRTPContent):
JingleRTPContent.__init__(self, session, 'audio', transport)
self.setup_stream()
def set_mic_volume(self, vol):
"""
vol must be between 0 ans 1
"""
self.mic_volume.set_property('volume', vol)
def setup_stream(self):
JingleRTPContent.setup_stream(self)
@ -281,7 +287,7 @@ class JingleAudio(JingleRTPContent):
'audioconvert ! %s', _("audio output"))
self.mic_volume = src_bin.get_by_name('gajim_vol')
self.mic_volume.set_property('volume', 1)
self.set_mic_volume(0)
# link gst elements
self.pipeline.add(self.sink, src_bin)