mirror of
https://github.com/openharmony/third_party_tinyalsa.git
synced 2026-07-19 23:33:30 -04:00
origanized and added some documentation
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
|
||||
/** @file */
|
||||
|
||||
/** @defgroup tinyalsa-mixer Mixer Interface
|
||||
/** @defgroup libtinyalsa-mixer Mixer Interface
|
||||
* @brief All macros, structures and functions that make up the mixer interface.
|
||||
*/
|
||||
|
||||
@@ -42,44 +42,58 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
struct mixer;
|
||||
|
||||
struct mixer_ctl;
|
||||
|
||||
/* Mixer control types */
|
||||
/** Mixer control type.
|
||||
* @ingroup libtinyalsa-mixer
|
||||
*/
|
||||
enum mixer_ctl_type {
|
||||
/** boolean control type */
|
||||
MIXER_CTL_TYPE_BOOL,
|
||||
/** integer control type */
|
||||
MIXER_CTL_TYPE_INT,
|
||||
/** an enumerated control type */
|
||||
MIXER_CTL_TYPE_ENUM,
|
||||
MIXER_CTL_TYPE_BYTE,
|
||||
MIXER_CTL_TYPE_IEC958,
|
||||
/** a 64 bit integer control type */
|
||||
MIXER_CTL_TYPE_INT64,
|
||||
/** unknown control type */
|
||||
MIXER_CTL_TYPE_UNKNOWN,
|
||||
/** end of the enumeration (not a control type) */
|
||||
MIXER_CTL_TYPE_MAX,
|
||||
};
|
||||
|
||||
/* Open and close a mixer */
|
||||
struct mixer *mixer_open(unsigned int card);
|
||||
|
||||
void mixer_close(struct mixer *mixer);
|
||||
|
||||
/* Get info about a mixer */
|
||||
const char *mixer_get_name(struct mixer *mixer);
|
||||
|
||||
/* Obtain mixer controls */
|
||||
unsigned int mixer_get_num_ctls(struct mixer *mixer);
|
||||
|
||||
struct mixer_ctl *mixer_get_ctl(struct mixer *mixer, unsigned int id);
|
||||
|
||||
struct mixer_ctl *mixer_get_ctl_by_name(struct mixer *mixer, const char *name);
|
||||
|
||||
struct mixer_ctl *mixer_get_ctl_by_name_and_index(struct mixer *mixer,
|
||||
const char *name,
|
||||
unsigned int index);
|
||||
|
||||
/* Get info about mixer controls */
|
||||
unsigned int mixer_ctl_get_id(struct mixer_ctl *ctl);
|
||||
|
||||
const char *mixer_ctl_get_name(struct mixer_ctl *ctl);
|
||||
|
||||
enum mixer_ctl_type mixer_ctl_get_type(struct mixer_ctl *ctl);
|
||||
|
||||
const char *mixer_ctl_get_type_string(struct mixer_ctl *ctl);
|
||||
|
||||
unsigned int mixer_ctl_get_num_values(struct mixer_ctl *ctl);
|
||||
|
||||
unsigned int mixer_ctl_get_num_enums(struct mixer_ctl *ctl);
|
||||
const char *mixer_ctl_get_enum_string(struct mixer_ctl *ctl,
|
||||
unsigned int enum_id);
|
||||
|
||||
const char *mixer_ctl_get_enum_string(struct mixer_ctl *ctl, unsigned int enum_id);
|
||||
|
||||
/* Some sound cards update their controls due to external events,
|
||||
* such as HDMI EDID byte data changing when an HDMI cable is
|
||||
@@ -89,16 +103,22 @@ void mixer_ctl_update(struct mixer_ctl *ctl);
|
||||
|
||||
/* Set and get mixer controls */
|
||||
int mixer_ctl_get_percent(struct mixer_ctl *ctl, unsigned int id);
|
||||
|
||||
int mixer_ctl_set_percent(struct mixer_ctl *ctl, unsigned int id, int percent);
|
||||
|
||||
int mixer_ctl_get_value(struct mixer_ctl *ctl, unsigned int id);
|
||||
|
||||
int mixer_ctl_get_array(struct mixer_ctl *ctl, void *array, size_t count);
|
||||
|
||||
int mixer_ctl_set_value(struct mixer_ctl *ctl, unsigned int id, int value);
|
||||
|
||||
int mixer_ctl_set_array(struct mixer_ctl *ctl, const void *array, size_t count);
|
||||
|
||||
int mixer_ctl_set_enum_by_string(struct mixer_ctl *ctl, const char *string);
|
||||
|
||||
/* Determe range of integer mixer controls */
|
||||
int mixer_ctl_get_range_min(struct mixer_ctl *ctl);
|
||||
|
||||
int mixer_ctl_get_range_max(struct mixer_ctl *ctl);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
||||
+34
-18
@@ -42,8 +42,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct pcm;
|
||||
|
||||
/** A flag that specifies that the PCM is an output.
|
||||
* May not be bitwise AND'd with @ref PCM_IN.
|
||||
* Used in @ref pcm_open.
|
||||
@@ -177,8 +175,11 @@ struct pcm_config {
|
||||
* stop_threshold : period_count * period_size
|
||||
* silence_threshold : 0
|
||||
*/
|
||||
/** The minimum number of frames required to start the PCM */
|
||||
unsigned int start_threshold;
|
||||
/** The minimum number of frames required to stop the PCM */
|
||||
unsigned int stop_threshold;
|
||||
/** The minimum number of frames to silence the PCM */
|
||||
unsigned int silence_threshold;
|
||||
};
|
||||
|
||||
@@ -196,7 +197,7 @@ enum pcm_param
|
||||
PCM_PARAM_SUBFORMAT,
|
||||
/** An interval representing the range of sample bits available (e.g. 8 to 32) */
|
||||
PCM_PARAM_SAMPLE_BITS,
|
||||
/** An interval representing the range of frame bits available (e.g. 8 to 64) */
|
||||
/** An interval representing the range of frame bits available (e.g. 8 to 64) */
|
||||
PCM_PARAM_FRAME_BITS,
|
||||
/** An interval representing the range of channels available (e.g. 1 to 2) */
|
||||
PCM_PARAM_CHANNELS,
|
||||
@@ -205,6 +206,7 @@ enum pcm_param
|
||||
PCM_PARAM_PERIOD_TIME,
|
||||
/** The number of frames in a period */
|
||||
PCM_PARAM_PERIOD_SIZE,
|
||||
/** The number of bytes in a period */
|
||||
PCM_PARAM_PERIOD_BYTES,
|
||||
/** The number of periods for a PCM */
|
||||
PCM_PARAM_PERIODS,
|
||||
@@ -212,23 +214,31 @@ enum pcm_param
|
||||
PCM_PARAM_BUFFER_SIZE,
|
||||
PCM_PARAM_BUFFER_BYTES,
|
||||
PCM_PARAM_TICK_TIME,
|
||||
};
|
||||
}; /* enum pcm_param */
|
||||
|
||||
struct pcm *pcm_open(unsigned int card, unsigned int device,
|
||||
unsigned int flags, struct pcm_config *config);
|
||||
int pcm_close(struct pcm *pcm);
|
||||
int pcm_is_ready(struct pcm *pcm);
|
||||
struct pcm_params;
|
||||
|
||||
struct pcm_params *pcm_params_get(unsigned int card, unsigned int device,
|
||||
unsigned int flags);
|
||||
|
||||
void pcm_params_free(struct pcm_params *pcm_params);
|
||||
|
||||
struct pcm_mask *pcm_params_get_mask(struct pcm_params *pcm_params,
|
||||
enum pcm_param param);
|
||||
unsigned int pcm_params_get_min(struct pcm_params *pcm_params,
|
||||
enum pcm_param param);
|
||||
unsigned int pcm_params_get_max(struct pcm_params *pcm_params,
|
||||
enum pcm_param param);
|
||||
struct pcm_mask *pcm_params_get_mask(struct pcm_params *pcm_params, enum pcm_param param);
|
||||
|
||||
unsigned int pcm_params_get_min(struct pcm_params *pcm_params, enum pcm_param param);
|
||||
|
||||
unsigned int pcm_params_get_max(struct pcm_params *pcm_params, enum pcm_param param);
|
||||
|
||||
struct pcm;
|
||||
|
||||
struct pcm *pcm_open(unsigned int card,
|
||||
unsigned int device,
|
||||
unsigned int flags,
|
||||
struct pcm_config *config);
|
||||
|
||||
int pcm_close(struct pcm *pcm);
|
||||
|
||||
int pcm_is_ready(struct pcm *pcm);
|
||||
|
||||
int pcm_get_file_descriptor(struct pcm *pcm);
|
||||
|
||||
@@ -237,25 +247,31 @@ const char *pcm_get_error(struct pcm *pcm);
|
||||
unsigned int pcm_format_to_bits(enum pcm_format format);
|
||||
|
||||
unsigned int pcm_get_buffer_size(struct pcm *pcm);
|
||||
|
||||
unsigned int pcm_frames_to_bytes(struct pcm *pcm, unsigned int frames);
|
||||
|
||||
unsigned int pcm_bytes_to_frames(struct pcm *pcm, unsigned int bytes);
|
||||
|
||||
int pcm_get_htimestamp(struct pcm *pcm, unsigned int *avail,
|
||||
struct timespec *tstamp);
|
||||
int pcm_get_htimestamp(struct pcm *pcm, unsigned int *avail, struct timespec *tstamp);
|
||||
|
||||
unsigned int pcm_get_subdevice(struct pcm *pcm);
|
||||
|
||||
int pcm_write(struct pcm *pcm, const void *data, unsigned int count);
|
||||
|
||||
int pcm_read(struct pcm *pcm, void *data, unsigned int count);
|
||||
|
||||
int pcm_mmap_write(struct pcm *pcm, const void *data, unsigned int count);
|
||||
|
||||
int pcm_mmap_read(struct pcm *pcm, void *data, unsigned int count);
|
||||
int pcm_mmap_begin(struct pcm *pcm, void **areas, unsigned int *offset,
|
||||
unsigned int *frames);
|
||||
|
||||
int pcm_mmap_begin(struct pcm *pcm, void **areas, unsigned int *offset, unsigned int *frames);
|
||||
|
||||
int pcm_mmap_commit(struct pcm *pcm, unsigned int offset, unsigned int frames);
|
||||
|
||||
int pcm_prepare(struct pcm *pcm);
|
||||
|
||||
int pcm_start(struct pcm *pcm);
|
||||
|
||||
int pcm_stop(struct pcm *pcm);
|
||||
|
||||
int pcm_wait(struct pcm *pcm, int timeout);
|
||||
|
||||
Reference in New Issue
Block a user