f5c77c2ef544b2b8f7b3ffd180cdfd792f8f341a
[src/app-framework-binder.git] / plugins / audio / audio-api.h
1 /*
2  * Copyright (C) 2015, 2016 "IoT.bzh"
3  * Author "Manuel Bachmann"
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *   http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 #ifndef AUDIO_API_H
19 #define AUDIO_API_H
20
21 /* global plugin handle, should store everything we may need */
22 typedef struct {
23   int devCount;
24 } pluginHandleT;
25
26 /* private client context [will be destroyed when client leaves] */
27 typedef struct {
28   void *audio_dev;          /* handle to implementation (ALSA, PulseAudio...) */
29   char *name;               /* name of the audio card */
30   int idx;                  /* audio card index within global array           */
31   unsigned int volume[8];   /* audio volume (8 channels) : 0-100              */
32   unsigned int channels;    /* audio channels : 1(mono)/2(stereo)...          */
33   unsigned char mute;       /* audio muted : 0(false)/1(true)                 */
34   unsigned char is_playing; /* audio is playing: 0(false)/1(true)             */
35 } audioCtxHandleT;
36
37
38 #endif /* AUDIO_API_H */