def test_7_director_translation(self): panoid = "1234asdf4321fdsa" director_msg = GenericMessage() director_msg.type = 'json' director_msg.message = """ { "description":"", "duration":30, "name":"Browser service test", "resource_uri":"/director_api/scene/browser-service-test/", "slug":"browser-service-test", "windows":[ { "activity":"streetview", "assets":["%s", "foo", "bar"], "height":600, "presentation_viewport":"center", "width":800, "x_coord":100, "y_coord":100 } ] } """ % panoid # get existing asset asset = get_first_asset_from_activity( load_director_message(director_msg), "streetview") self.assertEqual(asset, panoid, 'Invalid asset returned') # get non existing asset asset = get_first_asset_from_activity( load_director_message(director_msg), "panoview") self.assertEqual(asset, None, 'No asset should have been returned') self.check_soft_relaunch()
def handle_scene(self, scene): with self.lock: scene = load_director_message(scene) windows = scene.get('windows', None) self._hide_onboard() if windows: received_active_viewport = route_touch_to_viewports( windows, route_touch_key='route_touch') if received_active_viewport: self.active_viewport = list(received_active_viewport) else: # no viewports received - falling back to default self.active_viewport = self.default_viewport
def _handle_scene(self, msg): self._states = {} data = load_director_message(msg) self._current_scene_slug = data.get('slug') self._consider_scene_slugs() for activity in self.disable_activities: window = find_window_with_activity(data, activity) if len(window) > 0: self._activity_disabled = True self._set_writer_state(False) return self._activity_disabled = False
def _handle_scene_msg(self, msg): scene = load_director_message(msg) windows = scene.get('windows', []) for window in windows: activity = window.get('activity', '') if activity != MIRROR_ACTIVITY_TYPE: continue config = window.get('activity_config', {}) source_viewport = config.get('viewport', '') # allow viewport:// specifier source_viewport = source_viewport.replace('viewport://', '') if source_viewport == self.viewport: self._start_capture(window) return # No matching assets, end capture. self._end_capture()
def _handle_scene_msg(self, msg): scene = load_director_message(msg) windows = self._extract_windows_from_scene(scene) # Save the previous state for continuation and cleanup. previous_players = self.players self.players = {} for window in windows: instance_name = self._window_to_instance_name(window) # If we were playing this previously, promote to the new list. if instance_name in previous_players.keys(): self.players[instance_name] = previous_players[instance_name] del previous_players[instance_name] continue player = self._instantiate_player(window, instance_name) self.players[instance_name] = player player.start() # Any remaining previous players must be stopped. for p in previous_players.values(): p.stop()
def test_load_director(self): self.msg.message = DIRECTOR_MESSAGE_ACTIVITY_CONFIG_NOTHING d = load_director_message(self.msg) assert isinstance(d, dict) assert d["windows"][0]["activity_config"]["onFinish"] == "nothing"
def handle_initial_scene_msg(msg): d = load_director_message(msg) router.handle_scene(publish_active_routes, d)