ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

private_mciavi.h
Go to the documentation of this file.
00001 /*
00002  * Digital video MCI Wine Driver
00003  *
00004  * Copyright 1999, 2000 Eric POUECH
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  */
00020 
00021 #ifndef __WINE_PRIVATE_MCIAVI_H
00022 #define __WINE_PRIVATE_MCIAVI_H
00023 
00024 #include <stdarg.h>
00025 #include "windef.h"
00026 #include "winbase.h"
00027 #include "wingdi.h"
00028 #include "winuser.h"
00029 #include "mmddk.h"
00030 #include "digitalv.h"
00031 #include "vfw.h"
00032 #include "wownt32.h"
00033 #include "mciavi.h"
00034 
00035 struct MMIOPos {
00036     DWORD   dwOffset;
00037     DWORD   dwSize;
00038 };
00039 
00040 typedef struct {
00041     MCIDEVICEID         wDevID;
00042     int         nUseCount;              /* Incremented for each shared open          */
00043     BOOL        fShareable;             /* TRUE if first open was shareable          */
00044     WORD        wCommandTable;      /* custom MCI command table */
00045     DWORD               dwStatus;               /* One of MCI_MODE_XXX                       */
00046     LPWSTR              lpFileName;
00047     DWORD       dwMciTimeFormat;    /* current time format */
00048     DWORD       dwSet;          /* what's turned on: video & audio l&r */
00049     /* information on the loaded AVI file */
00050     HMMIO       hFile;                  /* mmio file handle open as Element          */
00051     DWORD               video_stream_n, audio_stream_n; /* stream #s */
00052     MainAVIHeader   mah;
00053     AVIStreamHeader ash_video;
00054     AVIStreamHeader ash_audio;
00055     LPBITMAPINFOHEADER  inbih;
00056     struct MMIOPos* lpVideoIndex;
00057     LPWAVEFORMATEX  lpWaveFormat;
00058     struct MMIOPos* lpAudioIndex;
00059     /* computed data from the file */
00060     DWORD       dwPlayableVideoFrames;  /* max number of frames to be played. Takes care of truncated files and audio skew */
00061     DWORD       dwPlayableAudioBlocks;
00062     /* data for the AVI decompressor */
00063     HIC         hic;
00064     LPBITMAPINFOHEADER  outbih;
00065     LPVOID      indata;
00066     LPVOID      outdata;
00067     HBITMAP             hbmFrame;
00068     /* data for playing the audio part */
00069     HANDLE      hWave;
00070     HANDLE      hEvent;         /* for synchronization */
00071     LONG        dwEventCount;       /* for synchronization */
00072     /* data for play back */
00073     HWND               hWnd, hWndPaint;
00074     DWORD               dwCachedFrame; /* buffered frame */
00075     DWORD       dwCurrVideoFrame;   /* video frame to display and current position */
00076     DWORD               dwToVideoFrame; /* play to */
00077     DWORD       dwCurrAudioBlock;   /* current audio block being played */
00078     RECT                source, dest;
00079     /* data for the background mechanism */
00080     CRITICAL_SECTION    cs;
00081     HANDLE              hStopEvent;
00082     HANDLE              ack_event; /* acknowledge that an async command has started */
00083 } WINE_MCIAVI;
00084 
00085 extern HINSTANCE MCIAVI_hInstance DECLSPEC_HIDDEN;
00086 
00087 /* info.c */
00088 DWORD   MCIAVI_ConvertTimeFormatToFrame(WINE_MCIAVI* wma, DWORD val) DECLSPEC_HIDDEN;
00089 DWORD   MCIAVI_mciGetDevCaps(UINT wDevID, DWORD dwFlags,  LPMCI_GETDEVCAPS_PARMS lpParms) DECLSPEC_HIDDEN;
00090 DWORD   MCIAVI_mciInfo(UINT wDevID, DWORD dwFlags, LPMCI_DGV_INFO_PARMSW lpParms) DECLSPEC_HIDDEN;
00091 DWORD   MCIAVI_mciSet(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SET_PARMS lpParms) DECLSPEC_HIDDEN;
00092 DWORD   MCIAVI_mciStatus(UINT wDevID, DWORD dwFlags, LPMCI_DGV_STATUS_PARMSW lpParms) DECLSPEC_HIDDEN;
00093 
00094 /* mmoutput.c */
00095 BOOL    MCIAVI_GetInfo(WINE_MCIAVI* wma) DECLSPEC_HIDDEN;
00096 DWORD   MCIAVI_OpenAudio(WINE_MCIAVI* wma, unsigned* nHdr, LPWAVEHDR* pWaveHdr) DECLSPEC_HIDDEN;
00097 BOOL    MCIAVI_OpenVideo(WINE_MCIAVI* wma) DECLSPEC_HIDDEN;
00098 void    MCIAVI_PlayAudioBlocks(WINE_MCIAVI* wma, unsigned nHdr, LPWAVEHDR waveHdr) DECLSPEC_HIDDEN;
00099 LRESULT MCIAVI_PaintFrame(WINE_MCIAVI* wma, HDC hDC) DECLSPEC_HIDDEN;
00100 
00101 /* mciavi.c */
00102 WINE_MCIAVI*    MCIAVI_mciGetOpenDev(UINT wDevID) DECLSPEC_HIDDEN;
00103 DWORD MCIAVI_mciClose(UINT, DWORD, LPMCI_GENERIC_PARMS) DECLSPEC_HIDDEN;
00104 
00105 /* wnd.c */
00106 BOOL    MCIAVI_RegisterClass(void) DECLSPEC_HIDDEN;
00107 BOOL    MCIAVI_UnregisterClass(void) DECLSPEC_HIDDEN;
00108 BOOL    MCIAVI_CreateWindow(WINE_MCIAVI* wma, DWORD dwFlags, LPMCI_DGV_OPEN_PARMSW lpOpenParms) DECLSPEC_HIDDEN;
00109 DWORD   MCIAVI_mciPut(UINT wDevID, DWORD dwFlags, LPMCI_DGV_PUT_PARMS lpParms) DECLSPEC_HIDDEN;
00110 DWORD   MCIAVI_mciWhere(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RECT_PARMS lpParms) DECLSPEC_HIDDEN;
00111 DWORD   MCIAVI_mciWindow(UINT wDevID, DWORD dwFlags, LPMCI_DGV_WINDOW_PARMSW lpParms) DECLSPEC_HIDDEN;
00112 
00113 #endif  /* __WINE_PRIVATE_MCIAVI_H */

Generated on Fri May 25 2012 04:22:47 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.