diff options
Diffstat (limited to 'loader')
89 files changed, 0 insertions, 35198 deletions
diff --git a/loader/afl.c b/loader/afl.c deleted file mode 100644 index b29471cdce..0000000000 --- a/loader/afl.c +++ /dev/null @@ -1,763 +0,0 @@ -/************************************************************************** - - - This file will contain an interface to ACM drivers. - Its content will be based mainly on wine/dlls/msacm32 - actually, for audio decompression only the following functions - are needed: - - acmStreamOpen ( takes formats of src and dest, returns stream handle ) - acmStreamPrepareHeader ( takes stream handler and info on data ) - acmStreamConvert ( the same as PrepareHeader ) - acmStreamUnprepareHeader - acmStreamClose - acmStreamSize - maybe acmStreamReset - - In future I'll also add functions for format enumeration, - but not right now. - - Modified for use with MPlayer, detailed changelog at - http://svn.mplayerhq.hu/mplayer/trunk/ - -***************************************************************************/ -#include "config.h" -#include "debug.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/winerror.h" -#include "wine/msacm.h" -#include "wine/msacmdrv.h" -#include "wineacm.h" -#ifndef __MINGW32__ -#include "ext.h" -#endif -#include "drv.h" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#pragma pack(1) -#define OpenDriverA DrvOpen -#define CloseDriver DrvClose - -static inline PWINE_ACMSTREAM ACM_GetStream(HACMSTREAM has) -{ - return (PWINE_ACMSTREAM)has; -} - -/*********************************************************************** - * acmDriverAddA (MSACM32.2) - */ -MMRESULT WINAPI acmDriverAddA(PHACMDRIVERID phadid, HINSTANCE hinstModule, - LPARAM lParam, DWORD dwPriority, DWORD fdwAdd) -{ - if (!phadid) - return MMSYSERR_INVALPARAM; - - /* Check if any unknown flags */ - if (fdwAdd & - ~(ACM_DRIVERADDF_FUNCTION|ACM_DRIVERADDF_NOTIFYHWND| - ACM_DRIVERADDF_GLOBAL)) - return MMSYSERR_INVALFLAG; - - /* Check if any incompatible flags */ - if ((fdwAdd & ACM_DRIVERADDF_FUNCTION) && - (fdwAdd & ACM_DRIVERADDF_NOTIFYHWND)) - return MMSYSERR_INVALFLAG; - - /* FIXME: in fact, should GetModuleFileName(hinstModule) and do a - * LoadDriver on it, to be sure we can call SendDriverMessage on the - * hDrvr handle. - */ - *phadid = (HACMDRIVERID) MSACM_RegisterDriver(NULL, 0, hinstModule); - - /* FIXME: lParam, dwPriority and fdwAdd ignored */ - - return MMSYSERR_NOERROR; -} - -/*********************************************************************** - * acmDriverClose (MSACM32.4) - */ -MMRESULT WINAPI acmDriverClose(HACMDRIVER had, DWORD fdwClose) -{ - PWINE_ACMDRIVER p; - PWINE_ACMDRIVER* tp; - - if (fdwClose) - return MMSYSERR_INVALFLAG; - - p = MSACM_GetDriver(had); - if (!p) - return MMSYSERR_INVALHANDLE; - - for (tp = &(p->obj.pACMDriverID->pACMDriverList); *tp; *tp = (*tp)->pNextACMDriver) { - if (*tp == p) { - *tp = (*tp)->pNextACMDriver; - break; - } - } - - if (p->hDrvr && !p->obj.pACMDriverID->pACMDriverList) - CloseDriver(p->hDrvr); - - HeapFree(MSACM_hHeap, 0, p); - - return MMSYSERR_NOERROR; -} - -/*********************************************************************** - * acmDriverEnum (MSACM32.7) - */ -MMRESULT WINAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum) -{ - PWINE_ACMDRIVERID p; - DWORD fdwSupport; - - if (!fnCallback) { - return MMSYSERR_INVALPARAM; - } - - if (fdwEnum && ~(ACM_DRIVERENUMF_NOLOCAL|ACM_DRIVERENUMF_DISABLED)) { - return MMSYSERR_INVALFLAG; - } - - for (p = MSACM_pFirstACMDriverID; p; p = p->pNextACMDriverID) { - fdwSupport = ACMDRIVERDETAILS_SUPPORTF_CODEC; - if (!p->bEnabled) { - if (fdwEnum & ACM_DRIVERENUMF_DISABLED) - fdwSupport |= ACMDRIVERDETAILS_SUPPORTF_DISABLED; - else - continue; - } - (*fnCallback)((HACMDRIVERID) p, dwInstance, fdwSupport); - } - - return MMSYSERR_NOERROR; -} - -/*********************************************************************** - * acmDriverID (MSACM32.8) - */ -MMRESULT WINAPI acmDriverID(HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID) -{ - PWINE_ACMOBJ pao; - - pao = MSACM_GetObj(hao); - if (!pao) - return MMSYSERR_INVALHANDLE; - - if (!phadid) - return MMSYSERR_INVALPARAM; - - if (fdwDriverID) - return MMSYSERR_INVALFLAG; - - *phadid = (HACMDRIVERID) pao->pACMDriverID; - - return MMSYSERR_NOERROR; -} - -/*********************************************************************** - * acmDriverMessage (MSACM32.9) - * FIXME - * Not implemented - */ -LRESULT WINAPI acmDriverMessage(HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2) -{ - PWINE_ACMDRIVER pad = MSACM_GetDriver(had); - if (!pad) - return MMSYSERR_INVALPARAM; - - /* FIXME: Check if uMsg legal */ - - if (!SendDriverMessage(pad->hDrvr, uMsg, lParam1, lParam2)) - return MMSYSERR_NOTSUPPORTED; - - return MMSYSERR_NOERROR; -} - - -/*********************************************************************** - * acmDriverOpen (MSACM32.10) - */ -MMRESULT WINAPI acmDriverOpen(PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen) -{ - PWINE_ACMDRIVERID padid; - PWINE_ACMDRIVER pad; - ICOPEN icopen; - - - TRACE("(%p, %x, %08lu)\n", phad, hadid, fdwOpen); - - if (!phad) - return MMSYSERR_INVALPARAM; - - padid = MSACM_GetDriverID(hadid); - if (!padid) - return MMSYSERR_INVALHANDLE; - - if (fdwOpen) - return MMSYSERR_INVALFLAG; - - pad = (PWINE_ACMDRIVER) HeapAlloc(MSACM_hHeap, 0, sizeof(WINE_ACMDRIVER)); - if (!pad) - return MMSYSERR_NOMEM; - - pad->obj.pACMDriverID = padid; - icopen.fccType = mmioFOURCC('a', 'u', 'd', 'c'); - icopen.fccHandler = (long)padid->pszFileName; - icopen.dwSize = sizeof(ICOPEN); - icopen.dwFlags = 0; - - icopen.pV1Reserved = padid->pszFileName; - if (!padid->hInstModule) - pad->hDrvr = OpenDriverA((long)&icopen); - else - pad->hDrvr = padid->hInstModule; - - if (!pad->hDrvr) { - HeapFree(MSACM_hHeap, 0, pad); - return MMSYSERR_ERROR; - } - - pad->pfnDriverProc = (DRIVERPROC)GetProcAddress(pad->hDrvr, "DriverProc"); - - /* insert new pad at beg of list */ - pad->pNextACMDriver = padid->pACMDriverList; - padid->pACMDriverList = pad; - - /* FIXME: Create a WINE_ACMDRIVER32 */ - *phad = (HACMDRIVER)pad; - - return MMSYSERR_NOERROR; -} - -/*********************************************************************** - * acmDriverRemove (MSACM32.12) - */ -MMRESULT WINAPI acmDriverRemove(HACMDRIVERID hadid, DWORD fdwRemove) -{ - PWINE_ACMDRIVERID padid; - - padid = MSACM_GetDriverID(hadid); - if (!padid) - return MMSYSERR_INVALHANDLE; - - if (fdwRemove) - return MMSYSERR_INVALFLAG; - - MSACM_UnregisterDriver(padid); - - return MMSYSERR_NOERROR; -} - - - -/**********************************************************************/ - -HANDLE MSACM_hHeap = (HANDLE) NULL; -PWINE_ACMDRIVERID MSACM_pFirstACMDriverID = NULL; -PWINE_ACMDRIVERID MSACM_pLastACMDriverID = NULL; - -/*********************************************************************** - * MSACM_RegisterDriver32() - */ -PWINE_ACMDRIVERID MSACM_RegisterDriver(const char* pszFileName, - WORD wFormatTag, - HINSTANCE hinstModule) -{ - PWINE_ACMDRIVERID padid; - - TRACE("('%s', '%x', 0x%08x)\n", pszFileName, wFormatTag, hinstModule); - -#ifndef WIN32_LOADER - MSACM_hHeap = GetProcessHeap(); -#endif - padid = (PWINE_ACMDRIVERID) HeapAlloc(MSACM_hHeap, 0, sizeof(WINE_ACMDRIVERID)); - padid->pszFileName = malloc(strlen(pszFileName)+1); - strcpy(padid->pszFileName, pszFileName); -// 1~strdup(pszDriverAlias); - padid->wFormatTag = wFormatTag; - padid->hInstModule = hinstModule; - padid->bEnabled = TRUE; - padid->pACMDriverList = NULL; - padid->pNextACMDriverID = NULL; - padid->pPrevACMDriverID = MSACM_pLastACMDriverID; - if (MSACM_pLastACMDriverID) - MSACM_pLastACMDriverID->pNextACMDriverID = padid; - MSACM_pLastACMDriverID = padid; - if (!MSACM_pFirstACMDriverID) - MSACM_pFirstACMDriverID = padid; - - return padid; -} - - -/*********************************************************************** - * MSACM_UnregisterDriver32() - */ -PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p) -{ - PWINE_ACMDRIVERID pNextACMDriverID; - - while (p->pACMDriverList) - acmDriverClose((HACMDRIVER) p->pACMDriverList, 0); - - free(p->pszFileName); - - if (p == MSACM_pFirstACMDriverID) - MSACM_pFirstACMDriverID = p->pNextACMDriverID; - if (p == MSACM_pLastACMDriverID) - MSACM_pLastACMDriverID = p->pPrevACMDriverID; - - if (p->pPrevACMDriverID) - p->pPrevACMDriverID->pNextACMDriverID = p->pNextACMDriverID; - if (p->pNextACMDriverID) - p->pNextACMDriverID->pPrevACMDriverID = p->pPrevACMDriverID; - - pNextACMDriverID = p->pNextACMDriverID; - - HeapFree(MSACM_hHeap, 0, p); - - return pNextACMDriverID; -} - -/*********************************************************************** - * MSACM_UnregisterAllDrivers32() - * FIXME - * Where should this function be called? - */ -void MSACM_UnregisterAllDrivers(void) -{ - PWINE_ACMDRIVERID p; - - for (p = MSACM_pFirstACMDriverID; p; p = MSACM_UnregisterDriver(p)); -} - -/*********************************************************************** - * MSACM_GetDriverID32() |