diff options
Diffstat (limited to 'cras/src/server/cras_alsa_jack.h')
-rw-r--r-- | cras/src/server/cras_alsa_jack.h | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/cras/src/server/cras_alsa_jack.h b/cras/src/server/cras_alsa_jack.h deleted file mode 100644 index 9f354590..00000000 --- a/cras/src/server/cras_alsa_jack.h +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright (c) 2012 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. - * - * Handles finding and monitoring ALSA Jack controls. These controls represent - * external jacks and report back when the plugged state of teh hack changes. - */ - -#ifndef CRAS_ALSA_JACK_H_ -#define CRAS_ALSA_JACK_H_ - -#include "cras_types.h" -#include "cras_alsa_ucm.h" - -struct cras_alsa_jack; -struct cras_alsa_jack_list; -struct cras_alsa_mixer; - -/* Callback type for users of jack_list to define, it will be called when the - * jack state changes. - * Args: - * jack - The jack that has changed. - * plugged - non-zero if the jack is attached. - * data - User defined pointer passed to cras_alsa_jack_create. - */ -typedef void(jack_state_change_callback)(const struct cras_alsa_jack *jack, - int plugged, void *data); - -/* Creates a jack list. The jacks can be added later by name matching or - * fully specified UCM. - * Args: - * card_index - Index ALSA uses to refer to the card. The X in "hw:X". - * card_name - The name of the card (used to find gpio jacks). - * device_index - Index ALSA uses to refer to the device. The Y in "hw:X". - * is_first_device - whether this device is the first device on the card. - * mixer - The mixer associated with this card, used to find controls that - * correspond to jacks. For instance "Headphone switch" for "Headphone - * Jack". - * ucm - CRAS use case manager if available. - * hctl - ALSA high-level control interface if available. - * direction - Input or output, look for mic or headphone jacks. - * cb - Function to call when a jack state changes. - * cb_data - Passed to the callback when called. - * Returns: - * A pointer to a new jack list on success, NULL if there is a failure. - */ -struct cras_alsa_jack_list * -cras_alsa_jack_list_create(unsigned int card_index, const char *card_name, - unsigned int device_index, int is_first_device, - struct cras_alsa_mixer *mixer, - struct cras_use_case_mgr *ucm, snd_hctl_t *hctl, - enum CRAS_STREAM_DIRECTION direction, - jack_state_change_callback *cb, void *cb_data); - -/* Finds jacks by name matching. - * The list holds all the interesting ALSA jacks for this - * device. These jacks will be for headphones, speakers, HDMI, etc. - * Args: - * jack_list - A pointer to a jack list. - * Returns: - * 0 on success. Error code if there is a failure. - */ -int cras_alsa_jack_list_find_jacks_by_name_matching( - struct cras_alsa_jack_list *jack_list); - -/* Add the jack defined by the UCM section information. - * Args: - * jack_list - A pointer to a jack list. - * ucm_section - UCM section data. - * result_jack - Resulting jack that was added. - * Returns: - * 0 on success. Error code if there is a failure. - */ -int cras_alsa_jack_list_add_jack_for_section( - struct cras_alsa_jack_list *jack_list, struct ucm_section *ucm_section, - struct cras_alsa_jack **result_jack); - -/* Destroys a jack list created with cras_alsa_jack_list_create. - * Args: - * jack_list - The list to destroy. - */ -void cras_alsa_jack_list_destroy(struct cras_alsa_jack_list *jack_list); - -/* Returns non-zero if the jack list has hctl jacks. - * Args: - * jack_list - The list check. - */ -int cras_alsa_jack_list_has_hctl_jacks(struct cras_alsa_jack_list *jack_list); - -/* Gets the mixer output associated with the given jack. - * Args: - * jack - The jack to query for a mixer output. - * Returns: - * A pointer to the mixer output if it exists, otherwise NULL. - */ -struct mixer_control * -cras_alsa_jack_get_mixer_output(const struct cras_alsa_jack *jack); - -/* Gets the mixer input associated with given jack. - * Args: - * jack - The jack to query for a mixer input. - * Returns: - * A pointer to the mixer input if it exists, otherwise NULL. - */ -struct mixer_control * -cras_alsa_jack_get_mixer_input(const struct cras_alsa_jack *jack); - -/* Query all jacks in the list and report the state to the callback. - * Args: - * jack_list - The jack list to query. - */ -void cras_alsa_jack_list_report(const struct cras_alsa_jack_list *jack_list); - -/* Gets the name of a jack. - * Args: - * jack_list - The jack list to query. - */ -const char *cras_alsa_jack_get_name(const struct cras_alsa_jack *jack); - -/* Gets the ucm device of a jack. - * Args: - * jack - The alsa jack. - */ -const char *cras_alsa_jack_get_ucm_device(const struct cras_alsa_jack *jack); - -void cras_alsa_jack_update_monitor_name(const struct cras_alsa_jack *jack, - char *name_buf, unsigned int buf_size); - -/* Updates the node type according to override_type_name in jack. - * Currently this method only supports updating the node type to - * CRAS_NODE_TYPE_INTERNAL_SPEAKER when override_type_name is - * "Internal Speaker". This is used in All-In-One device where - * output is an HDMI device, but it should be internal speaker from - * user point of view. - * Args: - * jack - The jack to query node type. - * type - The node type to be overwritten. - */ -void cras_alsa_jack_update_node_type(const struct cras_alsa_jack *jack, - enum CRAS_NODE_TYPE *type); - -/* Enables the ucm device for this jack if any. - * Args: - * jack - The jack to query for a mixer output. - */ -void cras_alsa_jack_enable_ucm(const struct cras_alsa_jack *jack, int enable); - -/* Find out whether the specified card has a jack with the given name. - * Args: - * card_index - Index ALSA uses to refer to the card. The X in "hw:X". - * jack_name - The name of the jack (for example, "Speaker Phantom Jack"). - */ -int cras_alsa_jack_exists(unsigned int card_index, const char *jack_name); - -#endif /* CRAS_ALSA_JACK_H_ */ |