1 #ifndef LIBRARIES_AC97MIXER_H 2 #define LIBRARIES_AC97MIXER_H 3 4 /* 5 ac97mixer library definitions 6 7 Copyright © 2003-2010 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 #ifndef EXEC_TYPES_H 11 #include <exec/types.h> 12 #endif 13 14 #define MIN_MIXERVERSION (51UL) 15 16 #define AC97MA_OUTPUTS 0x84340001 /* (ULONG *) */ 17 #define AC97MA_INPUTS 0x84340002 /* (ULONG *) */ 18 #define AC97MA_S3DCAPABLE 0x84340003 /* (ULONG *) */ 19 #define AC97MA_SPDIFOUTCAPABLE 0x84340004 /* (ULONG *) */ 20 #define AC97MA_S3DLEVEL 0x84340005 /* (ULONG) */ 21 #define AC97MA_SPDIFOUTENABLE 0x84340006 /* (ULONG) */ 22 #define AC97MA_NAME 0x87650007 /* (char **) */ 23 #define AC97MA_VOLUMEHOOK 0x84340008 /* (struct Hook *) */ 24 25 #define AC97MIA_MAXVOLUME 0x85630001 /* 32bit data word containing 2 signed 16bit words */ 26 /* in 15.1 fractional format (upper is left, lower word is right (or mono) */ 27 /* unit is db in 0.5db steps */ 28 29 #define AC97MIA_MINVOLUME 0x85630002 /* 32bit data word containing 2 signed 16bit words */ 30 /* in 15.1 fractional format (upper is left, lower word is right (or mono) */ 31 /* unit is db in 0.5db steps */ 32 33 #define AC97MIA_NAME 0x85630003 /* (char **) */ 34 #define AC97MIA_CHANNELS 0x85630004 /* (ULONG *) */ 35 #define AC97MIA_VOLUME 0x85630005 /* 32bit data word containing 2 signed 16bit words */ 36 /* in 15.1 fractional format (upper is left, lower word is right (or mono) */ 37 /* unit is db in 0.5db steps */ 38 #define AC97MIA_MUTE 0x87650007 /* (ULONG) */ 39 #define AC97MIA_HASBOOST 0x87650008 /* (ULONG *) */ 40 #define AC97MIA_BOOST 0x87650009 /* (ULONG) */ 41 42 43 44 #define AC97MOA_MAXVOLUME 0x87650001 /* 32bit data word containing 2 signed 16bit words */ 45 /* in 15.1 fractional format (upper is left, lower word is right (or mono) */ 46 /* unit is db in 0.5db steps */ 47 48 #define AC97MOA_MINVOLUME 0x87650002 /* 32bit data word containing 2 signed 16bit words */ 49 /* in 15.1 fractional format (upper is left, lower word is right (or mono) */ 50 /* unit is db in 0.5db steps */ 51 52 #define AC97MOA_NAME 0x87650003 /* (char **) */ 53 #define AC97MOA_CHANNELS 0x87650004 /* (ULONG *) */ 54 #define AC97MOA_VOLUME 0x87650005 /* 32bit data word containing 2 signed 16bit words */ 55 /* in 15.1 fractional format (upper is left, lower word is right (or mono) */ 56 /* unit is db in 0.5db steps */ 57 #define AC97MOA_MUTE 0x87650007 /* (ULONG) */ 58 59 60 enum 61 { 62 AC97TAG_CodecName = 0x88770000, 63 AC97TAG_UserData, 64 AC97TAG_SetMixerAttrFunc, 65 AC97TAG_GetMixerAttrFunc, 66 AC97TAG_SetInputAttrFunc, 67 AC97TAG_GetInputAttrFunc, 68 AC97TAG_SetOutputAttrFunc, 69 AC97TAG_GetOutputAttrFunc, 70 AC97TAG_RegWriteFunc, 71 AC97TAG_RegReadFunc, 72 AC97TAG_SoftVolume 73 }; 74 75 struct AC97MixerMsg 76 { 77 ULONG msg_id; 78 ULONG index; 79 ULONG attr; 80 ULONG value; 81 }; 82 83 enum 84 { 85 AC97MMSG_SETINPUT = 1, 86 AC97MMSG_SETOUTPUT = 2, 87 AC97MMSG_SETMIXER = 3, 88 AC97MMSG_REMOVED = 4 89 }; 90 91 92 struct AC97VolAdjMsg 93 { 94 void *buffer; 95 ULONG samples; 96 ULONG format; 97 }; 98 99 #pragma pack() 100 101 #endif /* LIBRARIES_AC97MIXER_H */