Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
                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()