Esempio n. 1
0
 def check(self):
     if Settings.autoPauseSonos() and not Settings.linkAudioWithSonos():
         try:
             # Check to see if something has started playing
             if xbmc.Player().isPlaying():
                 # If this is a change in play state since the last time we checked
                 if self.xbmcPlayState is False:
                     log("SonosAutoPause: Automatically pausing Sonos")
                     self.xbmcPlayState = True
                     # Pause the sonos if it is playing
                     if self._isSonosPlaying():
                         self.sonosDevice.pause()
                         self.autoStopped = True
                         self.resumeCountdown = Settings.autoResumeSonos()
             else:
                 self.xbmcPlayState = False
                 if Settings.autoResumeSonos() > 0 and self.autoStopped:
                     if self.resumeCountdown > 0:
                         self.resumeCountdown = self.resumeCountdown - 1
                     else:
                         log("SonosAutoPause: Automatically resuming Sonos")
                         self.sonosDevice.play()
                         self.autoStopped = False
                         self.resumeCountdown = Settings.autoResumeSonos()
         except:
             # If we fail to stop the speaker playing, it may be because
             # there is a network problem or the speaker is powered down
             # So we just continue after logging the error
             log("SonosAutoPause: Error from speaker %s" %
                 Settings.getIPAddress())
             log("SonosAutoPause: %s" % traceback.format_exc())
Esempio n. 2
0
 def check(self):
     if Settings.autoPauseSonos() and not Settings.linkAudioWithSonos():
         try:
             # Check to see if something has started playing
             if xbmc.Player().isPlaying():
                 # If this is a change in play state since the last time we checked
                 if self.xbmcPlayState is False:
                     log("SonosAutoPause: Automatically pausing Sonos")
                     self.xbmcPlayState = True
                     # Pause the sonos if it is playing
                     if self._isSonosPlaying():
                         self.sonosDevice.pause()
                         self.autoStopped = True
                         self.resumeCountdown = Settings.autoResumeSonos()
             else:
                 self.xbmcPlayState = False
                 if Settings.autoResumeSonos() > 0 and self.autoStopped:
                     if self.resumeCountdown > 0:
                         self.resumeCountdown = self.resumeCountdown - 1
                     else:
                         log("SonosAutoPause: Automatically resuming Sonos")
                         self.sonosDevice.play()
                         self.autoStopped = False
                         self.resumeCountdown = Settings.autoResumeSonos()
         except:
             # If we fail to stop the speaker playing, it may be because
             # there is a network problem or the speaker is powered down
             # So we just continue after logging the error
             log("SonosAutoPause: Error from speaker %s" % Settings.getIPAddress())
             log("SonosAutoPause: %s" % traceback.format_exc())
Esempio n. 3
0
            displayNotice = False

    if displayNotice:
        xbmc.executebuiltin(
            'Notification("URepo Repository Required","www.urepo.org",10000,%s)'
            % ADDON.getAddonInfo('icon'))
    else:
        # 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()) and (
                    not Settings.redirectVolumeControls()):
            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(
                ) * Settings.getChecksPerSecond()

                log("SonosService: Notification Check Frequency = %d" %
                    timeUntilNextCheck)

                lastDisplayedTrack = None
Esempio n. 4
0
    log("SonosService: Starting service (version %s)" % ADDON.getAddonInfo('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()) and (not Settings.redirectVolumeControls()):
        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() * Settings.getChecksPerSecond()

            log("SonosService: Notification Check Frequency = %d" % timeUntilNextCheck)

            lastDisplayedTrack = None

            # Need to only display the popup when the service starts if there is
            # currently something playing
            justStartedService = True