VirtualBox

Changeset 89510 in vbox for trunk/include


Ignore:
Timestamp:
Jun 4, 2021 1:20:02 PM (4 years ago)
Author:
vboxsync
Message:

Audio: Split up PDMIHOSTAUDIO::pfnStreamControl into individual methods for each command. bugref:9890

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/pdmaudioifs.h

    r89500 r89510  
    13001300
    13011301    /**
    1302      * Controls an audio stream.
    1303      *
    1304      * @returns VBox status code.
    1305      * @retval  VERR_AUDIO_STREAM_NOT_READY if stream is not ready for required operation (yet).
    1306      * @param   pInterface          Pointer to the interface structure containing the called function pointer.
    1307      * @param   pStream             Pointer to audio stream.
    1308      * @param   enmStreamCmd        The stream command to issue.
    1309      */
    1310     DECLR3CALLBACKMEMBER(int, pfnStreamControl, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream,
    1311                                                  PDMAUDIOSTREAMCMD enmStreamCmd));
    1312 
     1302     * Enables (starts) the stream.
     1303     *
     1304     * @returns VBox status code.
     1305     * @param   pInterface  Pointer to this interface.
     1306     * @param   pStream     Pointer to the audio stream to enable.
     1307     * @sa      PDMAUDIOSTREAMCMD_ENABLE
     1308     */
     1309    DECLR3CALLBACKMEMBER(int, pfnStreamEnable, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
     1310
     1311    /**
     1312     * Disables (stops) the stream immediately.
     1313     *
     1314     * @returns VBox status code.
     1315     * @param   pInterface  Pointer to this interface.
     1316     * @param   pStream     Pointer to the audio stream to disable.
     1317     * @sa      PDMAUDIOSTREAMCMD_DISABLE
     1318     */
     1319    DECLR3CALLBACKMEMBER(int, pfnStreamDisable, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
     1320
     1321    /**
     1322     * Pauses the stream - called when the VM is suspended.
     1323     *
     1324     * @returns VBox status code.
     1325     * @param   pInterface  Pointer to this interface.
     1326     * @param   pStream     Pointer to the audio stream to pause.
     1327     * @sa      PDMAUDIOSTREAMCMD_PAUSE
     1328     */
     1329    DECLR3CALLBACKMEMBER(int, pfnStreamPause, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
     1330
     1331    /**
     1332     * Resumes a paused stream - called when the VM is resumed.
     1333     *
     1334     * @returns VBox status code.
     1335     * @param   pInterface  Pointer to this interface.
     1336     * @param   pStream     Pointer to the audio stream to resume.
     1337     * @sa      PDMAUDIOSTREAMCMD_RESUME
     1338     */
     1339    DECLR3CALLBACKMEMBER(int, pfnStreamResume, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
     1340
     1341    /**
     1342     * Drain the stream, that is, play what's in the buffers and then stop.
     1343     *
     1344     * There will be no more samples written after this command is issued.
     1345     * PDMIHOSTAUDIO::pfnStreamPlay with a zero sized buffer will provide the
     1346     * backend with a way to drive it forwards.  These calls will come at a
     1347     * frequency set by the device and be on an asynchronous I/O thread.
     1348     *
     1349     * The PDMIHOSTAUDIO::pfnStreamDisable method maybe called if the device/mixer
     1350     * wants to re-enable the stream while it's still draining or if it gets
     1351     * impatient and thinks the draining has been going on too long, in which case
     1352     * the stream should stop immediately.
     1353     *
     1354     * @note    This should not wait for the stream to finish draining, just change
     1355     *          the state.  (The caller could be an EMT and it must not block for
     1356     *          hundreds of milliseconds of buffer to finish draining.)
     1357     *
     1358     * @note    Does not apply to input streams. Backends should refuse such
     1359     *          requests.
     1360     *
     1361     * @returns VBox status code.
     1362     * @retval  VERR_WRONG_ORDER if not output stream.
     1363     * @param   pInterface  Pointer to this interface.
     1364     * @param   pStream     Pointer to the audio stream to drain.
     1365     * @sa      PDMAUDIOSTREAMCMD_DRAIN
     1366     */
     1367    DECLR3CALLBACKMEMBER(int, pfnStreamDrain, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
    13131368
    13141369    /**
     
    13291384     * @returns Number of pending bytes.
    13301385     * @param   pInterface          Pointer to this interface.
    1331      * @param   pStream             Pointer to audio stream.
     1386     * @param   pStream             Pointer to the audio stream.
    13321387     *
    13331388     * @todo This is no longer not used by DrvAudio and can probably be removed.
     
    13891444
    13901445/** PDMIHOSTAUDIO interface ID. */
    1391 #define PDMIHOSTAUDIO_IID                           "2d57627f-6f47-4669-a2fa-93a5f1cb6e51"
     1446#define PDMIHOSTAUDIO_IID                           "c0875b91-a4f9-48be-8595-31d27048432d"
    13921447
    13931448
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