summaryrefslogtreecommitdiff
path: root/cras/src/server/cras_alsa_jack.h
diff options
context:
space:
mode:
Diffstat (limited to 'cras/src/server/cras_alsa_jack.h')
-rw-r--r--cras/src/server/cras_alsa_jack.h155
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_ */