# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""An adapter to remotely access the input facade on DUT."""
import json
class InputFacadeRemoteAdapter(object):
"""This is an adapter to remotely capture the DUT's input events.
The Autotest host object representing the remote DUT, passed to this
class on initialization, can be accessed from its _client property.
"""
def __init__(self, remote_facade_proxy):
"""Constructs an InputFacadeRemoteAdapter.
@param remote_facade_proxy: RemoteFacadeProxy object.
"""
self._proxy = remote_facade_proxy
@property
def _input_proxy(self):
"""Gets the proxy to DUT input facade.
@return XML RPC proxy to DUT input facade.
"""
return self._proxy.input
def initialize_input_recorder(self, device_name):
"""Initialize an input event recorder object.
@param device_name: the name of the input device to record.
"""
self._input_proxy.initialize_input_recorder(device_name)
def clear_input_events(self):
"""Clear the event list."""
self._input_proxy.clear_input_events()
def start_input_recorder(self):
"""Start the recording thread."""
self._input_proxy.start_input_recorder()
def stop_input_recorder(self):
"""Stop the recording thread."""
self._input_proxy.stop_input_recorder()
def get_input_events(self):
"""Get the bluetooth device events.
@returns: the recorded input events.
"""
return json.loads(self._input_proxy.get_input_events())