[MSACM32] Sync with Wine Staging 4.0. CORE-15682
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 26 Jan 2019 12:18:13 +0000 (13:18 +0100)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 26 Jan 2019 12:18:13 +0000 (13:18 +0100)
dll/win32/msacm32/CMakeLists.txt
dll/win32/msacm32/filter.c
dll/win32/msacm32/format.c
dll/win32/msacm32/internal.c
dll/win32/msacm32/pcmconverter.c
media/doc/README.WINE

index 88a5830..b1be7b9 100644 (file)
@@ -1,4 +1,5 @@
 
+add_definitions(-D__WINESRC__)
 include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
 spec2def(msacm32.dll msacm32.spec ADD_IMPORTLIB)
 
index 53db827..8d5abce 100644 (file)
@@ -361,8 +361,8 @@ MMRESULT WINAPI acmFilterTagDetailsW(HACMDRIVER had, PACMFILTERTAGDETAILSW paftd
 
     if (mmr == MMSYSERR_NOERROR &&
        paftd->dwFilterTag == WAVE_FORMAT_PCM && paftd->szFilterTag[0] == 0)
-        MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFilterTag,
-                             sizeof(paftd->szFilterTag)/sizeof(WCHAR) );
+        MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFilterTag,
+                            ARRAY_SIZE(paftd->szFilterTag));
 
     return mmr;
 }
index b3d2900..fcc0d9b 100644 (file)
@@ -503,9 +503,9 @@ MMRESULT WINAPI acmFormatDetailsW(HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD
            wsprintfW(pafd->szFormat + lstrlenW(pafd->szFormat), fmt2,
                      pafd->pwfx->wBitsPerSample);
        }
-        MultiByteToWideChar( CP_ACP, 0, (pafd->pwfx->nChannels == 1) ? "; Mono" : "; Stereo", -1,
-                             pafd->szFormat + strlenW(pafd->szFormat),
-                             sizeof(pafd->szFormat)/sizeof(WCHAR) - strlenW(pafd->szFormat) );
+        MultiByteToWideChar(CP_ACP, 0, (pafd->pwfx->nChannels == 1) ? "; Mono" : "; Stereo", -1,
+                            pafd->szFormat + strlenW(pafd->szFormat),
+                            ARRAY_SIZE(pafd->szFormat) - strlenW(pafd->szFormat));
     }
 
     TRACE("=> %d\n", mmr);
@@ -929,8 +929,8 @@ MMRESULT WINAPI acmFormatTagDetailsW(HACMDRIVER had, PACMFORMATTAGDETAILSW paftd
 
     if (mmr == MMSYSERR_NOERROR &&
        paftd->dwFormatTag == WAVE_FORMAT_PCM && paftd->szFormatTag[0] == 0)
-        MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFormatTag,
-                             sizeof(paftd->szFormatTag)/sizeof(WCHAR) );
+        MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFormatTag,
+                            ARRAY_SIZE(paftd->szFormatTag));
 
     return mmr;
 }
@@ -1036,8 +1036,8 @@ MMRESULT WINAPI acmFormatTagEnumW(HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
                 (LPARAM)paftd, ACM_FORMATTAGDETAILSF_INDEX) == MMSYSERR_NOERROR) {
                 if (paftd->dwFormatTag == WAVE_FORMAT_PCM) {
                     if (paftd->szFormatTag[0] == 0)
-                        MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFormatTag,
-                                            sizeof(paftd->szFormatTag)/sizeof(WCHAR) );
+                        MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFormatTag,
+                                            ARRAY_SIZE(paftd->szFormatTag));
                     /* (WS) I'm preserving this PCM hack since it seems to be
                      * correct. Please notice this block was borrowed from
                      * below.
@@ -1062,8 +1062,8 @@ MMRESULT WINAPI acmFormatTagEnumW(HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
                         (LPARAM)paftd, ACM_FORMATTAGDETAILSF_INDEX) == MMSYSERR_NOERROR) {
                         if (paftd->dwFormatTag == WAVE_FORMAT_PCM) {
                             if (paftd->szFormatTag[0] == 0)
-                                MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFormatTag,
-                                                     sizeof(paftd->szFormatTag)/sizeof(WCHAR) );
+                                MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFormatTag,
+                                                    ARRAY_SIZE(paftd->szFormatTag));
                             /* FIXME (EPP): I'm not sure this is the correct
                              * algorithm (should make more sense to apply the same
                              * for all already loaded formats, but this will do
index 7bafcaa..aad071e 100644 (file)
@@ -72,7 +72,7 @@ PWINE_ACMDRIVERID MSACM_RegisterDriverFromRegistry(LPCWSTR pszRegEntry)
     /* The requested registry entry must have the format msacm.XXXXX in order to
        be recognized in any future sessions of msacm
      */
-    if (0 == strncmpiW(pszRegEntry, msacmW, sizeof(msacmW)/sizeof(WCHAR))) {
+    if (0 == strncmpiW(pszRegEntry, msacmW, ARRAY_SIZE(msacmW))) {
         lRet = RegOpenKeyExW(HKEY_LOCAL_MACHINE, drvkey, 0, KEY_QUERY_VALUE, &hKey);
         if (lRet != ERROR_SUCCESS) {
             WARN("unable to open registry key - 0x%08x\n", lRet);
@@ -373,31 +373,31 @@ void MSACM_RegisterAllDrivers(void)
     if (lRet == ERROR_SUCCESS) {
        RegQueryInfoKeyW( hKey, 0, 0, 0, &cnt, 0, 0, 0, 0, 0, 0, 0);
        for (i = 0; i < cnt; i++) {
-           bufLen = sizeof(buf) / sizeof(buf[0]);
+           bufLen = ARRAY_SIZE(buf);
            lRet = RegEnumKeyExW(hKey, i, buf, &bufLen, 0, 0, 0, &lastWrite);
            if (lRet != ERROR_SUCCESS) continue;
-           if (strncmpiW(buf, msacmW, sizeof(msacmW)/sizeof(msacmW[0]))) continue;
+           if (strncmpiW(buf, msacmW, ARRAY_SIZE(msacmW))) continue;
            if (!(name = strchrW(buf, '='))) continue;
            *name = 0;
            MSACM_RegisterDriver(buf, name + 1, 0);
        }
        i = 0;
-       cnt = sizeof(valname) / sizeof(*valname);
+       cnt = ARRAY_SIZE(valname);
        bufLen = sizeof(buf);
        while(RegEnumValueW(hKey, i, valname, &cnt, 0,
                    &type, (BYTE*)buf, &bufLen) == ERROR_SUCCESS){
-           if(!strncmpiW(valname, msacmW, sizeof(msacmW) / sizeof(*msacmW)))
+           if (!strncmpiW(valname, msacmW, ARRAY_SIZE(msacmW)))
                MSACM_RegisterDriver(valname, buf, 0);
            ++i;
        }
        RegCloseKey( hKey );
     }
 
-    if (GetPrivateProfileSectionW(drv32, buf, sizeof(buf)/sizeof(buf[0]), sys))
+    if (GetPrivateProfileSectionW(drv32, buf, ARRAY_SIZE(buf), sys))
     {
        for(s = buf; *s;  s += strlenW(s) + 1)
        {
-           if (strncmpiW(s, msacmW, sizeof(msacmW)/sizeof(msacmW[0]))) continue;
+           if (strncmpiW(s, msacmW, ARRAY_SIZE(msacmW))) continue;
            if (!(name = strchrW(s, '='))) continue;
            *name = 0;
            MSACM_RegisterDriver(s, name + 1, 0);
index d52662a..dc10f11 100644 (file)
@@ -71,7 +71,6 @@ static        DWORD   PCM_drvClose(DWORD dwDevID)
     return 1;
 }
 
-#define        NUM_PCM_FORMATS (sizeof(PCM_Formats) / sizeof(PCM_Formats[0]))
 #define        NUM_OF(a,b)     ((a)/(b))
 
 /* flags for fdwDriver */
@@ -114,7 +113,7 @@ static DWORD PCM_GetFormatIndex(LPWAVEFORMATEX wfx)
     unsigned int i;
     TRACE("(%p)\n", wfx);
 
-    for (i = 0; i < NUM_PCM_FORMATS; i++) {
+    for (i = 0; i < ARRAY_SIZE(PCM_Formats); i++) {
        if (wfx->nChannels == PCM_Formats[i].nChannels &&
            wfx->nSamplesPerSec == PCM_Formats[i].rate &&
            wfx->wBitsPerSample == PCM_Formats[i].nBits)
@@ -985,14 +984,13 @@ static    LRESULT PCM_DriverDetails(PACMDRIVERDETAILSW add)
     add->cFormatTags = 1;
     add->cFilterTags = 0;
     add->hicon = NULL;
-    MultiByteToWideChar( CP_ACP, 0, "MS-PCM", -1,
-                         add->szShortName, sizeof(add->szShortName)/sizeof(WCHAR) );
-    MultiByteToWideChar( CP_ACP, 0, "Wine PCM converter", -1,
-                         add->szLongName, sizeof(add->szLongName)/sizeof(WCHAR) );
-    MultiByteToWideChar( CP_ACP, 0, "Brought to you by the Wine team...", -1,
-                         add->szCopyright, sizeof(add->szCopyright)/sizeof(WCHAR) );
-    MultiByteToWideChar( CP_ACP, 0, "Refer to LICENSE file", -1,
-                         add->szLicensing, sizeof(add->szLicensing)/sizeof(WCHAR) );
+    MultiByteToWideChar(CP_ACP, 0, "MS-PCM", -1, add->szShortName, ARRAY_SIZE(add->szShortName));
+    MultiByteToWideChar(CP_ACP, 0, "Wine PCM converter", -1,
+                        add->szLongName, ARRAY_SIZE(add->szLongName));
+    MultiByteToWideChar(CP_ACP, 0, "Brought to you by the Wine team...", -1,
+                        add->szCopyright, ARRAY_SIZE(add->szCopyright));
+    MultiByteToWideChar(CP_ACP, 0, "Refer to LICENSE file", -1,
+                        add->szLicensing, ARRAY_SIZE(add->szLicensing) );
     add->szFeatures[0] = 0;
 
     return MMSYSERR_NOERROR;
@@ -1035,7 +1033,7 @@ static    LRESULT PCM_FormatTagDetails(PACMFORMATTAGDETAILSW aftd, DWORD dwQuery)
     aftd->dwFormatTag = WAVE_FORMAT_PCM;
     aftd->cbFormatSize = sizeof(PCMWAVEFORMAT);
     aftd->fdwSupport = ACMDRIVERDETAILS_SUPPORTF_CONVERTER;
-    aftd->cStandardFormats = NUM_PCM_FORMATS;
+    aftd->cStandardFormats = ARRAY_SIZE(PCM_Formats);
     aftd->szFormatTag[0] = 0;
 
     return MMSYSERR_NOERROR;
@@ -1057,7 +1055,7 @@ static    LRESULT PCM_FormatDetails(PACMFORMATDETAILSW afd, DWORD dwQuery)
         }
        break;
     case ACM_FORMATDETAILSF_INDEX:
-       assert(afd->dwFormatIndex < NUM_PCM_FORMATS);
+       assert(afd->dwFormatIndex < ARRAY_SIZE(PCM_Formats));
        afd->pwfx->wFormatTag = WAVE_FORMAT_PCM;
        afd->pwfx->nChannels = PCM_Formats[afd->dwFormatIndex].nChannels;
        afd->pwfx->nSamplesPerSec = PCM_Formats[afd->dwFormatIndex].rate;
index bb6ca8c..d27f4d3 100644 (file)
@@ -100,7 +100,7 @@ reactos/dll/win32/mlang               # Synced to WineStaging-4.0
 reactos/dll/win32/mmdevapi            # Synced to WineStaging-4.0
 reactos/dll/win32/mpr                 # Synced to WineStaging-3.17
 reactos/dll/win32/mprapi              # Synced to WineStaging-3.3
-reactos/dll/win32/msacm32             # Synced to WineStaging-3.3
+reactos/dll/win32/msacm32             # Synced to WineStaging-4.0
 reactos/dll/win32/msacm32.drv         # Synced to WineStaging-3.3
 reactos/dll/win32/msadp32.acm         # Synced to WineStaging-3.3
 reactos/dll/win32/mscat32             # Synced to WineStaging-3.3