view list_drivers.c @ 0:4d04dc4239b4

Simple demo programs for libao and libvorbisfile.
author Eris Caffee <discordia@eldalin.com>
date Tue, 22 Jul 2014 14:42:26 -0500
parents
children
line source
1 #include <stdio.h>
2 #include <stdlib.h>
4 #include <ao/ao.h>
6 /******************************************************************************/
8 void err_exit( char * msg )
9 {
10 fprintf(stderr, "FATAL ERROR: %s\n", msg ? msg : "Unknown error" );
11 exit( EXIT_FAILURE );
12 }
15 /******************************************************************************/
17 int main ( int argc, char** argv )
18 {
19 ao_initialize();
21 ao_info ** driver_list = NULL;
22 int driver_count = -1;
24 driver_list = ao_driver_info_list( &driver_count );
25 if ( driver_list == NULL )
26 {
27 err_exit("Unable to get list of drivers");
28 }
30 printf( "Endianness: %s\n", ao_is_big_endian() ? "big" : "little" );
32 int default_driver_id = ao_default_driver_id();
33 if ( -1 == default_driver_id )
34 {
35 printf( "No default driver available\n" );
36 }
38 for ( int i = 0; i < driver_count; ++i )
39 {
40 printf( "%s\n", driver_list[i]->name );
41 int driver_id = ao_driver_id( driver_list[i]->short_name );
42 if ( default_driver_id == driver_id )
43 {
44 printf( "\tDEFAULT DRIVER\n" );
45 }
46 printf( "\tshort name :\t%s\n", driver_list[i]->short_name );
47 printf( "\ttype :\t%s\n",
48 driver_list[i]->type == AO_TYPE_LIVE ? "live" :
49 (driver_list[i]->type == AO_TYPE_FILE ? "file" :
50 "unknown")
51 );
52 printf( "\tpriority :\t%d\n", driver_list[i]->priority );
53 printf( "\tpreferred byte format:\t%s\n",
54 driver_list[i]->preferred_byte_format == AO_FMT_LITTLE ? "little" :
55 (driver_list[i]->preferred_byte_format == AO_FMT_BIG ? "big" : "unknown" )
56 );
58 #if 0
59 // Appears that ao-file_extension is not in my version of libao
60 char * ext = NULL;
61 ext = ao_file_extension( driver_id );
62 printf( "\tnormal file extension:\t%s\n", ext == NULL ? "[none]" : ext );
63 #endif
65 printf( "\toptions :\t", driver_list[i]->comment);
66 for ( int j = 0; j < driver_list[i]->option_count ; ++j )
67 {
68 printf( "%s ", driver_list[i]->options[j]);
69 }
70 printf("\n");
72 printf( "\tcomment :\t%s\n", driver_list[i]->comment);
73 }
75 ao_shutdown();
76 }