more work on player disconnects
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 28 Aug 2019 07:30:11 +0000 (09:30 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 28 Aug 2019 07:30:11 +0000 (09:30 +0200)
music_assistant/modules/player.py
music_assistant/modules/playerproviders/chromecast.py

index 88955074cad1842111877db3d51ae844a83f5acd..9f4e460c648083a0ff927990a1cda67322aea988 100755 (executable)
@@ -43,7 +43,7 @@ class Player():
         player = self._players[player_id]
         prov_id = player.player_provider
         prov = self.providers[prov_id]
-        LOGGER.info('received command %s for player %s' %(cmd, player.name))
+        LOGGER.debug('received command %s for player %s' %(cmd, player.name))
         # handle some common workarounds
         if (cmd in ['pause', 'play'] and cmd_args == 'toggle') or cmd == 'playpause':
             cmd = 'pause' if player.state == PlayerState.Playing else 'play'
@@ -100,7 +100,7 @@ class Player():
                 service_data = { 'entity_id': player.settings['hass_power_entity'] }
                 await self.mass.hass.call_service('media_player', 'turn_off', service_data)
             else:
-                LOGGER.warning('Ignoring power command as required source is not active')
+                LOGGER.debug('Ignoring power command as required source is not active')
         elif cmd == 'power' and player.settings.get('hass_power_entity'):
             domain = player.settings['hass_power_entity'].split('.')[0]
             service_data = { 'entity_id': player.settings['hass_power_entity']}
index e2b9074c10e877724d4b09390f5297b306bfa3fd..cc33f6399c53c314f3a484e9021e50a1e464ec3c 100644 (file)
@@ -130,10 +130,10 @@ class ChromecastProvider(PlayerProvider):
         if (not player_id in self._chromecasts or 
                 not self._chromecasts[player_id].socket_client or 
                 not self._chromecasts[player_id].socket_client.is_connected):
-            LOGGER.warning("command %s failed - %s is disconnected, rescan triggered" %(cmd, self._players[player_id].name))
+            LOGGER.warning("play_media failed - %s is disconnected, rescan triggered" %(self._players[player_id].name))
             self.mass.event_loop.create_task(self.__chromecast_discovery())
             return
-            
+
         castplayer = self._chromecasts[player_id]
         cur_queue_index = self._player_queue_index.get(player_id, 0)
         enable_crossfade = self.mass.config['player_settings'][player_id]["crossfade_duration"] > 0
@@ -412,6 +412,7 @@ class ChromecastProvider(PlayerProvider):
         if self._discovery_running:
             return
         self._discovery_running = True
+        LOGGER.info("Chromecast discovery started...")
         # remove any disconnected players...
         removed_players = []
         for player_id, cast in self._chromecasts.items():
@@ -436,12 +437,11 @@ class ChromecastProvider(PlayerProvider):
                 LOGGER.info("discovered chromecast: %s - %s:%s" % (friendly_name, ip_address, port))
                 asyncio.run_coroutine_threadsafe(
                         self.__chromecast_discovered(player_id, discovery_info), self.mass.event_loop)
-        LOGGER.debug("Chromecast discovery started...")
         listener, browser = start_discovery(discovered_callback)
         await asyncio.sleep(15) # run discovery for 15 seconds
         stop_discovery(browser)
-        LOGGER.debug("Chromecast discovery completed...")
-        self._discovery_running = True
+        LOGGER.info("Chromecast discovery completed...")
+        self._discovery_running = False
     
     async def __chromecast_discovered(self, player_id, discovery_info):
         ''' callback when a (new) chromecast device is discovered '''