source: trunk/src/msacm32/msacm32.cpp@ 1924

Last change on this file since 1924 was 1607, checked in by sandervl, 26 years ago

Jens Weissner's update

File size: 3.3 KB
Line 
1/* -*- tab-width: 8; c-basic-offset: 4 -*- */
2
3/*
4 * MSACM32 library
5 *
6 * Copyright 1998 Patrik Stridvall
7 * 1999 Eric Pouech
8 */
9
10#include <os2win.h>
11#include "winbase.h"
12#include "winerror.h"
13#include "windef.h"
14#include "debugtools.h"
15#include "msacm.h"
16#include "msacmdrv.h"
17#include "wineacm.h"
18#include "winversion.h"
19
20DEFAULT_DEBUG_CHANNEL(msacm)
21
22/**********************************************************************/
23
24static DWORD MSACM_dwProcessesAttached = 0;
25
26/***********************************************************************
27 * MSACM_LibMain32 (MSACM32.init)
28 */
29BOOL WINAPI MSACM32_LibMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
30{
31 dprintf(("0x%x 0x%lx %p\n", hInstDLL, fdwReason, lpvReserved));
32
33 switch (fdwReason) {
34 case DLL_PROCESS_ATTACH:
35 if (MSACM_dwProcessesAttached == 0) {
36 MSACM_hHeap = HeapCreate(0, 0x10000, 0);
37 MSACM_RegisterAllDrivers();
38 }
39 MSACM_dwProcessesAttached++;
40 break;
41 case DLL_PROCESS_DETACH:
42 MSACM_dwProcessesAttached--;
43 if (MSACM_dwProcessesAttached == 0) {
44 MSACM_UnregisterAllDrivers();
45 HeapDestroy(MSACM_hHeap);
46 MSACM_hHeap = (HANDLE) NULL;
47 }
48 break;
49 case DLL_THREAD_ATTACH:
50 break;
51 case DLL_THREAD_DETACH:
52 break;
53 default:
54 break;
55 }
56 return TRUE;
57}
58
59/***********************************************************************
60 * XRegThunkEntry (MSACM32.1)
61 * FIXME
62 * No documentation found.
63 */
64
65/***********************************************************************
66 * acmGetVersion32 (MSACM32.34)
67 */
68DWORD WINAPI acmGetVersion(void)
69{
70 switch (GetVersion()) {
71 default:
72 dprintf(("OS not supported\n"));
73 case WIN95:
74 return 0x04000000; /* 4.0.0 */
75 case NT40:
76 return 0x04000565; /* 4.0.1381 */
77 }
78}
79
80/***********************************************************************
81 * acmMessage32 (MSACM32.35)
82 * FIXME
83 * No documentation found.
84 */
85
86/***********************************************************************
87 * acmMetrics (MSACM32.36)
88 */
89MMRESULT WINAPI acmMetrics(HACMOBJ hao, UINT uMetric, LPVOID pMetric)
90{
91 PWINE_ACMOBJ pao = MSACM_GetObj(hao);
92 BOOL bLocal = TRUE;
93
94 dprintf(("(0x%08x, %d, %p): stub\n", hao, uMetric, pMetric));
95
96 switch (uMetric) {
97 case ACM_METRIC_COUNT_DRIVERS:
98 bLocal = FALSE;
99 case ACM_METRIC_COUNT_LOCAL_DRIVERS:
100 if (!pao)
101 return MMSYSERR_INVALHANDLE;
102 return MMSYSERR_NOTSUPPORTED;
103 case ACM_METRIC_COUNT_CODECS:
104 bLocal = FALSE;
105 case ACM_METRIC_COUNT_LOCAL_CODECS:
106 return MMSYSERR_NOTSUPPORTED;
107 case ACM_METRIC_COUNT_CONVERTERS:
108 bLocal = FALSE;
109 case ACM_METRIC_COUNT_LOCAL_CONVERTERS:
110 return MMSYSERR_NOTSUPPORTED;
111 case ACM_METRIC_COUNT_FILTERS:
112 bLocal = FALSE;
113 case ACM_METRIC_COUNT_LOCAL_FILTERS:
114 return MMSYSERR_NOTSUPPORTED;
115 case ACM_METRIC_COUNT_DISABLED:
116 bLocal = FALSE;
117 case ACM_METRIC_COUNT_LOCAL_DISABLED:
118 if (!pao)
119 return MMSYSERR_INVALHANDLE;
120 return MMSYSERR_NOTSUPPORTED;
121 case ACM_METRIC_COUNT_HARDWARE:
122 case ACM_METRIC_HARDWARE_WAVE_INPUT:
123 case ACM_METRIC_HARDWARE_WAVE_OUTPUT:
124 case ACM_METRIC_MAX_SIZE_FORMAT:
125 case ACM_METRIC_MAX_SIZE_FILTER:
126 case ACM_METRIC_DRIVER_SUPPORT:
127 case ACM_METRIC_DRIVER_PRIORITY:
128 default:
129 return MMSYSERR_NOTSUPPORTED;
130 }
131 return MMSYSERR_NOERROR;
132}
Note: See TracBrowser for help on using the repository browser.