Mercurial > mplayer.hg
annotate libao2/audio_out.c @ 1047:3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
author | al3x |
---|---|
date | Thu, 07 Jun 2001 13:06:03 +0000 |
parents | b36fb1ae4b53 |
children | cab5ba9ffc6c |
rev | line source |
---|---|
954 | 1 #include <stdio.h> |
2 #include <stdlib.h> | |
3 | |
4 #include "../config.h" | |
5 | |
6 #include "audio_out.h" | |
7 | |
995 | 8 #include <sys/soundcard.h> /* AFMT_* */ |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
9 |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
10 #ifndef SOUNCARD_H |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
11 # define AFMT_MU_LAW 0x00000001 |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
12 # define AFMT_A_LAW 0x00000002 |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
13 # define AFMT_IMA_ADPCM 0x00000004 |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
14 # define AFMT_U8 0x00000008 |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
15 # define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/ |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
16 # define AFMT_S16_BE 0x00000020 /* Big endian signed 16 */ |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
17 # define AFMT_S8 0x00000040 |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
18 # define AFMT_U16_LE 0x00000080 /* Little endian U16 */ |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
19 # define AFMT_U16_BE 0x00000100 /* Big endian U16 */ |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
20 # define AFMT_MPEG 0x00000200 /* MPEG (2) audio */ |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
21 /* 32 bit formats (MSB aligned) formats */ |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
22 # define AFMT_S32_LE 0x00001000 |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
23 # define AFMT_S32_BE 0x00002000 |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
24 #endif |
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
25 |
954 | 26 // there are some globals: |
27 int ao_samplerate=0; | |
28 int ao_channels=0; | |
29 int ao_format=0; | |
30 int ao_bps=0; | |
31 int ao_outburst=OUTBURST; // config.h default | |
32 int ao_buffersize=-1; | |
33 | |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
34 #ifdef USE_OSS_AUDIO |
954 | 35 extern ao_functions_t audio_out_oss; |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
36 #endif |
954 | 37 //extern ao_functions_t audio_out_ossold; |
38 extern ao_functions_t audio_out_null; | |
1007 | 39 #ifdef HAVE_ALSA5 |
40 extern ao_functions_t audio_out_alsa5; | |
41 #endif | |
1032 | 42 #ifdef HAVE_ALSA9 |
43 extern ao_functions_t audio_out_alsa9; | |
44 #endif | |
45 #ifdef HAVE_ESD | |
46 extern ao_functions_t audio_out_esd; | |
47 #endif | |
966
69b4f944ce08
Added support for sdl audio out (buggy pre-alpha).
atmosfear
parents:
954
diff
changeset
|
48 #ifdef HAVE_SDL |
69b4f944ce08
Added support for sdl audio out (buggy pre-alpha).
atmosfear
parents:
954
diff
changeset
|
49 extern ao_functions_t audio_out_sdl; |
69b4f944ce08
Added support for sdl audio out (buggy pre-alpha).
atmosfear
parents:
954
diff
changeset
|
50 #endif |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
51 #ifdef USE_SUN_AUDIO |
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
52 extern ao_functions_t audio_out_sun; |
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
53 #endif |
954 | 54 |
55 ao_functions_t* audio_out_drivers[] = | |
56 { | |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
57 #ifdef USE_OSS_AUDIO |
954 | 58 &audio_out_oss, |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
59 #endif |
954 | 60 &audio_out_null, |
1007 | 61 #ifdef HAVE_ALSA5 |
995 | 62 &audio_out_alsa5, |
1007 | 63 #endif |
1032 | 64 #ifdef HAVE_ALSA9 |
65 &audio_out_alsa9, | |
66 #endif | |
67 #ifdef HAVE_ESD | |
68 &audio_out_esd, | |
69 #endif | |
966
69b4f944ce08
Added support for sdl audio out (buggy pre-alpha).
atmosfear
parents:
954
diff
changeset
|
70 #ifdef HAVE_SDL |
69b4f944ce08
Added support for sdl audio out (buggy pre-alpha).
atmosfear
parents:
954
diff
changeset
|
71 &audio_out_sdl, |
69b4f944ce08
Added support for sdl audio out (buggy pre-alpha).
atmosfear
parents:
954
diff
changeset
|
72 #endif |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
73 #ifdef USE_SUN_AUDIO |
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
74 &audio_out_sun, |
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents:
1032
diff
changeset
|
75 #endif |
954 | 76 NULL |
77 }; | |
78 | |
995 | 79 char *audio_out_format_name(int format) |
80 { | |
81 switch (format) | |
82 { | |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
83 /* |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
84 case AFMT_MU_LAW: |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
85 case AFMT_A_LAW: |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
86 case AFMT_IMA_ADPCM: |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
87 */ |
995 | 88 case AFMT_S8: |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
89 return("Signed 8-bit"); |
995 | 90 case AFMT_U8: |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
91 return("Unsigned 8-bit"); |
995 | 92 case AFMT_U16_LE: |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
93 return("Unsigned 16-bit (Little-Endian)"); |
995 | 94 case AFMT_U16_BE: |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
95 return("Unsigned 16-bit (Big-Endian)"); |
995 | 96 case AFMT_S16_LE: |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
97 return("Signed 16-bit (Little-Endian)"); |
995 | 98 case AFMT_S16_BE: |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
99 return("Unsigned 16-bit (Big-Endian)"); |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
100 case AFMT_MPEG: |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
101 return("MPEG (2) audio"); |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
102 case AFMT_S32_LE: |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
103 return("Signed 32-bit (Little-Endian"); |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
104 case AFMT_S32_BE: |
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
105 return("Signed 32-bit (Big-Endian"); |
995 | 106 } |
1047
3239a22b956e
par kozmetikai valtoztatas, meg van ami nem :) cvs diff..
al3x
parents:
1038
diff
changeset
|
107 return("Unknown"); |
995 | 108 } |