libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
lws-alsa.h
Go to the documentation of this file.
1/*
2 * libwebsockets - small server side websockets and web server implementation
3 *
4 * Copyright (C) 2010 - 2026 Andy Green <andy@warmcat.com>
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22 * IN THE SOFTWARE.
23 */
24
25#ifndef __LWS_ALSA_H__
26#define __LWS_ALSA_H__
27
28struct lws_alsa_ctx;
29
36
39 char name[64];
40 long min;
41 long max;
42 long step;
43 long val;
44};
45
46typedef int (*lws_alsa_control_cb)(void *user, const struct lws_alsa_control *c);
47
48LWS_VISIBLE LWS_EXTERN struct lws_alsa_ctx *
50
52lws_alsa_destroy(struct lws_alsa_ctx **ctx);
53
55lws_alsa_get_fd(struct lws_alsa_ctx *ctx);
56
58lws_alsa_read(struct lws_alsa_ctx *ctx, void *buf, size_t samples);
59
61lws_alsa_enum_controls(struct lws_alsa_ctx *ctx, lws_alsa_control_cb cb, void *user);
62
64lws_alsa_set_control(struct lws_alsa_ctx *ctx, uint32_t id, long val);
65
66#endif
unsigned int uint32_t
#define LWS_EXTERN
#define LWS_VISIBLE
uint32_t rate
Definition lws-alsa.h:32
LWS_VISIBLE LWS_EXTERN int lws_alsa_read(struct lws_alsa_ctx *ctx, void *buf, size_t samples)
LWS_VISIBLE LWS_EXTERN int lws_alsa_set_control(struct lws_alsa_ctx *ctx, uint32_t id, long val)
LWS_VISIBLE LWS_EXTERN int lws_alsa_enum_controls(struct lws_alsa_ctx *ctx, lws_alsa_control_cb cb, void *user)
char name[64]
Definition lws-alsa.h:39
uint32_t samples_per_frame
Definition lws-alsa.h:34
const char * device_name
Definition lws-alsa.h:31
LWS_VISIBLE LWS_EXTERN void lws_alsa_destroy(struct lws_alsa_ctx **ctx)
uint32_t id
Definition lws-alsa.h:38
LWS_VISIBLE LWS_EXTERN int lws_alsa_get_fd(struct lws_alsa_ctx *ctx)
int(* lws_alsa_control_cb)(void *user, const struct lws_alsa_control *c)
Definition lws-alsa.h:46
uint32_t channels
Definition lws-alsa.h:33
LWS_VISIBLE LWS_EXTERN struct lws_alsa_ctx * lws_alsa_create_capture(const struct lws_alsa_info *info)