Ignore:
Timestamp:
Dec 18, 1999, 11:15:16 AM (26 years ago)
Author:
sandervl
Message:

JW's update (wine 991212)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/msacm32/msacm32.cpp

    r1607 r2103  
    7070    switch (GetVersion()) {
    7171    default:
    72         dprintf(("OS not supported\n"));
     72        dprintf(("Current OS not supported\n"));
    7373    case WIN95:
    7474        return 0x04000000; /* 4.0.0 */
     
    8989MMRESULT WINAPI acmMetrics(HACMOBJ hao, UINT uMetric, LPVOID  pMetric)
    9090{
    91     PWINE_ACMOBJ pao = MSACM_GetObj(hao);
    92     BOOL bLocal = TRUE;
    93    
     91    PWINE_ACMOBJ        pao = MSACM_GetObj(hao);
     92    BOOL                bLocal = TRUE;
     93    PWINE_ACMDRIVERID   padid;
     94    DWORD               val = 0;
     95
    9496    dprintf(("(0x%08x, %d, %p): stub\n", hao, uMetric, pMetric));
    9597   
     
    9799    case ACM_METRIC_COUNT_DRIVERS:
    98100        bLocal = FALSE;
     101        /* fall thru */
    99102    case ACM_METRIC_COUNT_LOCAL_DRIVERS:
    100103        if (!pao)
    101             return MMSYSERR_INVALHANDLE; 
    102         return MMSYSERR_NOTSUPPORTED;
     104            return MMSYSERR_INVALHANDLE;
     105        for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID)
     106            if (padid->bEnabled /* && (local(padid) || !bLocal) */)
     107                val++;
     108        *(LPDWORD)pMetric = val;
     109        return 0;
     110
    103111    case ACM_METRIC_COUNT_CODECS:
     112        if (!pao)
     113            return MMSYSERR_INVALHANDLE;
    104114        bLocal = FALSE;
     115        /* fall thru */
    105116    case ACM_METRIC_COUNT_LOCAL_CODECS:
    106         return MMSYSERR_NOTSUPPORTED;
     117        /* FIXME: don't know how to differentiate codec, converters & filters yet */
     118        for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID)
     119            if (padid->bEnabled /* && (local(padid) || !bLocal) */)
     120                val++;
     121        *(LPDWORD)pMetric = val;
     122        return 0;
     123
    107124    case ACM_METRIC_COUNT_CONVERTERS:
    108125        bLocal = FALSE;
     126        /* fall thru */
    109127    case ACM_METRIC_COUNT_LOCAL_CONVERTERS:
    110         return MMSYSERR_NOTSUPPORTED;
     128        /* FIXME: don't know how to differentiate codec, converters & filters yet */
     129        for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID)
     130            if (padid->bEnabled /* && (local(padid) || !bLocal) */)
     131                val++;
     132        *(LPDWORD)pMetric = val;
     133        return 0;
     134
    111135    case ACM_METRIC_COUNT_FILTERS:
    112136        bLocal = FALSE;
     137        /* fall thru */
    113138    case ACM_METRIC_COUNT_LOCAL_FILTERS:
    114         return MMSYSERR_NOTSUPPORTED;
     139        /* FIXME: don't know how to differentiate codec, converters & filters yet */
     140        for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID)
     141            if (padid->bEnabled /* && (local(padid) || !bLocal) */)
     142                val++;
     143        *(LPDWORD)pMetric = val;
     144        return 0;
     145
    115146    case ACM_METRIC_COUNT_DISABLED:
    116147        bLocal = FALSE;
     148        /* fall thru */
    117149    case ACM_METRIC_COUNT_LOCAL_DISABLED:
    118150        if (!pao)
    119151            return MMSYSERR_INVALHANDLE; 
    120         return MMSYSERR_NOTSUPPORTED;
     152        for (padid = MSACM_pFirstACMDriverID; padid; padid = padid->pNextACMDriverID)
     153            if (!padid->bEnabled /* && (local(padid) || !bLocal) */)
     154                val++;
     155        *(LPDWORD)pMetric = val;
     156        return 0;
     157
    121158    case ACM_METRIC_COUNT_HARDWARE:
    122159    case ACM_METRIC_HARDWARE_WAVE_INPUT:
Note: See TracChangeset for help on using the changeset viewer.