def Activate(self): MediaDevice.Activate(self) try: #if( self.player ): #self.player.Activate() self.tuner = FMRadio(dev=self.dev_path) #l,h = self.tuner.get_frequency_range() low, high = self.tuner.get_frequency_range() self.MinFrequency = low / 1000.0 self.MaxFrequency = high / 1000.0 #print( '[{},{}]'.format( l, h ) ) if (self.rds_listener is not None): self.tuner.rds.add_listener(self.rds_listener) self.is_active = True self.Tune(self.state.frequency) print('Radio is active') # keep the app running #while 1: #time.sleep(1000) except FMRadioUnavailableError: error_msg = "FM radio device is unavailable" print error_msg self._ReportError(error_msg) self.is_active = False import sys, traceback xc = traceback.format_exception(*sys.exc_info()) print(''.join(xc)) return
def InitUI(self, video_panel_parent, control_panel_parent, video_panel_click_callback): '''For the time being video_panel_click_callback is not used for radio''' MediaDevice.InitUI(self, video_panel_parent, control_panel_parent, video_panel_click_callback) #sizer = self._video_panel_parent.GetSizer() self._video_panel = wx.Panel(video_panel_parent) video_panel_parent.GetSizer().Add(self._video_panel, 1, wx.EXPAND) video_sizer = wx.BoxSizer(wx.HORIZONTAL) self._video_panel.SetSizer(video_sizer) video_sizer.Add(self._BuildFrequencyDisplay(self._video_panel), 5, wx.EXPAND | wx.ALL, border=0) self.signalStrengthControl = self._BuildSignalControl( self._video_panel) video_sizer.Add(self.signalStrengthControl, 2, wx.EXPAND | wx.ALL, border=0) self.media_player = self._CreateMediaPlayer()
def Deactivate(self): MediaDevice.Deactivate(self) if (self.scanTimer.IsRunning()): #logging.debug( 'scanTimer stopped!' ) self.scanTimer.Stop() self.scanUntilObserver.Stop()
def __init__(self, abstract_device, RDSListener, frequency=87.5): MediaDevice.__init__( self, abstract_device.name, abstract_device.dev_path, abstract_device.dev_type, abstract_device._mmedia_gui, abstract_device._gui_media_functions, abstract_device._playerLock, abstract_device._error_reporter, abstract_device._message_reporter ) #, abstract_device._playlist_select_callback ) self.rds_listener = RDSListener self.frequency = frequency self.signalStrength = 0.0 self.isStereo = False self.MaxFrequency = 108.0 self.MinFrequency = 87.5 self.frequencyObservers = [] self.signalStrengthObservers = [] self.stereoMonoObservers = [] self.stationList = StationList() self.stationList.Load() self.mixer = DummyMixer() #PulseaudioMixer( _PULSEAUDIO_SOURCENAME ) self._is_active = False self.tuner = None self.player = RadioPlayer(pulsesrc_device=_PULSEAUDIO_SOURCENAME) #print( 'TunerPlayer created successfully' ) self.scanTimer = wx.Timer(self._mmedia_gui) abstract_device._mmedia_gui.Bind(wx.EVT_TIMER, self.Scan, self.scanTimer) self.signalBarCount = 10 self.signalBar = [] self.scanUntilObserver = ScanUntilObserver(self._mmedia_gui, self) self.AddSignalStrengthObserver(SignalStrengthPanelObserver(self)) self.AddSignalStrengthObserver(self.scanUntilObserver) self.AddFrequencyObserver(FrequencyPanelObserver(self)) self.AddFrequencyObserver(self.state) # register signal handler for exiting def handler(signum, frame): #self.tuner.close() self.Deactivate() sys.exit(0) # signal.signal(signal.SIGINT, handler)
def DoPlayTrack(self, track_hash): if (track_hash): channel = self.channels[track_hash] self.Tune(channel) MediaDevice.DoPlayTrack(self, track_hash) else: raise Exception( 'TV was asked to play unknown track with hash: {}'.format( track_hash))
def InitUI(self, video_panel_parent, control_panel_parent, video_panel_click_callback): #I do not want the media_player observers so I override it and call the MediaDevice parent function MediaDevice.InitUI(self, video_panel_parent, control_panel_parent, video_panel_click_callback) self.media_player = self._CreateMediaPlayer( video_panel_parent, self._playerLock, video_panel_click_callback) self._video_panel = self.media_player.video_panel #self._controls_panel = self.media_player.ctrlpanel self._video_panel_parent.GetSizer().Add(self._video_panel, 1, wx.EXPAND)
def Deactivate(self): MediaDevice.Deactivate(self) if (self.tuner): print('closing the tuner') self.tuner.close() print('closed the tuner') #if( self.player ): #self.player.Deactivate() self.is_active = False if (self.scanTimer.IsRunning()): print('scanTimer stopped!') self.scanTimer.Stop() self.scanUntilObserver.Stop()
def PlayTrack(self, track_hash): self.scanUntilObserver.Stop() self.Tune(float(track_hash)) MediaDevice.PlayTrack(self, track_hash)