blob: 23319c01ac88ed3586e53caf7e6c26244fc48879 [file] [log] [blame]
# Copyright 2015 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.
"""This module provides the USB Controller interface."""
class USBController(object):
"""An abstraction of USB audio gadget driver controller on Chameleon.
It provides methods to control the USB gadget driver on Chameleon.
A ChameleonConnection object is passed to the construction.
"""
def __init__(self, chameleon_connection):
"""Constructs an USBController.
@param chameleon_connection: A ChameleonConnection object.
"""
self._chameleond_proxy = chameleon_connection.chameleond_proxy
def set_playback_configs(self, playback_data_format):
"""Sets the playback configurations for the USB gadget driver.
@param playback_data_format: A 4-entry dictionary with following fields:
'file_type', 'sample_format', 'channel' and
'rate'. For e.g.,
format = {
'file_type': 'raw',
'sample_format': 'S16_LE',
'channel': 2,
'rate': 48000
}
"""
self._chameleond_proxy.SetUSBDriverPlaybackConfigs(playback_data_format)
def set_capture_configs(self, port_id, capture_data_foramt):
"""Sets the capture configurations for the USB gadget driver.
@param capture_data_format: A 4-entry dictionary with following fields:
'file_type', 'sample_format', 'channel' and
'rate'. For e.g.,
format = {
'file_type': 'raw',
'sample_format': 'S16_LE',
'channel': 2,
'rate': 48000
}
"""
self._chameleond_proxy.SetUSBDriverCaptureConfigs(capture_data_foramt)