static DWORD wodMapperStatus(WAVEMAPDATA* wom, DWORD flags, LPVOID ptr) { UINT id; DWORD ret = MMSYSERR_NOTSUPPORTED; TRACE("(%p %08x %p)\n",wom, flags, ptr); switch (flags) { case WAVEOUT_MAPPER_STATUS_DEVICE: ret = waveOutGetID(wom->u.out.hInnerWave, &id); *(LPDWORD)ptr = id; break; case WAVEOUT_MAPPER_STATUS_MAPPED: FIXME("Unsupported flag=%d\n", flags); *(LPDWORD)ptr = 0; /* FIXME ?? */ break; case WAVEOUT_MAPPER_STATUS_FORMAT: FIXME("Unsupported flag=%d\n", flags); /* ptr points to a WAVEFORMATEX struct - before or after streaming ? */ *(LPDWORD)ptr = 0; break; default: FIXME("Unsupported flag=%d\n", flags); *(LPDWORD)ptr = 0; break; } return ret; }
static void killsystem2(void) { MSG msg; stopsample(); pcmwf.wf.wFormatTag=WAVE_FORMAT_PCM; pcmwf.wf.nChannels=1; pcmwf.wf.nSamplesPerSec=11025L; pcmwf.wf.nAvgBytesPerSec=11025L; pcmwf.wf.nBlockAlign=1; pcmwf.wBitsPerSample=8; nosound=waveOutOpen(&hwo,WAVE_MAPPER,(WAVEFORMAT *)&pcmwf,NULL,NULL,NULL); if (!nosound) { waveOutGetID(hwo,&nosound); waveOutSetVolume(nosound,0); waveOutReset(hwo); waveOutClose(hwo); nosound=1; } playsample(&silence,1L,11025L); stopsample(); SelectObject(hdcm,holdbrush); SelectObject(hdcm,holdpen); DeleteObject(hbrush); DeleteObject(hpen); SelectObject(hdcm,holdbitmap); SelectObject(hdcm2,holdbitmap2); DeleteObject(hcharbm); DeleteObject(hecran[0]); DeleteObject(hecran[1]); DeleteDC(hdcm); DeleteDC(hdcm2); PostQuitMessage(0); killcursor(); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } freebloc(&cursorbak); freebloc(&cursorbob); /* exit(0);*/ longjmp(jmpb,1); }
static void initwindow(void) { hdc=GetDC(window); hdcm=CreateCompatibleDC(hdc); hdcm2=CreateCompatibleDC(hdc); hcharbm=CreateBitmap(8,8,1,1,&sysfonte[0]); hecran[0]=CreateCompatibleBitmap(hdc,WIDTH*RATIO,HEIGHT*RATIO); hecran[1]=CreateCompatibleBitmap(hdc,WIDTH*RATIO,HEIGHT*RATIO); ReleaseDC(window,hdc); holdbitmap=SelectObject(hdcm,hecran[ecran_actif]); holdbitmap2=SelectObject(hdcm2,hcharbm); hpen=CreatePen(PS_NULL,1,NULL); hbrush=CreateSolidBrush(RGB(0,0,0)); holdbrush=SelectObject(hdcm,hbrush); holdpen=SelectObject(hdcm,hpen); Rectangle(hdcm,0,0,WIDTH*RATIO+1,HEIGHT*RATIO+1); SelectObject(hdcm,hecran[ecran_travail]); Rectangle(hdcm,0,0,WIDTH*RATIO+1,HEIGHT*RATIO+1); SelectObject(hdcm,holdbrush); SelectObject(hdcm,holdbrush); SelectObject(hdcm,holdpen); DeleteObject(hbrush); DeleteObject(hpen); hpen=CreatePen(PS_NULL,1,NULL); holdpen=SelectObject(hdcm,hpen); hbrush=CreateSolidBrush(color); holdbrush=SelectObject(hdcm,hbrush); SetTextColor(hdcm,RGB(0,0,0)); pcmwf.wf.wFormatTag=WAVE_FORMAT_PCM; pcmwf.wf.nChannels=1; pcmwf.wf.nSamplesPerSec=11025L; pcmwf.wf.nAvgBytesPerSec=11025L; pcmwf.wf.nBlockAlign=1; pcmwf.wBitsPerSample=8; nosound=waveOutOpen(&hwo,WAVE_MAPPER,(WAVEFORMAT *)&pcmwf,NULL,NULL,NULL); if (!nosound) { waveOutGetID(hwo,&nosound); waveOutSetVolume(nosound,0xffff); waveOutReset(hwo); waveOutClose(hwo); nosound=1; } }
tbool CDeviceWaveIO::TestWaveOutCaps(tuint32* puiDevID, tint32 iHz) { WAVEFORMATEX format; InitFormat(format, iHz); MMRESULT mmres; if (*puiDevID != WAVE_MAPPER) { // Real device ID - Just query mmres = waveOutOpen( NULL, *puiDevID, &format, 0, 0, WAVE_FORMAT_QUERY ); } else { // For wave mapper we need to actually open and then close HWAVEOUT handle; mmres = waveOutOpen( &handle, *puiDevID, &format, 0, 0, CALLBACK_NULL ); if (mmres == MMSYSERR_NOERROR) { // Success! // Save device ID waveOutGetID(handle, puiDevID); // Now close it again waveOutClose(handle); } } return (mmres == MMSYSERR_NOERROR); } // CDeviceWaveIO::TestWaveOutCaps