Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/audioplayer.py48
1 files changed, 23 insertions, 25 deletions
diff --git a/util/audioplayer.py b/util/audioplayer.py
index 911fa42..dacf51f 100644
--- a/util/audioplayer.py
+++ b/util/audioplayer.py
@@ -23,19 +23,19 @@ from util.decorators import Property
class AudioPlayer(object):
-
+
def __init__(self):
pass
-
-
+
+
@Property
def uri():
def get(self): return self.__uri
def set(self, value):
if value is None or not os.path.exists(value):
- logging.error('AudioPlayer- Invalid URI: %r', value)
- return
- self.__uri = value
+ logging.error('AudioPlayer - Invalid URI: %r', value)
+ return
+ self.__uri = value
size = os.path.getsize(self.__uri)
self.pipeline.get_by_name('source').set_property('location', self.__uri)
self.pipeline.get_by_name('source').set_property('mmapsize', size)
@@ -45,28 +45,26 @@ class AudioPlayer(object):
def raw():
def get(self):
if self.uri is None:
- logging.error('AudioPlayer - No data')
- return None
+ logging.error('AudioPlayer - No data')
+ return None
f = open(self.uri, 'r')
raw = f.read()
f.close()
return raw
def set(self, value):
- temp = Globals.temporary_filename()
- f = open(temp, 'w')
+ name = Globals.temporary_filename()
+ f = open(name, 'w')
f.write(value)
f.close()
- #self.source.set_property('location', temp)
- #self.source.set_property('mmapsize', len(value))
- self.uri = temp
- logging.debug('AudioPlayer - set_raw wrote %d bytes to %s', len(value), temp)
+ self.uri = name
+ logging.debug('AudioPlayer - set_raw wrote %d bytes to %s', len(value), name)
@Property
def pipeline():
def get(self):
if self.__pipeline is None:
- self.__pipeline = self.__build_pipeline()
+ self.__pipeline = self.__build_pipeline()
return self.__pipeline
@@ -80,11 +78,11 @@ class AudioPlayer(object):
def __build_pipeline(self):
# pipeline
pipeline = gst.Pipeline('pipeline')
-
+
# add source
source = gst.element_factory_make('filesrc', 'source')
pipeline.add(source)
-
+
# add decoder
decoder = gst.element_factory_make('decodebin', 'decoder')
decoder.connect("new-decoded-pad", self.__new_decoded_pad) #, converter)
@@ -94,27 +92,27 @@ class AudioPlayer(object):
# add converter
converter = gst.element_factory_make("audioconvert", "converter")
pipeline.add(converter)
-
+
# add output
sink = gst.element_factory_make('autoaudiosink', 'sink')
pipeline.add(sink)
converter.link(sink)
-
+
bus = pipeline.get_bus()
bus.add_signal_watch()
bus.connect('message', self.__on_audio_message)
-
+
return pipeline
-
-
+
+
# callbacks ##################################################################
-
+
def __new_decoded_pad(self, dbin, pad, islast): #, converter)
converter = self.pipeline.get_by_name('converter') # TODO - pass by arg
pad.link(converter.get_pad("sink"))
-
-
+
+
def __on_audio_message(self, bus, message):
t = message.type
#logging.debug('message: %r' % t)