Changeset 486
- Timestamp:
- May 23, 2010, 10:28:06 PM (15 years ago)
- Location:
- OCO/trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
OCO/trunk/drv16/audiohw.cpp
r473 r486 135 135 }, 136 136 { // 137 AUDIOHW_ INVALID_DEVICE,137 AUDIOHW_WAVE_CAPTURE, /* DAZ */ 138 138 0, 139 139 DATATYPE_ADPCM_AVC, -
OCO/trunk/drv16/ioctl.cpp
r483 r486 687 687 extern "C" void StrategyIoctl(PREQPACKET prp, USHORT LDev) 688 688 { 689 if (prp->s.ioctl.bCategory == DAUDIO_IOCTL_CAT)690 {691 IoctlDirectAudio(prp);692 return;693 }694 695 689 #ifdef DEBUG 696 690 dprintf(("StrategyIoctl:cat:0x%x, code:0x%x cd %d gd %d", prp->s.ioctl.bCategory, prp->s.ioctl.bCode, current_device, LDev)); 697 691 #endif 698 if (prp->s.ioctl.bCategory == 0x90) 699 { 692 switch (prp->s.ioctl.bCategory) { 693 case DAUDIO_IOCTL_CAT: /* 0x91 */ 694 IoctlDirectAudio(prp); 695 break; 696 697 case MIXER_IOCTL_CAT: /* 0x90 */ 700 698 IoctlMixer(prp, LDev); 701 return;702 } 703 if (prp->s.ioctl.bCategory != AUDIO_IOCTL_CAT) 704 705 prp->usStatus |= RPERR | RPBADCMD; 706 return;707 } 708 709 switch (prp->s.ioctl.bCode) 710 { 711 case AUDIO_INIT: 712 IoctlAudioInit(prp, LDev);713 714 case AUDIO_CONTROL:715 IoctlAudioControl(prp);716 717 case AUDIO_CAPABILITY: 718 IoctlAudioCapability(prp, LDev);719 break; 720 721 722 723 699 break; 700 701 case AUDIO_IOCTL_CAT: /* 0x80 */ 702 switch (prp->s.ioctl.bCode) { 703 case AUDIO_INIT: /* 0x40 */ 704 IoctlAudioInit(prp, LDev); 705 break; 706 case AUDIO_CONTROL: /* 0x42 */ 707 IoctlAudioControl(prp); 708 break; 709 case AUDIO_CAPABILITY: /* 0x48 */ 710 IoctlAudioCapability(prp, LDev); 711 break; 712 default: 713 prp->usStatus |= RPERR | RPBADCMD; 714 break; 715 } 716 break; 717 718 default: 719 prp->usStatus |= RPERR | RPBADCMD; 720 break; 721 } 724 722 725 723 #ifdef DEBUG 726 //dprintf(("StrategyIoctl:ret:0x%x", (USHORT)prp->usStatus));724 dprintf(("StrategyIoctl:ret:0x%x", (USHORT)prp->usStatus)); 727 725 #endif 728 726 return; 729 727 } 728 -
OCO/trunk/drv16/mixer.cpp
r483 r486 50 50 static int IOCTL90ToALSAControl[IOCTL90_MAX_CONTROLS][3] = { 51 51 // IOCTL90 id ALSA id, ALSA id 2, fIsProperty 52 /* MONOIN */ OSS32_MIX_VOLUME_SPEAKER, -1, FALSE,53 /* PHONESET */ OSS32_MIX_VOLUME_PHONE, -1, FALSE,54 /* MICSET */ OSS32_MIX_VOLUME_MIC, -1, FALSE,55 /* LINESET */ OSS32_MIX_VOLUME_LINEIN, -1, FALSE,56 /* CDSET */ OSS32_MIX_VOLUME_CD, -1, FALSE,57 /* VIDEOSET */ OSS32_MIX_VOLUME_VIDEO, -1, FALSE,58 /* AUXSET */ OSS32_MIX_VOLUME_AUX, -1, FALSE,59 /* none */ -1,-1, FALSE,60 /* none */ -1, -1, FALSE,61 /* none */ -1, -1, FALSE,62 /* none */ -1, -1, FALSE,63 /* BASSTREBLESET */ OSS32_MIX_LEVEL_BASS, OSS32_MIX_LEVEL_TREBLE, TRUE,64 /* THREEDSET */ -1, -1, FALSE,65 /* STREAMVOLSET */ OSS32_MIX_VOLUME_PCM, -1, FALSE,66 /* RECORDSRCSET */ OSS32_MIX_INPUTSRC, -1, TRUE,67 /* RECORDGAINSET */ OSS32_MIX_VOLUME_CAPTURE, -1, FALSE,52 /* MONOIN */ OSS32_MIX_VOLUME_SPEAKER, -1, FALSE, 53 /* PHONESET */ OSS32_MIX_VOLUME_PHONE, -1, FALSE, 54 /* MICSET */ OSS32_MIX_VOLUME_MIC, -1, FALSE, 55 /* LINESET */ OSS32_MIX_VOLUME_LINEIN, -1, FALSE, 56 /* CDSET */ OSS32_MIX_VOLUME_CD, -1, FALSE, 57 /* VIDEOSET */ OSS32_MIX_VOLUME_VIDEO, -1, FALSE, 58 /* AUXSET */ OSS32_MIX_VOLUME_AUX, -1, FALSE, 59 /* HEADPHONESET */ OSS32_MIX_VOLUME_HEADPHONE, -1, FALSE, 60 /* none */ -1, -1, FALSE, 61 /* none */ -1, -1, FALSE, 62 /* none */ -1, -1, FALSE, 63 /* BASSTREBLESET */ OSS32_MIX_LEVEL_BASS, OSS32_MIX_LEVEL_TREBLE, TRUE, 64 /* THREEDSET */ -1, -1, FALSE, 65 /* STREAMVOLSET */ OSS32_MIX_VOLUME_PCM, -1, FALSE, 66 /* RECORDSRCSET */ OSS32_MIX_INPUTSRC, -1, TRUE, 67 /* RECORDGAINSET */ OSS32_MIX_VOLUME_CAPTURE, -1, FALSE, 68 68 }; 69 69 … … 81 81 /* OSS32_MIX_VOLUME_SPEAKER */ MONOINSET & 0xF, 82 82 /* OSS32_MIX_VOLUME_PHONE */ PHONESET & 0xF, 83 /* OSS32_MIX_VOLUME_HEADPHONE */ -1,83 /* OSS32_MIX_VOLUME_HEADPHONE */ HEADPHONESET & 0xF, 84 84 /* OSS32_MIX_VOLUME_AUX */ AUXSET & 0xF, 85 85 /* OSS32_MIX_VOLUME_CAPTURE */ RECORDGAINSET & 0xF, … … 313 313 BOOL DBGCALLCONV MixerSetWaveVolume(OSSSTREAMID mixerStreamId, OSSSTREAMID StreamId, ULONG Volume, int fFlags) 314 314 { 315 dprintf(("MixerSetWaveVolume Vol=%lx", Volume)); 315 316 if(!fSetWaveVolume || OSS16_WaveSetVolume(StreamId, Volume) != OSSERR_SUCCESS) { 316 317 fSetWaveVolume = FALSE; … … 327 328 BOOL fInputGainHack = FALSE; 328 329 330 dprintf(("MixerSetVolume Ctl=%lx Vol=%lx", ulControl, ulVolume)); 329 331 if(!(fFlags & MIXFLAG_FORCE_UPDATE) && fRecGainIOCTL90 && ulControl == OSS32_MIX_VOLUME_CAPTURE) 330 332 return TRUE; //locked … … 649 651 } 650 652 if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_MIDI)) { 653 dprintf(("MixerInit: MIX_VOLUME_MIDI not processed")); 651 654 } 652 655 if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_LINEIN)) { … … 717 720 } 718 721 if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_HEADPHONE)) { 722 ALSAIOCTLMap[HEADPHONESET] = 1; 723 ALSAIOCTLMap[HEADPHONEQUERY] = 1; 724 725 //Set HEADPHONE 726 rp.s.ioctl.bCode = HEADPHONESET; 727 rp.s.ioctl.pvData = (void FAR *)&mixinfo; 728 mixinfo.Mute = 0; 729 mixinfo.VolumeR = mixinfo.VolumeL = 80; 730 IoctlMixer(&rp, LDev); 731 // dprintf(("MixerInit: MIX_VOLUME_HEADPHONE not processed")); 719 732 } 720 733 if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_AUX)) { -
OCO/trunk/drv16/mixer.h
r33 r486 1 1 #ifndef __MIXER_H__ 2 2 #define __MIXER_H__ 3 4 #define MIXER_IOCTL_CAT 0x90 3 5 4 6 #define MIXFLAG_FORCE_UPDATE 1 -
OCO/trunk/drv16/wavestrm.cpp
r483 r486 209 209 ULONG ulBuffLeft; 210 210 ULONG ulBytesWritten; 211 ULONG ulStartPos;211 //DAZ ULONG ulStartPos; 212 212 213 213 /* make sure we have a buffer to copy from */ … … 230 230 } 231 231 232 /* DAZ */ 233 #if 0 232 234 // get the starting position. Call WaveGetHwPtr. if we get a bad rc then we bail out. 233 235 if(pahw->GetHwPtr(StreamId, &_configinfo, &ulStartPos) == FALSE) … … 237 239 return (ULONG)-1; 238 240 } 241 #endif 239 242 240 243 // get the buffer pointer and amount of data remaining -
OCO/trunk/include/ioctl90.h
r33 r486 8 8 // 9 9 // Crystal Semiconductor defined category 0x90 OS/2 mixer IOCTLS. 10 // 10 // 11 11 // STATUS: (Drivers known to implement this API) 12 12 // Crystal Semiconductor ISA Mode 3 driver version 2.08. … … 15 15 //----------------------------------------------------------------------------- 16 16 // 17 // This header file contains application usable defines for calls to 17 // This header file contains application usable defines for calls to 18 18 // Crystal Semiconductor device driver to manage hardware mixer. 19 19 // It is primarily used to adjust the listening level of 20 20 // mixer inputs (CD-ROM, Aux, Line, Phone...). The API also allows 21 // adjustment to the record gain as an override to MMPM/2 stream 21 // adjustment to the record gain as an override to MMPM/2 stream 22 22 // specific API. 23 23 // … … 58 58 // 4E - RecordSrcSet 6E - RecordSrcQuery 59 59 // 4F - RecordGainSet 6F - RecordGainQuery 60 // 80 - ApiLevelQuery 60 // 80 - ApiLevelQuery 61 61 // 81 - GetApiMap 62 62 // 82 - CallbackReg 63 63 // 64 // Application passes a structure (ioctl data buffer) 64 // Application passes a structure (ioctl data buffer) 65 65 // which contains: 66 66 // ULONG Mute; // UnMute==0, Mute==1 … … 68 68 // ULONG ulVolR; // Right volume in percent 0..100 69 69 // 70 // With the exception of the record gain APIs, these APIs effect 70 // With the exception of the record gain APIs, these APIs effect 71 71 // what you hear (output bus connections). 72 72 // … … 93 93 // ULONG ulActionTaken = 0; 94 94 // HFILE hPdd = NULL; 95 // 95 // 96 96 // OpenFlags = OPEN_ACTION_OPEN_IF_EXISTS; // Do not create file 97 // 97 // 98 98 // OpenMode = OPEN_ACCESS_READWRITE + // Read/Write file 99 99 // OPEN_SHARE_DENYNONE + // Non-exclusive access 100 100 // OPEN_FLAGS_FAIL_ON_ERROR; // No system popups on errors 101 // 101 // 102 102 // ulRC = DosOpen (ddName, // in 103 103 // &hPdd, // out (handle) … … 108 108 // OpenMode, // in 109 109 // NULL); // in 110 // 110 // 111 111 // printf ("DosOpen RC = %x\n", ulRC); 112 // 112 // 113 113 // if (ulRC != 0) 114 114 // hPdd = NULL; 115 // 115 // 116 116 // return (hPdd); 117 117 // } … … 121 121 // ULONG ulRC; 122 122 // ULONG ulSizeOfStruct = = sizeof (MixStruct); 123 // 124 // ulRC = DosDevIOCtl 123 // 124 // ulRC = DosDevIOCtl 125 125 // (hPdd, // Device Handle 126 126 // 0x90, // Category (user defined >= 0x80) … … 132 132 // ulSizeOfStruct, // in Maximum size of command data 133 133 // &ulSizeOfStruct); // in out Size of command data 134 // 134 // 135 135 // printf ("DosDevIOCtl ulRC = %d\n", ulRC); 136 // 136 // 137 137 // return (ulRC); 138 138 // } … … 150 150 151 151 // This prototype is used in the device driver only (common header) 152 //USHORT ioctlmixMain (USHORT Function, 152 //USHORT ioctlmixMain (USHORT Function, 153 153 // USHORT SysFileNum, 154 // ULONG ulpvData, 154 // ULONG ulpvData, 155 155 // USHORT usDLength); 156 156 … … 184 184 #define VIDEOSET 0x45 185 185 #define AUXSET 0x46 186 #define HEADPHONESET 0x47 186 187 #define BASSTREBLESET 0x4B 187 188 #define THREEDSET 0x4C … … 197 198 #define VIDEOQUERY 0x65 198 199 #define AUXQUERY 0x66 200 #define HEADPHONEQUERY 0x67 199 201 #define BASSTREBLEQUERY 0x6B 200 202 #define THREEDQUERY 0x6C … … 213 215 // This allows override of settings from MMPM/2 applications. 214 216 215 #define I90SRC_BASE 0x00000010 // 0..F are reserved (MMPM/2 space) 217 #define I90SRC_BASE 0x00000010 // 0..F are reserved (MMPM/2 space) 216 218 #define I90SRC_MIC 0x00000010 217 219 #define I90SRC_CD 0x00000020 … … 224 226 225 227 226 // In first release, the APILEVELQUERY function returns a ULONG, 0x01. 228 // In first release, the APILEVELQUERY function returns a ULONG, 0x01. 227 229 // As significant changes are made to the ioctlmix API, the return value 228 230 // of this function will be incremented. 229 231 230 232 // GETAPIMAP 231 // To help an application know what APIs are supported by this device driver, 233 // To help an application know what APIs are supported by this device driver, 232 234 // return an array of booleans (BYTES). TRUE => Supported. 233 // The array must be declared as 256 bytes. This is larger than necessary as 235 // The array must be declared as 256 bytes. This is larger than necessary as 234 236 // the first 64 entries, range 0x00..0x39, are guaranteed to be zero. 235 237 // The extra bytes allows the array to be indexed using the IOCTL function 236 238 // defines in this file. 237 239 // 238 // Notice that a FALSE value in an array position (for example "video set") 240 // Notice that a FALSE value in an array position (for example "video set") 239 241 // can be used to inform the mixer application that this device driver does 240 242 // not support a "video" connection to the audio device. -
OCO/trunk/install/control.scr
r483 r486 25 25 ssgroup=0 26 26 ssname="mmbase" 27 ssversion="1.9.1-SVNr48 3"27 ssversion="1.9.1-SVNr486" 28 28 sstermdll="ITERM.DLL" 29 29 sstermdllentry="ITermEntry" … … 43 43 ssgroup=17 44 44 ssname="OS/2 Universal Audio: Wave" 45 ssversion="1.9.1-SVNr48 3"45 ssversion="1.9.1-SVNr486" 46 46 sssize=680 47 47 ssdll="genin.dll" -
OCO/trunk/uniaud.inc
r483 r486 13 13 # ex RC3 GA FIXPACK2 beta_47 14 14 # Comment out to avoid a fixpack line in bldlevel 15 FIXPACK = SVNr48 315 FIXPACK = SVNr486 16 16 17 17 # ALSA BUILD VERSION
Note:
See TracChangeset
for help on using the changeset viewer.