Changeset 6648 for trunk/src/msacm32/msacm32_main.c
- Timestamp:
- Sep 5, 2001, 3:19:02 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/msacm32/msacm32_main.c
r5434 r6648 1 1 /* -*- tab-width: 8; c-basic-offset: 4 -*- */ 2 2 /* $Id: msacm32_main.c,v 1.2 2001-09-05 13:11:26 bird Exp $ */ 3 3 /* 4 4 * MSACM32 library 5 5 * 6 6 * Copyright 1998 Patrik Stridvall 7 * 1999Eric Pouech7 * 1999 Eric Pouech 8 8 */ 9 9 … … 17 17 18 18 DEFAULT_DEBUG_CHANNEL(msacm); 19 19 20 20 /**********************************************************************/ 21 22 HINSTANCE 21 22 HINSTANCE MSACM_hInstance32 = 0; 23 23 24 24 /*********************************************************************** 25 * MSACM_LibMain (MSACM32.init) 25 * MSACM_LibMain (MSACM32.init) 26 26 */ 27 27 BOOL WINAPI MSACM32_LibMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved) … … 34 34 MSACM_hInstance32 = hInstDLL; 35 35 MSACM_RegisterAllDrivers(); 36 36 break; 37 37 case DLL_PROCESS_DETACH: 38 38 MSACM_UnregisterAllDrivers(); … … 40 40 MSACM_hHeap = (HANDLE) NULL; 41 41 MSACM_hInstance32 = (HINSTANCE)NULL; 42 42 break; 43 43 case DLL_THREAD_ATTACH: 44 44 break; 45 45 case DLL_THREAD_DETACH: 46 46 break; 47 47 default: 48 48 break; 49 49 } 50 50 return TRUE; … … 67 67 { 68 68 case VER_PLATFORM_WIN32_NT: 69 69 return 0x04000565; /* 4.0.1381 */ 70 70 default: 71 71 FIXME("%ld not supported",version.dwPlatformId); 72 72 case VER_PLATFORM_WIN32_WINDOWS: 73 73 return 0x04000000; /* 4.0.0 */ 74 74 } 75 75 } … … 86 86 MMRESULT WINAPI acmMetrics(HACMOBJ hao, UINT uMetric, LPVOID pMetric) 87 87 { 88 PWINE_ACMOBJ 89 BOOL 90 PWINE_ACMDRIVERID 91 DWORD 92 MMRESULT 88 PWINE_ACMOBJ pao = MSACM_GetObj(hao, WINE_ACMOBJ_DONTCARE); 89 BOOL bLocal = TRUE; 90 PWINE_ACMDRIVERID padid; 91 DWORD val = 0; 92 MMRESULT mmr = MMSYSERR_NOERROR; 93 93 94 94 TRACE("(0x%08x, %d, %p);\n", hao, uMetric, pMetric); 95 95 96 96 switch (uMetric) { 97 97 case ACM_METRIC_COUNT_DRIVERS: 98 99 98 bLocal = FALSE; 99 /* fall thru */ 100 100 case ACM_METRIC_COUNT_LOCAL_DRIVERS: 101 102 103 104 105 106 107 101 if (!pao) 102 return MMSYSERR_INVALHANDLE; 103 for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID) 104 if (padid->bEnabled /* && (local(padid) || !bLocal) */) 105 val++; 106 *(LPDWORD)pMetric = val; 107 break; 108 108 109 109 case ACM_METRIC_COUNT_CODECS: 110 111 112 113 110 if (!pao) 111 return MMSYSERR_INVALHANDLE; 112 bLocal = FALSE; 113 /* fall thru */ 114 114 case ACM_METRIC_COUNT_LOCAL_CODECS: 115 116 117 118 119 120 115 /* FIXME: don't know how to differentiate codec, converters & filters yet */ 116 for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID) 117 if (padid->bEnabled /* && (local(padid) || !bLocal) */) 118 val++; 119 *(LPDWORD)pMetric = val; 120 break; 121 121 122 122 case ACM_METRIC_COUNT_CONVERTERS: 123 124 123 bLocal = FALSE; 124 /* fall thru */ 125 125 case ACM_METRIC_COUNT_LOCAL_CONVERTERS: 126 127 128 129 130 131 126 /* FIXME: don't know how to differentiate codec, converters & filters yet */ 127 for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID) 128 if (padid->bEnabled /* && (local(padid) || !bLocal) */) 129 val++; 130 *(LPDWORD)pMetric = val; 131 break; 132 132 133 133 case ACM_METRIC_COUNT_FILTERS: 134 135 134 bLocal = FALSE; 135 /* fall thru */ 136 136 case ACM_METRIC_COUNT_LOCAL_FILTERS: 137 138 139 140 141 142 137 /* FIXME: don't know how to differentiate codec, converters & filters yet */ 138 for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID) 139 if (padid->bEnabled /* && (local(padid) || !bLocal) */) 140 val++; 141 *(LPDWORD)pMetric = val; 142 break; 143 143 144 144 case ACM_METRIC_COUNT_DISABLED: 145 146 145 bLocal = FALSE; 146 /* fall thru */ 147 147 case ACM_METRIC_COUNT_LOCAL_DISABLED: 148 149 return MMSYSERR_INVALHANDLE; 150 151 152 153 154 155 148 if (!pao) 149 return MMSYSERR_INVALHANDLE; 150 for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID) 151 if (!padid->bEnabled /* && (local(padid) || !bLocal) */) 152 val++; 153 *(LPDWORD)pMetric = val; 154 break; 155 156 156 case ACM_METRIC_MAX_SIZE_FORMAT: 157 158 ACMFORMATTAGDETAILSWaftd;157 { 158 ACMFORMATTAGDETAILSW aftd; 159 159 160 161 160 aftd.cbStruct = sizeof(aftd); 161 aftd.dwFormatTag = WAVE_FORMAT_UNKNOWN; 162 162 163 164 165 166 167 168 HACMDRIVERhad;169 170 171 172 173 174 175 176 177 178 163 if (hao == (HACMOBJ)NULL) { 164 mmr = acmFormatTagDetailsW((HACMDRIVER)NULL, &aftd, ACM_FORMATTAGDETAILSF_LARGESTSIZE); 165 } else if (MSACM_GetObj(hao, WINE_ACMOBJ_DRIVER)) { 166 mmr = acmFormatTagDetailsW((HACMDRIVER)hao, &aftd, ACM_FORMATTAGDETAILSF_LARGESTSIZE); 167 } else if (MSACM_GetObj(hao, WINE_ACMOBJ_DRIVERID)) { 168 HACMDRIVER had; 169 170 if (acmDriverOpen(&had, (HACMDRIVERID)hao, 0) == 0) { 171 mmr = acmFormatTagDetailsW((HACMDRIVER)hao, &aftd, ACM_FORMATTAGDETAILSF_LARGESTSIZE); 172 acmDriverClose(had, 0); 173 } 174 } else { 175 mmr = MMSYSERR_INVALHANDLE; 176 } 177 if (mmr == MMSYSERR_NOERROR) *(LPDWORD)pMetric = aftd.cbFormatSize; 178 } 179 179 break; 180 180 … … 186 186 case ACM_METRIC_DRIVER_PRIORITY: 187 187 default: 188 189 188 FIXME("(0x%08x, %d, %p): stub\n", hao, uMetric, pMetric); 189 mmr = MMSYSERR_NOTSUPPORTED; 190 190 } 191 191 return mmr;
Note:
See TracChangeset
for help on using the changeset viewer.