VirtualBox

Changeset 88462 in vbox


Ignore:
Timestamp:
Apr 12, 2021 10:59:57 AM (4 years ago)
Author:
vboxsync
Message:

DrvHostAudioDebug,DrvHostAudioNull,DrvHostAudioValidationKit: Prepare splitting up pfnStreamControl. bugref:9890

Location:
trunk/src/VBox/Devices/Audio
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DrvHostAudioDebug.cpp

    r88457 r88462  
    183183
    184184/**
     185 * @ interface_method_impl{PDMIHOSTAUDIO,pfnStreamEnable}
     186 */
     187static DECLCALLBACK(int) drvHostDebugAudioHA_StreamControlStub(PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream)
     188{
     189    RT_NOREF(pInterface, pStream);
     190    return VINF_SUCCESS;
     191}
     192
     193
     194/**
    185195 * @interface_method_impl{PDMIHOSTAUDIO,pfnStreamControl}
    186196 */
     
    188198                                                           PPDMAUDIOBACKENDSTREAM pStream, PDMAUDIOSTREAMCMD enmStreamCmd)
    189199{
    190     RT_NOREF(pInterface, pStream, enmStreamCmd);
    191     return VINF_SUCCESS;
     200    /** @todo r=bird: I'd like to get rid of this pfnStreamControl method,
     201     *        replacing it with individual StreamXxxx methods.  That would save us
     202     *        potentally huge switches and more easily see which drivers implement
     203     *        which operations (grep for pfnStreamXxxx). */
     204    switch (enmStreamCmd)
     205    {
     206        case PDMAUDIOSTREAMCMD_ENABLE:
     207            return drvHostDebugAudioHA_StreamControlStub(pInterface, pStream);
     208        case PDMAUDIOSTREAMCMD_DISABLE:
     209            return drvHostDebugAudioHA_StreamControlStub(pInterface, pStream);
     210        case PDMAUDIOSTREAMCMD_PAUSE:
     211            return drvHostDebugAudioHA_StreamControlStub(pInterface, pStream);
     212        case PDMAUDIOSTREAMCMD_RESUME:
     213            return drvHostDebugAudioHA_StreamControlStub(pInterface, pStream);
     214        case PDMAUDIOSTREAMCMD_DRAIN:
     215            return drvHostDebugAudioHA_StreamControlStub(pInterface, pStream);
     216
     217        case PDMAUDIOSTREAMCMD_END:
     218        case PDMAUDIOSTREAMCMD_32BIT_HACK:
     219        case PDMAUDIOSTREAMCMD_INVALID:
     220            /* no default*/
     221            break;
     222    }
     223    return VERR_NOT_SUPPORTED;
    192224}
    193225
  • trunk/src/VBox/Devices/Audio/DrvHostAudioNull.cpp

    r88456 r88462  
    119119
    120120/**
     121 * @ interface_method_impl{PDMIHOSTAUDIO,pfnStreamEnable}
     122 */
     123static DECLCALLBACK(int) drvHostNullAudioHA_StreamControlStub(PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream)
     124{
     125    RT_NOREF(pInterface, pStream);
     126    return VINF_SUCCESS;
     127}
     128
     129
     130/**
    121131 * @interface_method_impl{PDMIHOSTAUDIO,pfnStreamControl}
    122132 */
    123133static DECLCALLBACK(int) drvHostNullAudioHA_StreamControl(PPDMIHOSTAUDIO pInterface,
    124                                                           PPDMAUDIOBACKENDSTREAM pStream, PDMAUDIOSTREAMCMD enmStreamCmd)
    125 {
    126     RT_NOREF(pInterface, pStream, enmStreamCmd);
    127     return VINF_SUCCESS;
     134                                                           PPDMAUDIOBACKENDSTREAM pStream, PDMAUDIOSTREAMCMD enmStreamCmd)
     135{
     136    /** @todo r=bird: I'd like to get rid of this pfnStreamControl method,
     137     *        replacing it with individual StreamXxxx methods.  That would save us
     138     *        potentally huge switches and more easily see which drivers implement
     139     *        which operations (grep for pfnStreamXxxx). */
     140    switch (enmStreamCmd)
     141    {
     142        case PDMAUDIOSTREAMCMD_ENABLE:
     143            return drvHostNullAudioHA_StreamControlStub(pInterface, pStream);
     144        case PDMAUDIOSTREAMCMD_DISABLE:
     145            return drvHostNullAudioHA_StreamControlStub(pInterface, pStream);
     146        case PDMAUDIOSTREAMCMD_PAUSE:
     147            return drvHostNullAudioHA_StreamControlStub(pInterface, pStream);
     148        case PDMAUDIOSTREAMCMD_RESUME:
     149            return drvHostNullAudioHA_StreamControlStub(pInterface, pStream);
     150        case PDMAUDIOSTREAMCMD_DRAIN:
     151            return drvHostNullAudioHA_StreamControlStub(pInterface, pStream);
     152
     153        case PDMAUDIOSTREAMCMD_END:
     154        case PDMAUDIOSTREAMCMD_32BIT_HACK:
     155        case PDMAUDIOSTREAMCMD_INVALID:
     156            /* no default*/
     157            break;
     158    }
     159    return VERR_NOT_SUPPORTED;
    128160}
    129161
  • trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp

    r88458 r88462  
    249249
    250250/**
    251  * @interface_method_impl{PDMIHOSTAUDIO,pfnStreamControl}
    252  */
    253 static DECLCALLBACK(int) drvHostValKitAudioHA_StreamControl(PPDMIHOSTAUDIO pInterface,
    254                                                             PPDMAUDIOBACKENDSTREAM pStream, PDMAUDIOSTREAMCMD enmStreamCmd)
    255 {
    256     RT_NOREF(pInterface, enmStreamCmd);
    257     PVAKITAUDIOSTREAM  pStreamDbg = (PVAKITAUDIOSTREAM)pStream;
     251 * @ interface_method_impl{PDMIHOSTAUDIO,pfnStreamEnable}
     252 */
     253static DECLCALLBACK(int) drvHostValKitAudioHA_StreamControlStub(PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream)
     254{
     255    RT_NOREF(pInterface, pStream);
     256    return VINF_SUCCESS;
     257}
     258
     259
     260/**
     261 * @ interface_method_impl{PDMIHOSTAUDIO,pfnStreamDisable}
     262 */
     263static DECLCALLBACK(int) drvHostValKitAudioHA_StreamDisableOrPauseOrDrain(PPDMIHOSTAUDIO pInterface,
     264                                                                          PPDMAUDIOBACKENDSTREAM pStream)
     265{
     266    RT_NOREF(pInterface);
     267    PVAKITAUDIOSTREAM pStreamDbg = (PVAKITAUDIOSTREAM)pStream;
    258268    AssertPtrReturn(pStreamDbg, VERR_INVALID_POINTER);
    259269
     
    262272
    263273    return VINF_SUCCESS;
     274}
     275
     276
     277/**
     278 * @interface_method_impl{PDMIHOSTAUDIO,pfnStreamControl}
     279 */
     280static DECLCALLBACK(int) drvHostValKitAudioHA_StreamControl(PPDMIHOSTAUDIO pInterface,
     281                                                           PPDMAUDIOBACKENDSTREAM pStream, PDMAUDIOSTREAMCMD enmStreamCmd)
     282{
     283    /** @todo r=bird: I'd like to get rid of this pfnStreamControl method,
     284     *        replacing it with individual StreamXxxx methods.  That would save us
     285     *        potentally huge switches and more easily see which drivers implement
     286     *        which operations (grep for pfnStreamXxxx). */
     287    switch (enmStreamCmd)
     288    {
     289        case PDMAUDIOSTREAMCMD_ENABLE:
     290            return drvHostValKitAudioHA_StreamControlStub(pInterface, pStream);
     291        case PDMAUDIOSTREAMCMD_DISABLE:
     292            return drvHostValKitAudioHA_StreamControlStub(pInterface, pStream);
     293        case PDMAUDIOSTREAMCMD_PAUSE:
     294            return drvHostValKitAudioHA_StreamDisableOrPauseOrDrain(pInterface, pStream);
     295        case PDMAUDIOSTREAMCMD_RESUME:
     296            return drvHostValKitAudioHA_StreamDisableOrPauseOrDrain(pInterface, pStream);
     297        case PDMAUDIOSTREAMCMD_DRAIN:
     298            return drvHostValKitAudioHA_StreamDisableOrPauseOrDrain(pInterface, pStream);
     299
     300        case PDMAUDIOSTREAMCMD_END:
     301        case PDMAUDIOSTREAMCMD_32BIT_HACK:
     302        case PDMAUDIOSTREAMCMD_INVALID:
     303            /* no default*/
     304            break;
     305    }
     306    return VERR_NOT_SUPPORTED;
    264307}
    265308
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette