def __init__(self, sonosDevice): self.sonosDevice = sonosDevice self.sonosVolume = 0 self.sonosMuted = False self.xbmcPlayingProcessed = False # On Startup check to see if we need to switch the Sonos speaker to line-in if Settings.switchSonosToLineIn(): self._switchToLineIn()
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()