X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftest%2Fexample.c;h=c07b1268c6a2d271b3949028c18e98982f563140;hb=fda63ad40b874933e2342a1f2f3d6f4b642d12ff;hp=960e1258b70dd6c0367eceb1184551d252e7f34b;hpb=e4169f77f892fefc66a97439d295d3e09ef3e2f0;p=deb_shairplay.git diff --git a/src/test/example.c b/src/test/example.c index 960e125..c07b126 100644 --- a/src/test/example.c +++ b/src/test/example.c @@ -21,6 +21,30 @@ audio_set_volume(void *cls, void *session, float volume) printf("Setting volume to %f\n", volume); } +static void +audio_set_metadata(void *cls, void *session, const void *buffer, int buflen) +{ + int orig = buflen; + FILE *file = fopen("metadata.bin", "wb"); + while (buflen > 0) { + buflen -= fwrite(buffer+orig-buflen, 1, buflen, file); + } + fclose(file); + printf("Metadata of length %d saved as metadata.bin\n", orig); +} + +static void +audio_set_coverart(void *cls, void *session, const void *buffer, int buflen) +{ + int orig = buflen; + FILE *file = fopen("coverart.jpg", "wb"); + while (buflen > 0) { + buflen -= fwrite(buffer+orig-buflen, 1, buflen, file); + } + fclose(file); + printf("Coverart of length %d saved as coverart.jpg\n", orig); +} + static void audio_process(void *cls, void *session, const void *buffer, int buflen) { @@ -42,6 +66,12 @@ audio_destroy(void *cls, void *session) fclose(session); } +static void +raop_log_callback(int level, const char *msg) +{ + printf("RAOP LOG(%d): %s\n", level, msg); +} + int main(int argc, char *argv[]) { @@ -56,11 +86,15 @@ main(int argc, char *argv[]) raop_cbs.cls = NULL; raop_cbs.audio_init = audio_init; raop_cbs.audio_set_volume = audio_set_volume; + raop_cbs.audio_set_metadata = audio_set_metadata; + raop_cbs.audio_set_coverart = audio_set_coverart; raop_cbs.audio_process = audio_process; raop_cbs.audio_flush = audio_flush; raop_cbs.audio_destroy = audio_destroy; raop = raop_init_from_keyfile(&raop_cbs, "airport.key"); + raop_set_log_level(raop, RAOP_LOG_DEBUG); + raop_set_log_callback(raop, &raop_log_callback); raop_start(raop, &raop_port, hwaddr, sizeof(hwaddr), "test"); dnssd = dnssd_init(NULL);