vfl.c
资源名称:vlc-1.0.5.zip [点击查看]
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:6k
源码类别:
midi
开发平台:
Unix_Linux
- /*
- * $Id: cc3b866e22f58aa298a8645e29ddc5c3f7ead1cf $
- *
- * Copyright 1998 Marcus Meissner
- *
- * Modified for use with MPlayer, detailed CVS changelog at
- * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
- *
- * File now distributed as part of VLC media player with no modifications.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- */
- #include <config.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "win32.h"
- #include "loader.h"
- #include "wine/winbase.h"
- #include "wine/windef.h"
- #include "wine/winuser.h"
- #include "wine/vfw.h"
- #include "wine/winestring.h"
- #include "wine/driver.h"
- #include "wine/avifmt.h"
- #include "driver.h"
- #define OpenDriverA DrvOpen
- #define CloseDriver DrvClose
- /***********************************************************************
- * VideoForWindowsVersion [MSVFW.2][MSVIDEO.2]
- * Returns the version in major.minor form.
- * In Windows95 this returns 0x040003b6 (4.950)
- */
- long VFWAPI VideoForWindowsVersion(void) {
- return 0x040003B6; /* 4.950 */
- }
- /* system.ini: [drivers] */
- /***********************************************************************
- * ICInfo [MSVFW.33]
- * Get information about an installable compressor. Return TRUE if there
- * is one.
- */
- int VFWAPI
- ICInfo(
- long fccType, /* [in] type of compressor ('vidc') */
- long fccHandler, /* [in] <n>th compressor */
- ICINFO *lpicinfo /* [out] information about compressor */
- ) {
- /* does OpenDriver/CloseDriver */
- lpicinfo->dwSize = sizeof(ICINFO);
- lpicinfo->fccType = fccType;
- lpicinfo->dwFlags = 0;
- return TRUE;
- }
- /***********************************************************************
- * ICOpen [MSVFW.37]
- * Opens an installable compressor. Return special handle.
- */
- HIC VFWAPI
- //ICOpen(long fccType,long fccHandler,unsigned int wMode) {
- ICOpen(long filename,long fccHandler,unsigned int wMode) {
- ICOPEN icopen;
- HDRVR hdrv;
- WINE_HIC *whic;
- /* Well, lParam2 is in fact a LPVIDEO_OPEN_PARMS, but it has the
- * same layout as ICOPEN
- */
- icopen.fccType = 0x63646976; // "vidc" //fccType;
- icopen.fccHandler = fccHandler;
- icopen.dwSize = sizeof(ICOPEN);
- icopen.dwFlags = wMode;
- icopen.pV1Reserved = (void*)filename;
- /* FIXME: do we need to fill out the rest too? */
- hdrv=OpenDriverA((long)&icopen);
- if (!hdrv) return 0;
- whic = (WINE_HIC*)malloc(sizeof(WINE_HIC));
- whic->hdrv = hdrv;
- whic->driverproc= ((DRVR*)hdrv)->DriverProc;
- // whic->private = ICSendMessage((HIC)whic,DRV_OPEN,0,(long)&icopen);
- whic->driverid = ((DRVR*)hdrv)->dwDriverID;
- return (HIC)whic;
- }
- /***********************************************************************
- * ICGetInfo [MSVFW.30]
- */
- LRESULT VFWAPI
- ICGetInfo(HIC hic,ICINFO *picinfo,long cb) {
- LRESULT ret;
- ret = ICSendMessage(hic,ICM_GETINFO,(long)picinfo,cb);
- return ret;
- }
- /***********************************************************************
- * ICCompress [MSVFW.23]
- */
- long VFWAPIV
- ICCompress(
- HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData,
- LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid,
- long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality,
- LPBITMAPINFOHEADER lpbiPrev,void* lpPrev
- ) {
- ICCOMPRESS iccmp;
- iccmp.dwFlags = dwFlags;
- iccmp.lpbiOutput = lpbiOutput;
- iccmp.lpOutput = lpData;
- iccmp.lpbiInput = lpbiInput;
- iccmp.lpInput = lpBits;
- iccmp.lpckid = lpckid;
- iccmp.lpdwFlags = lpdwFlags;
- iccmp.lFrameNum = lFrameNum;
- iccmp.dwFrameSize = dwFrameSize;
- iccmp.dwQuality = dwQuality;
- iccmp.lpbiPrev = lpbiPrev;
- iccmp.lpPrev = lpPrev;
- return ICSendMessage(hic,ICM_COMPRESS,(long)&iccmp,sizeof(iccmp));
- }
- /***********************************************************************
- * ICDecompress [MSVFW.26]
- */
- long VFWAPIV
- ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits) {
- ICDECOMPRESS icd;
- int result;
- icd.dwFlags = dwFlags;
- icd.lpbiInput = lpbiFormat;
- icd.lpInput = lpData;
- icd.lpbiOutput = lpbi;
- icd.lpOutput = lpBits;
- icd.ckid = 0;
- result=ICSendMessage(hic,ICM_DECOMPRESS,(long)&icd,sizeof(icd));
- return result;
- }
- /***********************************************************************
- * ICDecompressEx [MSVFW.26]
- */
- long VFWAPIV
- ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits) {
- ICDECOMPRESSEX icd;
- int result;
- icd.dwFlags = dwFlags;
- icd.lpbiSrc = lpbiFormat;
- icd.lpSrc = lpData;
- icd.lpbiDst = lpbi;
- icd.lpDst = lpBits;
- icd.xSrc=icd.ySrc=0;
- icd.dxSrc=lpbiFormat->biWidth;
- icd.dySrc=abs(lpbiFormat->biHeight);
- icd.xDst=icd.yDst=0;
- icd.dxDst=lpbi->biWidth;
- icd.dyDst=abs(lpbi->biHeight);
- //icd.ckid = 0;
- result=ICSendMessage(hic,ICM_DECOMPRESSEX,(long)&icd,sizeof(icd));
- return result;
- }
- long VFWAPIV
- ICUniversalEx(HIC hic,int command,LPBITMAPINFOHEADER lpbiFormat,LPBITMAPINFOHEADER lpbi) {
- ICDECOMPRESSEX icd;
- int result;
- icd.dwFlags = 0;
- icd.lpbiSrc = lpbiFormat;
- icd.lpSrc = 0;
- icd.lpbiDst = lpbi;
- icd.lpDst = 0;
- icd.xSrc=icd.ySrc=0;
- icd.dxSrc=lpbiFormat->biWidth;
- icd.dySrc=abs(lpbiFormat->biHeight);
- icd.xDst=icd.yDst=0;
- icd.dxDst=lpbi->biWidth;
- icd.dyDst=abs(lpbi->biHeight);
- //icd.ckid = 0;
- result=ICSendMessage(hic,command,(long)&icd,sizeof(icd));
- return result;
- }
- /***********************************************************************
- * ICSendMessage [MSVFW.40]
- */
- LRESULT VFWAPI
- ICSendMessage(HIC hic,unsigned int msg,long lParam1,long lParam2) {
- WINE_HIC *whic = (WINE_HIC*)hic;
- return SendDriverMessage(whic->hdrv, msg, lParam1,lParam2);
- }
- /***********************************************************************
- * ICClose [MSVFW.22]
- */
- LRESULT VFWAPI ICClose(HIC hic) {
- WINE_HIC *whic = (WINE_HIC*)hic;
- /* FIXME: correct? */
- // CloseDriver(whic->hdrv,0,0);
- DrvClose(whic->hdrv);
- //#warning FIXME: DrvClose
- free(whic);
- return 0;
- }
- int VFWAPI ICDoSomething()
- {
- return 0;
- }