[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 203b7cb65ff266f47508681fdce91fb1a345ad17
X2Go dev team
git-admin at x2go.org
Wed Jan 8 15:27:44 CET 2014
The branch, build-baikal has been updated
via 203b7cb65ff266f47508681fdce91fb1a345ad17 (commit)
from 13272248f26b3242bb1e7f13fbe17e35519667d3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
x2go/client.py | 6 +++
x2go/pulseaudio.py | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 110 insertions(+)
create mode 100644 x2go/pulseaudio.py
The diff of changes is:
diff --git a/x2go/client.py b/x2go/client.py
index 46d4fea..2ad5e71 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -162,6 +162,7 @@ import x2go.backends.printing as printing
if _X2GOCLIENT_OS == 'Windows':
from xserver import X2goClientXConfig, X2goXServer
+ from pulseaudio import X2goPulseAudio
class X2goClient(object):
@@ -187,11 +188,13 @@ class X2goClient(object):
sessions_rootdir=None,
ssh_rootdir=None,
start_xserver=False,
+ start_pulseaudio=False,
use_listsessions_cache=False,
auto_update_listsessions_cache=False,
auto_update_sessionregistry=False,
auto_register_sessions=False,
refresh_interval=5,
+ pulseaudio_installdir=os.path.join(os.getcwd(), 'pulseaudio'),
logger=None, loglevel=log.loglevel_DEFAULT):
"""\
@param logger: you can pass an L{X2goLogger} object to the
@@ -259,6 +262,9 @@ class X2goClient(object):
# presume the running XServer listens on :0
os.environ.update({'DISPLAY': 'localhost:0'})
+ if _X2GOCLIENT_OS == 'Windows' and start_pulseaudio:
+ self.pulseaudio = X2goPulseAudio(path=self.pulseaudio_installdir, logger=self.logger)
+
self.auto_register_sessions = auto_register_sessions
self.session_registry = X2goSessionRegistry(self, logger=self.logger)
self.session_guardian = X2goSessionGuardian(self, auto_update_listsessions_cache=auto_update_listsessions_cache & use_listsessions_cache,
diff --git a/x2go/pulseaudio.py b/x2go/pulseaudio.py
new file mode 100644
index 0000000..d163afa
--- /dev/null
+++ b/x2go/pulseaudio.py
@@ -0,0 +1,104 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel at das-netzwerkteam.de>
+#
+# Python X2go is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# Python X2go is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the
+# Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# This code was initially written by:
+# 2010 Dick Kniep <dick.kniep at lindix.nl>
+#
+# Other contributors:
+# none so far
+
+__NAME__ = 'x2gopulseaudio-pylib'
+
+from defaults import X2GOCLIENT_OS as _X2GOCLIENT_OS
+if _X2GOCLIENT_OS == 'Windows':
+ import wmi
+
+# modules
+import os
+import subprocess
+import threading
+import gevent
+import copy
+
+# Python X2go modules
+import log
+
+class X2goPulseAudio(threading.Thread):
+ """
+ This class controls the Pulse Audio daemon.
+ """
+
+ def __init__(self, path=None, logger=None, loglevel=log.loglevel_DEFAULT):
+ """\
+ STILL UNDOCUMENTED
+
+ """
+ if _X2GOCLIENT_OS not in ("Windows"):
+ import exceptions
+ class OSNotSupportedException(exceptions.StandardError): pass
+ raise OSNotSupportedException('classes of x2go.pulseaudio module are for Windows only')
+
+ if logger is None:
+ self.logger = log.X2goLogger(loglevel=loglevel)
+ else:
+ self.logger = copy.deepcopy(logger)
+ self.logger.tag = __NAME__
+
+ self.path = path
+ self._keepalive = None
+
+ threading.Thread.__init__(self)
+ self.daemon = True
+ self.start()
+
+ def run(self):
+ """\
+ STILL UNDOCUMENTED
+
+ """
+ self._keepalive = True
+ cmd = 'pulseaudio'
+ if self.path:
+ cmd = os.path.join(self.path, cmd)
+ cmd_options = [
+ '-n',
+ '-L module-native-protocol-tcp port=4713',
+ '-L module-esound-protocol-tcp port=16001',
+ '-L module-waveout',
+ ]
+ cmd_line = [cmd]
+ cmd_line.extend(cmd_options)
+ self.logger('starting PulsaAudio server with command line: %s' % ' '.join(cmd_line), loglevel=log.loglevel_DEBUG)
+ p = subprocess.Popen(cmd_line, shell=False)
+ while self._keepalive:
+ gevent.sleep(1)
+ self.logger('terminating running PulseAudio server', loglevel=log.loglevel_DEBUG)
+ try:
+ p.terminate()
+ except WindowsError:
+ pass
+
+ def stop_thread(self):
+ """\
+ STILL UNDOCUMENTED
+
+ """
+ self.logger('stop_thread() method has been called', loglevel=log.loglevel_DEBUG)
+ self._keepalive = False
+
hooks/post-receive
--
python-x2go.git (Python X2Go Client API)
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "python-x2go.git" (Python X2Go Client API).
More information about the x2go-commits
mailing list