Skip to content

Commit d59c48c

Browse files
author
coderthetyler
committed
Test commit of 1.2.8 headers
1 parent 39c5908 commit d59c48c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+11523
-1
lines changed

build.zig

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ pub fn build(b: *std.Build) void {
1212
.optimize = optimize,
1313
});
1414
lib.linkLibC();
15-
lib.linkSystemLibrary("asound");
15+
// lib.linkSystemLibrary("asound");
16+
lib.installHeadersDirectoryOptions(.{
17+
.source_dir = .{ .path = "include" },
18+
.install_dir = .header,
19+
.install_subdir = ".",
20+
.exclude_extensions = &.{"COPYING"},
21+
});
1622

1723
_ = b.addModule("zig-alsa", .{
1824
.source_file = .{ .path = "src/main.zig" },

include/COPYING

Lines changed: 504 additions & 0 deletions
Large diffs are not rendered by default.

include/alsa/asoundef.h

Lines changed: 344 additions & 0 deletions
Large diffs are not rendered by default.

include/alsa/asoundlib.h

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/**
2+
* \file include/asoundlib.h
3+
* \brief Application interface library for the ALSA driver
4+
* \author Jaroslav Kysela <perex@perex.cz>
5+
* \author Abramo Bagnara <abramo@alsa-project.org>
6+
* \author Takashi Iwai <tiwai@suse.de>
7+
* \date 1998-2001
8+
*
9+
* Application interface library for the ALSA driver
10+
*/
11+
/*
12+
* This library is free software; you can redistribute it and/or modify
13+
* it under the terms of the GNU Lesser General Public License as
14+
* published by the Free Software Foundation; either version 2.1 of
15+
* the License, or (at your option) any later version.
16+
*
17+
* This program is distributed in the hope that it will be useful,
18+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+
* GNU Lesser General Public License for more details.
21+
*
22+
* You should have received a copy of the GNU Lesser General Public
23+
* License along with this library; if not, write to the Free Software
24+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25+
*
26+
*/
27+
28+
#ifndef __ASOUNDLIB_H
29+
#define __ASOUNDLIB_H
30+
31+
#include <unistd.h>
32+
#include <stdio.h>
33+
#include <stdlib.h>
34+
#include <sys/types.h>
35+
#include <string.h>
36+
#include <fcntl.h>
37+
#include <assert.h>
38+
#include <poll.h>
39+
#include <errno.h>
40+
#include <stdarg.h>
41+
#include <endian.h>
42+
43+
#ifndef __GNUC__
44+
#define __inline__ inline
45+
#endif
46+
47+
#include <alsa/asoundef.h>
48+
#include <alsa/version.h>
49+
#include <alsa/global.h>
50+
#include <alsa/input.h>
51+
#include <alsa/output.h>
52+
#include <alsa/error.h>
53+
#include <alsa/conf.h>
54+
#include <alsa/pcm.h>
55+
#include <alsa/rawmidi.h>
56+
#include <alsa/timer.h>
57+
#include <alsa/hwdep.h>
58+
#include <alsa/control.h>
59+
#include <alsa/mixer.h>
60+
#include <alsa/seq_event.h>
61+
#include <alsa/seq.h>
62+
#include <alsa/seqmid.h>
63+
#include <alsa/seq_midi_event.h>
64+
65+
#endif /* __ASOUNDLIB_H */

include/alsa/conf.h

Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
/**
2+
* \file include/conf.h
3+
* \brief Application interface library for the ALSA driver
4+
* \author Jaroslav Kysela <perex@perex.cz>
5+
* \author Abramo Bagnara <abramo@alsa-project.org>
6+
* \author Takashi Iwai <tiwai@suse.de>
7+
* \date 1998-2001
8+
*
9+
* Application interface library for the ALSA driver
10+
*/
11+
/*
12+
* This library is free software; you can redistribute it and/or modify
13+
* it under the terms of the GNU Lesser General Public License as
14+
* published by the Free Software Foundation; either version 2.1 of
15+
* the License, or (at your option) any later version.
16+
*
17+
* This program is distributed in the hope that it will be useful,
18+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+
* GNU Lesser General Public License for more details.
21+
*
22+
* You should have received a copy of the GNU Lesser General Public
23+
* License along with this library; if not, write to the Free Software
24+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25+
*
26+
*/
27+
28+
#ifndef __ALSA_CONF_H
29+
#define __ALSA_CONF_H
30+
31+
#ifdef __cplusplus
32+
extern "C" {
33+
#endif
34+
35+
/**
36+
* \defgroup Config Configuration Interface
37+
* The configuration functions and types allow you to read, enumerate,
38+
* modify and write the contents of ALSA configuration files.
39+
* \{
40+
*/
41+
42+
/** \brief \c dlsym version for the config evaluate callback. */
43+
#define SND_CONFIG_DLSYM_VERSION_EVALUATE _dlsym_config_evaluate_001
44+
/** \brief \c dlsym version for the config hook callback. */
45+
#define SND_CONFIG_DLSYM_VERSION_HOOK _dlsym_config_hook_001
46+
47+
/** \brief Configuration node type. */
48+
typedef enum _snd_config_type {
49+
/** Integer number. */
50+
SND_CONFIG_TYPE_INTEGER,
51+
/** 64-bit integer number. */
52+
SND_CONFIG_TYPE_INTEGER64,
53+
/** Real number. */
54+
SND_CONFIG_TYPE_REAL,
55+
/** Character string. */
56+
SND_CONFIG_TYPE_STRING,
57+
/** Pointer (runtime only, cannot be saved). */
58+
SND_CONFIG_TYPE_POINTER,
59+
/** Compound node. */
60+
SND_CONFIG_TYPE_COMPOUND = 1024
61+
} snd_config_type_t;
62+
63+
/**
64+
* \brief Internal structure for a configuration node object.
65+
*
66+
* The ALSA library uses a pointer to this structure as a handle to a
67+
* configuration node. Applications don't access its contents directly.
68+
*/
69+
typedef struct _snd_config snd_config_t;
70+
/**
71+
* \brief Type for a configuration compound iterator.
72+
*
73+
* The ALSA library uses this pointer type as a handle to a configuration
74+
* compound iterator. Applications don't directly access the contents of
75+
* the structure pointed to by this type.
76+
*/
77+
typedef struct _snd_config_iterator *snd_config_iterator_t;
78+
/**
79+
* \brief Internal structure for a configuration private update object.
80+
*
81+
* The ALSA library uses this structure to save private update information.
82+
*/
83+
typedef struct _snd_config_update snd_config_update_t;
84+
85+
extern snd_config_t *snd_config;
86+
87+
const char *snd_config_topdir(void);
88+
89+
int snd_config_top(snd_config_t **config);
90+
91+
int snd_config_load(snd_config_t *config, snd_input_t *in);
92+
int snd_config_load_string(snd_config_t **config, const char *s, size_t size);
93+
int snd_config_load_override(snd_config_t *config, snd_input_t *in);
94+
int snd_config_save(snd_config_t *config, snd_output_t *out);
95+
int snd_config_update(void);
96+
int snd_config_update_r(snd_config_t **top, snd_config_update_t **update, const char *path);
97+
int snd_config_update_free(snd_config_update_t *update);
98+
int snd_config_update_free_global(void);
99+
100+
int snd_config_update_ref(snd_config_t **top);
101+
void snd_config_ref(snd_config_t *top);
102+
void snd_config_unref(snd_config_t *top);
103+
104+
int snd_config_search(snd_config_t *config, const char *key,
105+
snd_config_t **result);
106+
int snd_config_searchv(snd_config_t *config,
107+
snd_config_t **result, ...);
108+
int snd_config_search_definition(snd_config_t *config,
109+
const char *base, const char *key,
110+
snd_config_t **result);
111+
112+
typedef int (*snd_config_expand_fcn_t)(snd_config_t **dst, const char *s, void *private_data);
113+
114+
int snd_config_expand_custom(snd_config_t *config, snd_config_t *root,
115+
snd_config_expand_fcn_t fcn, void *private_data,
116+
snd_config_t **result);
117+
int snd_config_expand(snd_config_t *config, snd_config_t *root,
118+
const char *args, snd_config_t *private_data,
119+
snd_config_t **result);
120+
int snd_config_evaluate(snd_config_t *config, snd_config_t *root,
121+
snd_config_t *private_data, snd_config_t **result);
122+
int snd_config_evaluate_string(snd_config_t **dst, const char *s,
123+
snd_config_expand_fcn_t fcn, void *private_data);
124+
125+
int snd_config_add(snd_config_t *config, snd_config_t *child);
126+
int snd_config_add_before(snd_config_t *before, snd_config_t *child);
127+
int snd_config_add_after(snd_config_t *after, snd_config_t *child);
128+
int snd_config_remove(snd_config_t *config);
129+
int snd_config_delete(snd_config_t *config);
130+
int snd_config_delete_compound_members(const snd_config_t *config);
131+
int snd_config_copy(snd_config_t **dst, snd_config_t *src);
132+
int snd_config_substitute(snd_config_t *dst, snd_config_t *src);
133+
int snd_config_merge(snd_config_t *dst, snd_config_t *src, int override);
134+
135+
int snd_config_make(snd_config_t **config, const char *key,
136+
snd_config_type_t type);
137+
int snd_config_make_integer(snd_config_t **config, const char *key);
138+
int snd_config_make_integer64(snd_config_t **config, const char *key);
139+
int snd_config_make_real(snd_config_t **config, const char *key);
140+
int snd_config_make_string(snd_config_t **config, const char *key);
141+
int snd_config_make_pointer(snd_config_t **config, const char *key);
142+
int snd_config_make_compound(snd_config_t **config, const char *key, int join);
143+
int snd_config_make_path(snd_config_t **config, snd_config_t *root, const char *key,
144+
int join, int override);
145+
146+
int snd_config_imake_integer(snd_config_t **config, const char *key, const long value);
147+
int snd_config_imake_integer64(snd_config_t **config, const char *key, const long long value);
148+
int snd_config_imake_real(snd_config_t **config, const char *key, const double value);
149+
int snd_config_imake_string(snd_config_t **config, const char *key, const char *ascii);
150+
int snd_config_imake_safe_string(snd_config_t **config, const char *key, const char *ascii);
151+
int snd_config_imake_pointer(snd_config_t **config, const char *key, const void *ptr);
152+
153+
snd_config_type_t snd_config_get_type(const snd_config_t *config);
154+
int snd_config_is_array(const snd_config_t *config);
155+
int snd_config_is_empty(const snd_config_t *config);
156+
157+
int snd_config_set_id(snd_config_t *config, const char *id);
158+
int snd_config_set_integer(snd_config_t *config, long value);
159+
int snd_config_set_integer64(snd_config_t *config, long long value);
160+
int snd_config_set_real(snd_config_t *config, double value);
161+
int snd_config_set_string(snd_config_t *config, const char *value);
162+
int snd_config_set_ascii(snd_config_t *config, const char *ascii);
163+
int snd_config_set_pointer(snd_config_t *config, const void *ptr);
164+
int snd_config_get_id(const snd_config_t *config, const char **value);
165+
int snd_config_get_integer(const snd_config_t *config, long *value);
166+
int snd_config_get_integer64(const snd_config_t *config, long long *value);
167+
int snd_config_get_real(const snd_config_t *config, double *value);
168+
int snd_config_get_ireal(const snd_config_t *config, double *value);
169+
int snd_config_get_string(const snd_config_t *config, const char **value);
170+
int snd_config_get_ascii(const snd_config_t *config, char **value);
171+
int snd_config_get_pointer(const snd_config_t *config, const void **value);
172+
int snd_config_test_id(const snd_config_t *config, const char *id);
173+
174+
snd_config_iterator_t snd_config_iterator_first(const snd_config_t *node);
175+
snd_config_iterator_t snd_config_iterator_next(const snd_config_iterator_t iterator);
176+
snd_config_iterator_t snd_config_iterator_end(const snd_config_t *node);
177+
snd_config_t *snd_config_iterator_entry(const snd_config_iterator_t iterator);
178+
179+
/**
180+
* \brief Helper macro to iterate over the children of a compound node.
181+
* \param[in,out] pos Iterator variable for the current node.
182+
* \param[in,out] next Temporary iterator variable for the next node.
183+
* \param[in] node Handle to the compound configuration node to iterate over.
184+
*
185+
* Use this macro like a \c for statement, e.g.:
186+
* \code
187+
* snd_config_iterator_t pos, next;
188+
* snd_config_for_each(pos, next, node) {
189+
* snd_config_t *entry = snd_config_iterator_entry(pos);
190+
* ...
191+
* }
192+
* \endcode
193+
*
194+
* This macro allows deleting or removing the current node.
195+
*/
196+
#define snd_config_for_each(pos, next, node) \
197+
for (pos = snd_config_iterator_first(node), next = snd_config_iterator_next(pos); pos != snd_config_iterator_end(node); pos = next, next = snd_config_iterator_next(pos))
198+
199+
/* Misc functions */
200+
201+
int snd_config_get_bool_ascii(const char *ascii);
202+
int snd_config_get_bool(const snd_config_t *conf);
203+
int snd_config_get_card(const snd_config_t *conf);
204+
int snd_config_get_ctl_iface_ascii(const char *ascii);
205+
int snd_config_get_ctl_iface(const snd_config_t *conf);
206+
207+
/* Names functions */
208+
209+
/**
210+
* Device-name list element
211+
*/
212+
typedef struct snd_devname snd_devname_t;
213+
214+
/**
215+
* Device-name list element (definition)
216+
*/
217+
struct snd_devname {
218+
char *name; /**< Device name string */
219+
char *comment; /**< Comments */
220+
snd_devname_t *next; /**< Next pointer */
221+
};
222+
223+
int snd_names_list(const char *iface, snd_devname_t **list);
224+
void snd_names_list_free(snd_devname_t *list);
225+
226+
/** \} */
227+
228+
#ifdef __cplusplus
229+
}
230+
#endif
231+
232+
#endif /* __ALSA_CONF_H */

0 commit comments

Comments
 (0)