- def _maemo_setup_hardware_player( self, filetype ):
- """ Setup a hardware player for mp3 or aac audio using
- dspaacsink or dspmp3sink """
-
- if filetype in [ 'mp3', 'aac', 'mp4', 'm4a' ]:
- self.player = gst.element_factory_make('playbin', 'player')
- self.filesrc = self.player
- self.filesrc_property = 'uri'
- self.volume_control = self.player
- self.volume_multiplier = 10.
- self.volume_property = 'volume'
- return True
- else:
- return False
-
- def _maemo_setup_software_player( self ):
- """
- Setup a software decoding player for maemo, this is the only choice
- for decoding wma and ogg or if audio is to be piped to a bluetooth
- headset (this is because the audio must first be decoded only to be
- re-encoded using sbcenc.
- """
-
- self.player = gst.Pipeline('player')
- src = gst.element_factory_make('gnomevfssrc', 'src')
- decoder = gst.element_factory_make('decodebin', 'decoder')
- convert = gst.element_factory_make('audioconvert', 'convert')
- resample = gst.element_factory_make('audioresample', 'resample')
- sink = gst.element_factory_make('dsppcmsink', 'sink')
-
- self.filesrc = src # pointer to the main source element
- self.filesrc_property = 'location'
- self.volume_control = sink
- self.volume_multiplier = 1
- self.volume_property = 'fvolume'
-
- # Add the various elements to the player pipeline
- self.player.add( src, decoder, convert, resample, sink )
-
- # Link what can be linked now, the decoder->convert happens later
- gst.element_link_many( src, decoder )
- gst.element_link_many( convert, resample, sink )
-
- # We can't link the two halves of the pipeline until it comes
- # time to start playing, this singal lets us know when it's time.
- # This is because the output from decoder can't be determined until
- # decoder knows what it's decoding.
- decoder.connect('pad-added',
- self._on_decoder_pad_added,
- convert.get_pad('sink') )