aa1a47f9d7376ec48470721da3444a64a534396b
[deb_shairplay.git] / src / include / raop.h
1 #ifndef RAOP_H
2 #define RAOP_H
3
4 #if defined (WIN32) && defined(DLL_EXPORT)
5 # define RAOP_API __declspec(dllexport)
6 #else
7 # define RAOP_API
8 #endif
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 typedef struct raop_s raop_t;
15
16 struct raop_callbacks_s {
17 void* cls;
18 void* (*audio_init)(void *cls, int bits, int channels, int samplerate);
19 void (*audio_set_volume)(void *cls, void *session, float volume);
20 void (*audio_set_metadata)(void *cls, void *session, const void *buffer, int buflen);
21 void (*audio_set_coverart)(void *cls, void *session, const void *buffer, int buflen);
22 void (*audio_process)(void *cls, void *session, const void *buffer, int buflen);
23 void (*audio_flush)(void *cls, void *session);
24 void (*audio_destroy)(void *cls, void *session);
25 };
26 typedef struct raop_callbacks_s raop_callbacks_t;
27
28 RAOP_API raop_t *raop_init(raop_callbacks_t *callbacks, const char *pemkey);
29 RAOP_API raop_t *raop_init_from_keyfile(raop_callbacks_t *callbacks, const char *keyfile);
30
31 RAOP_API int raop_is_running(raop_t *raop);
32
33 RAOP_API int raop_start(raop_t *raop, unsigned short *port, const char *hwaddr, int hwaddrlen, const char *password);
34 RAOP_API void raop_stop(raop_t *raop);
35
36 RAOP_API void raop_destroy(raop_t *raop);
37
38 #ifdef __cplusplus
39 }
40 #endif
41 #endif