CRAS dbus methods and signals. ============================== Service org.chromium.cras Interface org.chromium.cras.Control Object Path /org/chromium/cras Methods void SetOutputVolume(int32 volume) Sets the volume of the system. Volume ranges from 0 to 100, and will be translated to dB based on the output-specific volume curve. void SetOutputNodeVolume(uint64 node_id, int32 volume) Sets the volume of the given node. Volume ranges from 0 to 100, and will be translated to dB based on the output-specific volume curve. void SwapLeftRight(uint64 node_id, boolean swap) Swap the left and right channel of the given node. Message will be dropped if this feature is not supported. void SetOutputMute(boolean mute_on) Sets the system output mute. void SetOutputUserMute(boolean mute_on) Sets the system output mute from user action. void SetInputNodeGain(uint64 node_id, int32 gain) Sets the capture gain of the node. gain is a 0-100 integer which linearly maps [0, 50] to range [-40dB, 0dB] and [50, 100] to [0dB, 20dB], Default gain value is 50, which is 0dB. void SetInputMute(boolean mute_on) Sets the capture mute state of the system. Recordings will be muted when this is set. void GetVolumeState() Returns the volume and capture gain as follows: int32 output_volume (0-100) boolean output_mute int32 input_gain (in dBFS * 100) boolean input_mute boolean output_user_mute void GetDefaultOutputBufferSize() Returns the default output buffer size in frames. {dict},{dict},... GetNodes() Returns information about nodes. A node can be either output or input but not both. An output node is something like a speaker or a headphone, and an input node is like a microphone. The return value is a sequence of dicts mapping from strings to variants (e.g. signature "a{sv}a{sv}" for two nodes). Each dict contains information about a node. Each dict contains the following properties: boolean IsInput false for output nodes, true for input nodes. uint64 Id The id of this node. It is unique among all nodes including both output and input nodes. string Type The type of this node. It can be one of following values: /* for output nodes. */ "INTERNAL_SPEAKER","HEADPHONE", "HDMI", /* for input nodes. */ "INTERNAL_MIC", "MIC", /* for both output and input nodes. */ "USB", "BLUETOOTH", "UNKNOWN", string Name The name of this node. For example, "Speaker" or "Internal Mic". string DeviceName The name of the device that this node belongs to. For example, "HDA Intel PCH: CA0132 Analog:0,0" or "Creative SB Arena Headset". uint64 StableDeviceId The stable ID does not change due to device plug/unplug or reboot. uint64 StableDeviceIdNew The new stable ID. Keeping both stable ID and stable ID new is for backward compatibility. boolean Active Whether this node is currently used for output/input. There is one active node for output and one active node for input. uint64 PluggedTime The time that this device was plugged in. This value is in microseconds. unit64 NodeVolume The node volume indexed from 0 to 100. unit64 NodeCaptureGain The capture gain of node in dBFS * 100. string HotwordModels A string of comma-separated hotword language model locales supported by this node. e.g. "en_au,en_gb,en_us" The string is empty if the node type is not HOTWORD. void GetSystemAecSupported(); Returns 1 if system echo cancellation is supported, otherwise return 0. void SetActiveOutputNode(uint64 node_id); Requests the specified node to be used for output. If node_id is 0 (which is not a valid node id), cras will choose the active node automatically. void SetActiveInputNode(uint64 node_id); Requests the specified node to be used for input. If node_id is 0 (which is not a valid node id), cras will choose the active node automatically. int32 GetNumberOfActiveStreams() Returns the number of streams currently being played or recorded. int32 GetNumberOfActiveInputStreams() Returns the number of streams currently using input hardware. int32 GetNumberOfActiveOutputStreams() Returns the number of streams currently using output hardware. int32 IsAudioOutputActive() Returns 1 if there are currently any active output streams, excluding 'fake' streams that are not actually outputting any audio. Returns 0 if there are no active streams, or all active streams are 'fake' streams. void SetGlobalOutputChannelRemix(int32 num_channels, array:double coefficient) Sets the conversion matrix for global output channel remixing. The coefficient array represents an N * N conversion matrix M, where N is num_channels, with M[i][j] = coefficient[i * N + j]. The remix is done by multiplying the conversion matrix to each N-channel PCM data, i.e M * [L, R] = [L', R'] For example, coefficient [0.1, 0.9, 0.4, 0.6] will result in: L' = 0.1 * L + 0.9 * R R' = 0.4 * L + 0.6 * R int32 SetHotwordModel(uint64_t node_id, string model_name) Set the hotword language model on the specified node. The node must have type HOTWORD and the model_name must be one of the supported locales returned by GetNodes() HotwordModels string. Returns 0 on success, or a negative errno on failure. Signals OutputVolumeChanged(int32 volume) Indicates that the output volume level has changed. OutputMuteChanged(boolean muted, boolean user_muted) Indicates that the output mute state has changed. muted is true if the system is muted by a system process, such as suspend or device switch. user_muted is set if the system has been muted by user action such as the mute key. InputGainChanged(int32 gain) Indicates what the system capture gain is now. gain expressed in dBFS*100. InputMuteChanged(boolean muted) Indicates that the input mute state has changed. NodesChanged() Indicates that nodes are added/removed. ActiveOutputNodeChanged(uint64 node_id) Indicates that the active output node has changed. ActiveInputNodeChanged(uint64 node_id) Indicates that the active input node has changed. OutputNodeVolumeChanged(uint64 node_id, int32 volume) Indicates the volume of the given node. NodeLeftRightSwappedChanged(uint64 node_id, boolean swapped) Indicates the left and right channel swapping state of the given node. InputNodeGainChanged(uint64 node_id, int32 gain) Indicates that the capture gain for the node is now gain expressed in dBFS*100. NumberOfActiveStreamsChanged(int32 num_active_streams) Indicates the number of active streams has changed. AudioOutputActiveStateChanged(boolean active) Indicates active output state has changed. See IsAudioOutputActive for details. HotwordTriggered(int64 tv_sec, int64 tv_nsec) Indicates that hotword was triggered at the given timestamp.