예제 #1
0
파일: service.py 프로젝트: noba3/KoTos
 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())
예제 #2
0
파일: service.py 프로젝트: noba3/KoTos
    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()

            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