def switchToLineInIfXmbcPlaying(self): # Check if we need to switch to line in every time media starts playing if Settings.switchSonosToLineInOnMediaStart(): # Check to see if something has started playing if xbmc.Player().isPlaying(): # Check if we have already processed that something is playing if self.xbmcPlayingProcessed is False: self.xbmcPlayingProcessed = True log("SonosService: Switching to line-in because media started") # Switch to line-in self._switchToLineIn() else: # No longer playing, so need to process the next change self.xbmcPlayingProcessed = False
log("AutoUpdateIPAddress: Setting IP address to %s" % ipaddresses[0]) Settings.setIPAddress(ipaddresses[0]) ################################ # Main of the Sonos Service ################################ if __name__ == '__main__': log("SonosService: Starting service (version %s)" % __version__) # Start by doing any auto-setting of the IP Address autoIpAdd = AutoUpdateIPAddress() del autoIpAdd # Check for the list of things that impact audio audioChanges = Settings.linkAudioWithSonos() or Settings.switchSonosToLineIn() or Settings.switchSonosToLineInOnMediaStart() # Check to see if we need to launch the Sonos Controller as soon as Kodi starts if Settings.autoLaunchControllerOnStartup(): # Launch the Sonos controller, but do not block as we have more to do as a service log("SonosService: Launching controller on startup") xbmc.executebuiltin('RunScript(%s)' % (os.path.join(__cwd__, "default.py")), False) if (not Settings.isNotificationEnabled()) and (not audioChanges) and (not Settings.autoPauseSonos()): log("SonosService: Notifications, Volume Link and Auto Pause are disabled, exiting service") else: sonosDevice = Sonos.createSonosDevice() # Make sure a Sonos speaker was found if sonosDevice is not None: timeUntilNextCheck = Settings.getNotificationCheckFrequency()