ReactOS  0.4.14-dev-815-ge410a12
info.c
Go to the documentation of this file.
1 /*
2  * Digital video MCI Wine Driver
3  *
4  * Copyright 1999, 2000 Eric POUECH
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 #include <string.h>
22 #include "private_mciavi.h"
23 #include "wine/debug.h"
24 
26 
27 /**************************************************************************
28  * MCIAVI_ConvertFrameToTimeFormat [internal]
29  */
31 {
32  DWORD ret = 0;
33 
34  switch (wma->dwMciTimeFormat) {
36  ret = (val * wma->mah.dwMicroSecPerFrame) / 1000;
37  break;
38  case MCI_FORMAT_FRAMES:
39  ret = val;
40  break;
41  default:
42  WARN("Bad time format %u!\n", wma->dwMciTimeFormat);
43  }
44  TRACE("val=%u=0x%08x [tf=%u] => ret=%u\n", val, val, wma->dwMciTimeFormat, ret);
45  *lpRet = 0;
46  return ret;
47 }
48 
49 /**************************************************************************
50  * MCIAVI_ConvertTimeFormatToFrame [internal]
51  */
53 {
54  DWORD ret = 0;
55 
56  switch (wma->dwMciTimeFormat) {
58  ret = (val * 1000) / wma->mah.dwMicroSecPerFrame;
59  break;
60  case MCI_FORMAT_FRAMES:
61  ret = val;
62  break;
63  default:
64  WARN("Bad time format %u!\n", wma->dwMciTimeFormat);
65  }
66  TRACE("val=%u=0x%08x [tf=%u] => ret=%u\n", val, val, wma->dwMciTimeFormat, ret);
67  return ret;
68 }
69 
70 /***************************************************************************
71  * MCIAVI_mciGetDevCaps [internal]
72  */
74 {
75  WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
77 
78  TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
79 
80  if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK;
81  if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
83  if (dwFlags & MCI_TEST) return 0;
84 
85  EnterCriticalSection(&wma->cs);
86 
88  switch (lpParms->dwItem) {
90  TRACE("MCI_GETDEVCAPS_DEVICE_TYPE !\n");
93  break;
95  TRACE("MCI_GETDEVCAPS_HAS_AUDIO !\n");
98  break;
100  TRACE("MCI_GETDEVCAPS_HAS_VIDEO !\n");
101  lpParms->dwReturn = MAKEMCIRESOURCE(TRUE, MCI_TRUE);
103  break;
105  TRACE("MCI_GETDEVCAPS_USES_FILES !\n");
106  lpParms->dwReturn = MAKEMCIRESOURCE(TRUE, MCI_TRUE);
108  break;
110  TRACE("MCI_GETDEVCAPS_COMPOUND_DEVICE !\n");
111  lpParms->dwReturn = MAKEMCIRESOURCE(TRUE, MCI_TRUE);
113  break;
115  TRACE("MCI_GETDEVCAPS_CAN_EJECT !\n");
118  break;
120  TRACE("MCI_GETDEVCAPS_CAN_PLAY !\n");
121  lpParms->dwReturn = MAKEMCIRESOURCE(TRUE, MCI_TRUE);
123  break;
125  TRACE("MCI_GETDEVCAPS_CAN_RECORD !\n");
128  break;
130  TRACE("MCI_GETDEVCAPS_CAN_SAVE !\n");
133  break;
135  TRACE("MCI_DGV_GETDEVCAPS_CAN_REVERSE !\n");
136  lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
138  break;
140  TRACE("MCI_DGV_GETDEVCAPS_CAN_STRETCH !\n");
141  lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
143  break;
145  TRACE("MCI_DGV_GETDEVCAPS_CAN_LOCK !\n");
148  break;
150  TRACE("MCI_DGV_GETDEVCAPS_CAN_FREEZE !\n");
153  break;
155  TRACE("MCI_DGV_GETDEVCAPS_CAN_STRETCH_INPUT !\n");
158  break;
160  TRACE("MCI_DGV_GETDEVCAPS_HAS_STILL !\n");
163  break;
165  TRACE("MCI_DGV_GETDEVCAPS_CAN_TEST !\n");
166  lpParms->dwReturn = MAKEMCIRESOURCE(TRUE, MCI_TRUE);
168  break;
170  TRACE("MCI_DGV_GETDEVCAPS_PALETTES !\n");
171  lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
173  break;
174  /* w2k does not know MAX_WINDOWS or MAX/MINIMUM_RATE */
175  default:
176  FIXME("Unknown capability (%08x) !\n", lpParms->dwItem);
177  break;
178  }
179  }
180 
181  LeaveCriticalSection(&wma->cs);
182  return ret;
183 }
184 
185 /***************************************************************************
186  * MCIAVI_mciInfo [internal]
187  */
189 {
190  LPCWSTR str = 0;
191  WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
192  DWORD ret = 0;
193  static const WCHAR wszAviPlayer[] = {'W','i','n','e','\'','s',' ','A','V','I',' ','p','l','a','y','e','r',0};
194  static const WCHAR wszVersion[] = {'1','.','1',0};
195 
196  if (lpParms == NULL || lpParms->lpstrReturn == NULL)
198  if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
199  if (dwFlags & MCI_TEST) return 0;
200 
201  TRACE("buf=%p, len=%u\n", lpParms->lpstrReturn, lpParms->dwRetSize);
202 
203  EnterCriticalSection(&wma->cs);
204 
206  str = wszAviPlayer;
207  else if (dwFlags & MCI_INFO_VERSION)
208  str = wszVersion;
209  else if (dwFlags & MCI_INFO_FILE)
210  str = wma->lpFileName;
211  else {
212  WARN("Don't know this info command (%u)\n", dwFlags);
214  }
215  if (!ret) {
216  WCHAR zero = 0;
217  /* Only mciwave, mciseq and mcicda set dwRetSize (since NT). */
218  lstrcpynW(lpParms->lpstrReturn, str ? str : &zero, lpParms->dwRetSize);
219  }
220  LeaveCriticalSection(&wma->cs);
221  return ret;
222 }
223 
224 /***************************************************************************
225  * MCIAVI_mciSet [internal]
226  */
228 {
229  WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
230 
231  if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK;
232  if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
233  if (dwFlags & MCI_TEST) return 0;
234 
235  EnterCriticalSection(&wma->cs);
236 
238  switch (lpParms->dwTimeFormat) {
240  TRACE("MCI_FORMAT_MILLISECONDS !\n");
242  break;
243  case MCI_FORMAT_FRAMES:
244  TRACE("MCI_FORMAT_FRAMES !\n");
246  break;
247  default:
248  WARN("Bad time format %u!\n", lpParms->dwTimeFormat);
249  LeaveCriticalSection(&wma->cs);
250  return MCIERR_BAD_TIME_FORMAT;
251  }
252  }
253 
254  if (dwFlags & MCI_SET_DOOR_OPEN) {
255  TRACE("No support for door open !\n");
256  LeaveCriticalSection(&wma->cs);
258  }
260  TRACE("No support for door close !\n");
261  LeaveCriticalSection(&wma->cs);
263  }
264 
265  if (dwFlags & MCI_SET_ON) {
266  const char *szVideo="";
267  const char *szAudio="";
268  const char *szSeek="";
269 
270  if (dwFlags & MCI_SET_VIDEO) {
271  szVideo = " video";
272  wma->dwSet |= 4;
273  }
274  if (dwFlags & MCI_SET_AUDIO) {
275  switch (lpParms->dwAudio) {
276  case MCI_SET_AUDIO_ALL:
277  szAudio = " audio all";
278  wma->dwSet |= 3;
279  break;
280  case MCI_SET_AUDIO_LEFT:
281  szAudio = " audio left";
282  wma->dwSet |= 1;
283  break;
284  case MCI_SET_AUDIO_RIGHT:
285  szAudio = " audio right";
286  wma->dwSet |= 2;
287  break;
288  default:
289  szAudio = " audio unknown";
290  WARN("Unknown audio channel %u\n", lpParms->dwAudio);
291  break;
292  }
293  }
295  szSeek = " seek_exactly";
296  }
297  FIXME("MCI_SET_ON:%s%s%s\n", szVideo, szAudio, szSeek);
298  }
299 
300  if (dwFlags & MCI_SET_OFF) {
301  const char *szVideo="";
302  const char *szAudio="";
303  const char *szSeek="";
304 
305  if (dwFlags & MCI_SET_VIDEO) {
306  szVideo = " video";
307  wma->dwSet &= ~4;
308  }
309  if (dwFlags & MCI_SET_AUDIO) {
310  switch (lpParms->dwAudio) {
311  case MCI_SET_AUDIO_ALL:
312  szAudio = " audio all";
313  wma->dwSet &= ~3;
314  break;
315  case MCI_SET_AUDIO_LEFT:
316  szAudio = " audio left";
317  wma->dwSet &= ~2;
318  break;
319  case MCI_SET_AUDIO_RIGHT:
320  szAudio = " audio right";
321  wma->dwSet &= ~2;
322  break;
323  default:
324  szAudio = " audio unknown";
325  WARN("Unknown audio channel %u\n", lpParms->dwAudio);
326  break;
327  }
328  }
330  szSeek = " seek_exactly";
331  }
332  FIXME("MCI_SET_OFF:%s%s%s\n", szVideo, szAudio, szSeek);
333  }
335  LPCSTR str = "save";
337  str = "capture";
338 
339  switch (lpParms->dwFileFormat) {
340  case MCI_DGV_FF_AVI: FIXME("Setting file format (%s) to 'AVI'\n", str); break;
341  case MCI_DGV_FF_AVSS: FIXME("Setting file format (%s) to 'AVSS'\n", str); break;
342  case MCI_DGV_FF_DIB: FIXME("Setting file format (%s) to 'DIB'\n", str); break;
343  case MCI_DGV_FF_JFIF: FIXME("Setting file format (%s) to 'JFIF'\n", str); break;
344  case MCI_DGV_FF_JPEG: FIXME("Setting file format (%s) to 'JPEG'\n", str); break;
345  case MCI_DGV_FF_MPEG: FIXME("Setting file format (%s) to 'MPEG'\n", str); break;
346  case MCI_DGV_FF_RDIB: FIXME("Setting file format (%s) to 'RLE DIB'\n", str); break;
347  case MCI_DGV_FF_RJPEG: FIXME("Setting file format (%s) to 'RJPEG'\n", str); break;
348  default: FIXME("Setting unknown file format (%s): %d\n", str, lpParms->dwFileFormat);
349  }
350  }
351 
352  if (dwFlags & MCI_DGV_SET_SPEED) {
353  FIXME("Setting speed to %d\n", lpParms->dwSpeed);
354  }
355 
356  LeaveCriticalSection(&wma->cs);
357  return 0;
358 }
359 
360 /***************************************************************************
361  * MCIAVI_mciStatus [internal]
362  */
364 {
365  WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
366  DWORD ret = 0;
367 
368  if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK;
369  if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
371  if (dwFlags & MCI_TEST) return 0;
372 
373  EnterCriticalSection(&wma->cs);
374 
375  if (dwFlags & MCI_STATUS_ITEM) {
376  switch (lpParms->dwItem) {
378  lpParms->dwReturn = 1;
379  TRACE("MCI_STATUS_CURRENT_TRACK => %lu\n", lpParms->dwReturn);
380  break;
381  case MCI_STATUS_LENGTH:
382  if (!wma->hFile) {
383  lpParms->dwReturn = 0;
384  LeaveCriticalSection(&wma->cs);
386  }
387  /* only one track in file is currently handled, so don't take care of MCI_TRACK flag */
389  TRACE("MCI_STATUS_LENGTH => %lu\n", lpParms->dwReturn);
390  break;
391  case MCI_STATUS_MODE:
392  lpParms->dwReturn = MAKEMCIRESOURCE(wma->dwStatus, wma->dwStatus);
394  TRACE("MCI_STATUS_MODE => 0x%04x\n", LOWORD(lpParms->dwReturn));
395  break;
397  TRACE("MCI_STATUS_MEDIA_PRESENT => TRUE\n");
398  lpParms->dwReturn = MAKEMCIRESOURCE(TRUE, MCI_TRUE);
400  break;
402  lpParms->dwReturn = 1;
403  TRACE("MCI_STATUS_NUMBER_OF_TRACKS => %lu\n", lpParms->dwReturn);
404  break;
405  case MCI_STATUS_POSITION:
406  if (!wma->hFile) {
407  lpParms->dwReturn = 0;
408  LeaveCriticalSection(&wma->cs);
410  }
411  /* only one track in file is currently handled, so don't take care of MCI_TRACK flag */
414  &ret);
415  TRACE("MCI_STATUS_POSITION %s => %lu\n",
416  (dwFlags & MCI_STATUS_START) ? "start" : "current", lpParms->dwReturn);
417  break;
418  case MCI_STATUS_READY:
419  lpParms->dwReturn = (wma->dwStatus == MCI_MODE_NOT_READY) ?
422  TRACE("MCI_STATUS_READY = %u\n", LOWORD(lpParms->dwReturn));
423  break;
425  lpParms->dwReturn = MAKEMCIRESOURCE(wma->dwMciTimeFormat,
427  TRACE("MCI_STATUS_TIME_FORMAT => %u\n", LOWORD(lpParms->dwReturn));
429  break;
431  lpParms->dwReturn = (wma->dwSet & 3) ?
434  TRACE("MCI_STATUS_AUDIO = %u\n", LOWORD(lpParms->dwReturn));
435  break;
437  lpParms->dwReturn = (wma->dwSet & 4) ?
440  TRACE("MCI_STATUS_VIDEO = %u\n", LOWORD(lpParms->dwReturn));
441  break;
442 
443 #if 0
451  case MCI_DGV_STATUS_BASS:
461 #endif
463  lpParms->dwReturn = wma->inbih->biBitCount;
464  TRACE("MCI_DGV_STATUS_BITSPERPEL => %lu\n", lpParms->dwReturn);
465  break;
466  case MCI_DGV_STATUS_HPAL:
467  lpParms->dwReturn = 0;
468  TRACE("MCI_DGV_STATUS_HPAL => %lx\n", lpParms->dwReturn);
469  break;
470  case MCI_DGV_STATUS_HWND:
471  lpParms->dwReturn = (DWORD_PTR)wma->hWndPaint;
472  TRACE("MCI_DGV_STATUS_HWND => %p\n", wma->hWndPaint);
473  break;
475  lpParms->dwReturn = IsWindowVisible(wma->hWndPaint) ?
478  TRACE("MCI_STATUS_WINDOW_VISIBLE = %u\n", LOWORD(lpParms->dwReturn));
479  break;
481  lpParms->dwReturn = IsIconic(wma->hWndPaint) ?
484  TRACE("MCI_STATUS_WINDOW_MINIMIZED = %u\n", LOWORD(lpParms->dwReturn));
485  break;
487  lpParms->dwReturn = IsZoomed(wma->hWndPaint) ?
490  TRACE("MCI_STATUS_WINDOW_MMAXIMIZED = %u\n", LOWORD(lpParms->dwReturn));
491  break;
493  lpParms->dwReturn = 1000;
494  TRACE("MCI_DGV_STATUS_SPEED = %lu\n", lpParms->dwReturn);
495  break;
497  /* FIXME: 1000 is a settable speed multiplier */
498  lpParms->dwReturn = MulDiv(1000000,1000,wma->mah.dwMicroSecPerFrame);
499  TRACE("MCI_DGV_STATUS_FRAME_RATE = %lu\n", lpParms->dwReturn);
500  break;
502  lpParms->dwReturn = MAKEMCIRESOURCE(TRUE, MCI_TRUE);
504  TRACE("MCI_DGV_STATUS_FORWARD = %u\n", LOWORD(lpParms->dwReturn));
505  break;
507  if (wma->dwStatus != MCI_MODE_PAUSE) {
508  LeaveCriticalSection(&wma->cs);
510  }
513  TRACE("MCI_STATUS_MODE => 0x%04x\n", LOWORD(lpParms->dwReturn));
514  break;
516  lpParms->dwReturn = wma->audio_stream_n;
517  TRACE("MCI_DGV_STATUS_AUDIO_STREAM => %lu\n", lpParms->dwReturn);
518  break;
519 #if 0
526  case MCI_DGV_STATUS_SAMPLESPERSECOND:
529  case MCI_DGV_STATUS_SIZE:
532  case MCI_DGV_STATUS_TINT:
540 #endif
541  default:
542  FIXME("Unknown command %08X !\n", lpParms->dwItem);
543  TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
544  LeaveCriticalSection(&wma->cs);
546  }
547  }
548 
549  if (dwFlags & MCI_NOTIFY) {
550  TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback);
552  wDevID, MCI_NOTIFY_SUCCESSFUL);
553  }
554  LeaveCriticalSection(&wma->cs);
555  return ret;
556 }
#define MCI_DGV_MONITOR_FILE
Definition: digitalv.h:207
DWORD_PTR dwCallback
Definition: digitalv.h:808
#define MCIERR_NONAPPLICABLE_FUNCTION
Definition: mmsystem.h:610
#define MCI_DGV_STATUS_SPEED
Definition: digitalv.h:384
#define MCI_DGV_STATUS_AUDIO_STREAM
Definition: digitalv.h:425
#define MCI_DGV_STATUS_PAUSE_MODE
Definition: digitalv.h:418
#define TRUE
Definition: types.h:120
#define MCI_DGV_STATUS_FILE_COMPLETION
Definition: digitalv.h:412
#define MCI_DGV_STATUS_SIZE
Definition: digitalv.h:396
#define MCI_DGV_STATUS_BRIGHTNESS
Definition: digitalv.h:386
#define MCI_INFO_PRODUCT
Definition: mmsystem.h:752
#define MCI_DGV_STATUS_VOLUME
Definition: digitalv.h:405
#define MCI_RESOURCE_DRIVER
Definition: mmddk.h:373
#define MCI_STATUS_ITEM
Definition: mmsystem.h:742
#define DWORD_PTR
Definition: treelist.c:76
#define MCI_OFF_S
Definition: digitalv.h:61
#define MCI_DGV_FF_RJPEG
Definition: digitalv.h:110
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define MCI_DGV_STATUS_COLOR
Definition: digitalv.h:387
#define MCI_STATUS_NUMBER_OF_TRACKS
Definition: mmsystem.h:746
#define MCI_GETDEVCAPS_CAN_SAVE
Definition: mmsystem.h:767
#define MCI_DGV_STATUS_AUDIO
Definition: digitalv.h:400
DWORD dwTimeFormat
Definition: digitalv.h:733
#define MCIERR_UNSUPPORTED_FUNCTION
Definition: mmsystem.h:584
#define WARN(fmt,...)
Definition: debug.h:111
#define MCI_DGV_STATUS_AUDIO_RECORD
Definition: digitalv.h:406
WINE_DEFAULT_DEBUG_CHANNEL(mciavi)
#define MCI_DGV_STATUS_VIDEO
Definition: digitalv.h:404
#define MCI_DEVTYPE_DIGITAL_VIDEO
Definition: mmsystem.h:687
#define MCI_DGV_FF_JFIF
Definition: digitalv.h:111
#define MCI_GETDEVCAPS_COMPOUND_DEVICE
Definition: mmsystem.h:764
#define MCI_SET_OFF
Definition: mmsystem.h:778
#define MCI_DGV_GETDEVCAPS_PALETTES
Definition: digitalv.h:122
#define MCI_SET_AUDIO
Definition: mmsystem.h:775
DWORD dwFileFormat
Definition: digitalv.h:735
#define MCI_RESOURCE_RETURNED
Definition: mmddk.h:369
#define MCI_DGV_STATUS_FILE_MODE
Definition: digitalv.h:411
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define MCI_DGV_STATUS_FRAME_RATE
Definition: digitalv.h:394
#define MCI_GETDEVCAPS_CAN_RECORD
Definition: mmsystem.h:759
#define MAKEMCIRESOURCE(wRet, wRes)
Definition: mmddk.h:388
#define MCI_SET_DOOR_CLOSED
Definition: mmsystem.h:773
#define MCI_DGV_GETDEVCAPS_CAN_LOCK
Definition: digitalv.h:116
BOOL WINAPI IsIconic(_In_ HWND)
#define MCI_STATUS_POSITION
Definition: mmsystem.h:745
#define MCI_DGV_STATUS_FORWARD
Definition: digitalv.h:424
#define MCI_DGV_STATUS_TINT
Definition: digitalv.h:401
#define MCI_DGV_MONITOR_INPUT
Definition: digitalv.h:206
DWORD dwMicroSecPerFrame
Definition: vfw.h:941
#define MCI_DGV_SET_FILEFORMAT
Definition: digitalv.h:285
#define lstrcpynW
Definition: compat.h:405
DWORD MCIAVI_ConvertTimeFormatToFrame(WINE_MCIAVI *wma, DWORD val)
Definition: info.c:52
BOOL WINAPI mciDriverNotify(HWND hwndCallback, UINT uDeviceID, UINT uStatus)
Definition: mci.c:2056
#define MCI_GETDEVCAPS_USES_FILES
Definition: mmsystem.h:763
static DWORD MCIAVI_ConvertFrameToTimeFormat(WINE_MCIAVI *wma, DWORD val, LPDWORD lpRet)
Definition: info.c:30
#define MCI_DGV_STATUS_HPAL
Definition: digitalv.h:385
#define MCI_FORMAT_FRAMES
Definition: mmsystem.h:704
DWORD MCIAVI_mciSet(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SET_PARMS lpParms)
Definition: info.c:227
#define MCI_FORMAT_MILLISECONDS
Definition: mmsystem.h:701
#define MCI_ON
Definition: digitalv.h:50
DWORD MCIAVI_mciGetDevCaps(UINT wDevID, DWORD dwFlags, LPMCI_GETDEVCAPS_PARMS lpParms)
Definition: info.c:73
#define MCI_DGV_FF_MPEG
Definition: digitalv.h:112
#define MCI_MODE_PLAY
Definition: mmsystem.h:696
#define FIXME(fmt,...)
Definition: debug.h:110
#define MCI_OFF
Definition: digitalv.h:51
#define MCI_GETDEVCAPS_DEVICE_TYPE
Definition: mmsystem.h:762
#define MCI_AVI_STATUS_LAST_PLAY_SPEED
Definition: mciavi.h:8
const WCHAR * str
#define MCI_INFO_FILE
Definition: mmsystem.h:753
smooth NULL
Definition: ftsmooth.c:416
DWORD MCIAVI_mciStatus(UINT wDevID, DWORD dwFlags, LPMCI_DGV_STATUS_PARMSW lpParms)
Definition: info.c:363
const char * LPCSTR
Definition: xmlstorage.h:183
#define MCI_DGV_STATUS_STILL_FILEFORMAT
Definition: digitalv.h:409
#define MCIERR_MISSING_PARAMETER
Definition: mmsystem.h:583
#define MCI_AVI_STATUS_AUDIO_BREAKS
Definition: mciavi.h:9
#define MCI_DGV_STATUS_BITSPERPEL
Definition: digitalv.h:423
#define MCI_GETDEVCAPS_HAS_VIDEO
Definition: mmsystem.h:761
#define MCI_DGV_STATUS_HWND
Definition: digitalv.h:383
GLuint GLfloat * val
Definition: glext.h:7180
#define MCI_DGV_STATUS_BASS
Definition: digitalv.h:395
#define MCI_ON_S
Definition: digitalv.h:60
#define TRACE(s)
Definition: solgame.cpp:4
#define MCI_DGV_STATUS_VIDEO_SRC_NUM
Definition: digitalv.h:410
#define MCI_SET_ON
Definition: mmsystem.h:777
#define MCI_STATUS_LENGTH
Definition: mmsystem.h:744
#define MCI_DGV_FF_AVSS
Definition: digitalv.h:105
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define MCI_DGV_GETDEVCAPS_CAN_TEST
Definition: digitalv.h:124
#define MCI_SET_TIME_FORMAT
Definition: mmsystem.h:774
#define MCI_DGV_STATUS_MONITOR_METHOD
Definition: digitalv.h:393
#define MCI_TEST
Definition: digitalv.h:32
#define MCI_SET_AUDIO_LEFT
Definition: mmsystem.h:780
#define MCI_DGV_STATUS_KEY_INDEX
Definition: digitalv.h:416
#define MCIERR_BAD_TIME_FORMAT
Definition: mmsystem.h:601
DWORD dwCurrVideoFrame
unsigned long DWORD
Definition: ntddk_ex.h:95
#define MCI_DGV_STATUS_SHARPNESS
Definition: digitalv.h:398
#define MCI_STATUS_MODE
Definition: mmsystem.h:747
DWORD MCIAVI_mciInfo(UINT wDevID, DWORD dwFlags, LPMCI_DGV_INFO_PARMSW lpParms)
Definition: info.c:188
#define MCI_STATUS_START
Definition: mmsystem.h:743
#define MCI_NOTIFY_SUCCESSFUL
Definition: mmsystem.h:725
static double zero
Definition: j0_y0.c:96
int ret
#define MCI_SET_AUDIO_RIGHT
Definition: mmsystem.h:781
#define MCI_DGV_STATUS_AUDIO_SOURCE
Definition: digitalv.h:390
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
#define MCI_DGV_GETDEVCAPS_HAS_STILL
Definition: digitalv.h:121
#define MCI_GETDEVCAPS_HAS_AUDIO
Definition: mmsystem.h:760
#define MCI_STATUS_CURRENT_TRACK
Definition: mmsystem.h:751
#define MCI_DGV_STATUS_WINDOW_MAXIMIZED
Definition: digitalv.h:415
DWORD_PTR dwReturn
Definition: digitalv.h:809
#define MCI_DGV_FF_DIB
Definition: digitalv.h:107
#define MCI_GETDEVCAPS_ITEM
Definition: mmsystem.h:758
DWORD dwTotalFrames
Definition: vfw.h:945
#define MCI_FALSE
Definition: mmddk.h:340
#define MCI_DGV_STATUS_SEEK_EXACTLY
Definition: digitalv.h:397
#define MCI_DGV_SET_STILL
Definition: digitalv.h:284
#define MCI_DGV_STATUS_MONITOR
Definition: digitalv.h:392
MainAVIHeader mah
WINE_MCIAVI * MCIAVI_mciGetOpenDev(UINT wDevID)
Definition: mciavi.c:157
#define MCI_DGV_GETDEVCAPS_CAN_REVERSE
Definition: digitalv.h:120
#define HWND_32(h16)
Definition: wownt32.h:29
LPBITMAPINFOHEADER inbih
#define MCI_DGV_FF_AVI
Definition: digitalv.h:106
DWORD audio_stream_n
#define MCI_AVI_STATUS_FRAMES_SKIPPED
Definition: mciavi.h:7
#define MCI_MODE_NOT_READY
Definition: mmsystem.h:694
#define MCI_SET_VIDEO
Definition: mmsystem.h:776
#define MCI_DGV_GETDEVCAPS_CAN_STRETCH
Definition: digitalv.h:117
#define MCI_DGV_STATUS_FILEFORMAT
Definition: digitalv.h:389
#define MCI_DGV_FF_RDIB
Definition: digitalv.h:108
#define MCI_DGV_STATUS_BITSPERSAMPLE
Definition: digitalv.h:422
unsigned int UINT
Definition: ndis.h:50
#define MCI_INFO_VERSION
Definition: digitalv.h:169
BOOL WINAPI IsZoomed(_In_ HWND)
#define MCI_DGV_STATUS_VIDEO_RECORD
Definition: digitalv.h:408
#define MCI_DGV_STATUS_KEY_COLOR
Definition: digitalv.h:417
#define MCI_TRUE
Definition: mmddk.h:341
#define MCI_DGV_STATUS_GAMMA
Definition: digitalv.h:391
CRITICAL_SECTION cs
#define MCIERR_UNRECOGNIZED_COMMAND
Definition: mmsystem.h:571
#define MCI_DGV_STATUS_WINDOW_MINIMIZED
Definition: digitalv.h:414
#define MCI_DGV_GETDEVCAPS_CAN_STR_IN
Definition: digitalv.h:123
uint32_t * LPDWORD
Definition: typedefs.h:57
#define MCI_DGV_FF_JPEG
Definition: digitalv.h:109
#define MCI_GETDEVCAPS_CAN_EJECT
Definition: mmsystem.h:765
#define MCI_MODE_PAUSE
Definition: mmsystem.h:699
#define MCI_DGV_STATUS_AUDIO_INPUT
Definition: digitalv.h:382
#define MCI_DGV_STATUS_WINDOW_VISIBLE
Definition: digitalv.h:413
#define MCI_DGV_SET_SPEED
Definition: digitalv.h:283
#define MCI_DGV_GETDEVCAPS_CAN_FREEZE
Definition: digitalv.h:118
BOOL WINAPI IsWindowVisible(_In_ HWND)
#define MCI_DGV_STATUS_AVGBYTESPERSEC
Definition: digitalv.h:420
#define MCI_DGV_STATUS_VIDEO_SOURCE
Definition: digitalv.h:407
DWORD dwMciTimeFormat
LPWSTR lpFileName
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define MCIERR_INVALID_DEVICE_ID
Definition: mmsystem.h:569
#define MCI_SET_AUDIO_ALL
Definition: mmsystem.h:779
#define MCI_DGV_STATUS_UNSAVED
Definition: digitalv.h:403
#define MCI_DGV_STATUS_BLOCKALIGN
Definition: digitalv.h:421
#define MCI_STATUS_TIME_FORMAT
Definition: mmsystem.h:749
#define MCI_NOTIFY
Definition: mmsystem.h:729
#define MCI_DGV_STATUS_CONTRAST
Definition: digitalv.h:388
#define MCI_STATUS_MEDIA_PRESENT
Definition: mmsystem.h:748
#define MCI_DGV_STATUS_SMPTE
Definition: digitalv.h:399
#define MCIERR_NULL_PARAMETER_BLOCK
Definition: mmsystem.h:605
#define MCI_DGV_STATUS_TREBLE
Definition: digitalv.h:402
#define LOWORD(l)
Definition: pedump.c:82
#define MCI_DGV_SET_SEEK_EXACTLY
Definition: digitalv.h:282
#define MulDiv(x, y, z)
Definition: gdifloat.h:86
#define MCI_SET_DOOR_OPEN
Definition: mmsystem.h:772
#define MCI_DGV_STATUS_VIDEO_STREAM
Definition: digitalv.h:426
#define MCI_FORMAT_RETURN_BASE
Definition: mmddk.h:343
#define MCI_STATUS_READY
Definition: mmsystem.h:750
#define MCI_GETDEVCAPS_CAN_PLAY
Definition: mmsystem.h:766