From 537d953fb5af6a66950a333ac7bbdec2b525087a Mon Sep 17 00:00:00 2001 From: "johan@henkens.com" Date: Tue, 19 Apr 2011 04:07:44 -0700 Subject: [PATCH 1/2] Added basic support to set audio output device in windows seven. --- hairtunes.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/hairtunes.c b/hairtunes.c index 31670c69..d0423ddf 100644 --- a/hairtunes.c +++ b/hairtunes.c @@ -69,6 +69,12 @@ int fmtp[32]; int sampling_rate; int frame_size; +//Audio Device/driver variables +// Max num of chars " " - 32 character string, 1 reserved for null +char *audiodevice = "Speakers (Realtek High Definiti"; +char *audiodriver = "wmm"; +char *audiodeviceid = 0; + // FIFO name and file handle char *pipename = 0; int pipe_handle = -1; @@ -740,16 +746,31 @@ void init_pipe(char* pipe) { void* init_ao() { ao_initialize(); int driver = ao_default_driver_id(); - ao_sample_format fmt; - memset(&fmt, 0, sizeof(fmt)); - + ao_option aoo; + ao_option *ao_opts=0; + memset(&fmt, 0, sizeof(fmt)); + fmt.bits = 16; fmt.rate = sampling_rate; fmt.channels = NUM_CHANNELS; - fmt.byte_format = AO_FMT_NATIVE; - - ao_device *dev = ao_open_live(driver, &fmt, 0); + fmt.byte_format = AO_FMT_LITTLE; + + if(audiodriver!=0){ + driver = ao_driver_id(audiodriver); + } + if(audiodeviceid!=0){ + aoo.key="id"; + aoo.value=audiodeviceid; + aoo.next=NULL; + ao_opts=&aoo; + } else if(audiodevice!=0){ + aoo.key="dev"; + aoo.value=audiodevice; + aoo.next=NULL; + ao_opts=&aoo; + } + ao_device *dev = ao_open_live(driver, &fmt, ao_opts); return dev; } From ae36ca1af2de20e1980ed17b80af9129b0d9ea67 Mon Sep 17 00:00:00 2001 From: "johan@henkens.com" Date: Tue, 19 Apr 2011 13:37:50 -0700 Subject: [PATCH 2/2] changed AO_FMT_LITTLE back to AO_FMT_NATIVE, as it should have been. --- hairtunes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hairtunes.c b/hairtunes.c index d0423ddf..00f73ec4 100644 --- a/hairtunes.c +++ b/hairtunes.c @@ -754,7 +754,7 @@ void* init_ao() { fmt.bits = 16; fmt.rate = sampling_rate; fmt.channels = NUM_CHANNELS; - fmt.byte_format = AO_FMT_LITTLE; + fmt.byte_format = AO_FMT_NATIVE; if(audiodriver!=0){ driver = ao_driver_id(audiodriver);