VirtualBox

Changeset 34525 in vbox


Ignore:
Timestamp:
Nov 30, 2010 3:26:54 PM (14 years ago)
Author:
vboxsync
Message:

VRDP: initial implementation of audio input channel in VRDP server and new interface for the channel.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/RemoteDesktop/VRDE.h

    r33540 r34525  
    7777/** Decode number of bytes per sample. */
    7878#define VRDE_AUDIO_FMT_BYTES_PER_SAMPLE(a) ((VRDE_AUDIO_FMT_BITS_PER_SAMPLE(a) + 7) / 8)
     79
     80
     81/*
     82 * Audio input.
     83 */
     84
     85/* Audion notifications. */
     86#define VRDE_AUDIOIN_BEGIN     1
     87#define VRDE_AUDIOIN_DATA      2
     88#define VRDE_AUDIOIN_END       3
     89
    7990
    8091/*
     
    567578#define VRDE_INTERFACE_VERSION_1 (1)
    568579#define VRDE_INTERFACE_VERSION_2 (2)
     580#define VRDE_INTERFACE_VERSION_3 (3)
    569581
    570582/** The header that does not change when the interface changes. */
     
    934946} VRDEENTRYPOINTS_2;
    935947
     948/** The VRDE server entry points. Interface version 3.
     949 *  A new entry point VRDE has been added relative to version 2.
     950 */
     951typedef struct _VRDEENTRYPOINTS_3
     952{
     953    /* The header. */
     954    VRDEINTERFACEHDR header;
     955
     956    /*
     957     * Same as version 2.
     958     */
     959
     960    DECLR3CALLBACKMEMBER(void, VRDEDestroy,(HVRDESERVER hServer));
     961
     962    DECLR3CALLBACKMEMBER(int, VRDEEnableConnections,(HVRDESERVER hServer,
     963                                                   bool fEnable));
     964
     965    DECLR3CALLBACKMEMBER(void, VRDEDisconnect,(HVRDESERVER hServer,
     966                                             uint32_t u32ClientId,
     967                                             bool fReconnect));
     968
     969    DECLR3CALLBACKMEMBER(void, VRDEResize,(HVRDESERVER hServer));
     970
     971    DECLR3CALLBACKMEMBER(void, VRDEUpdate,(HVRDESERVER hServer,
     972                                         unsigned uScreenId,
     973                                         void *pvUpdate,
     974                                         uint32_t cbUpdate));
     975
     976    DECLR3CALLBACKMEMBER(void, VRDEColorPointer,(HVRDESERVER hServer,
     977                                               const VRDECOLORPOINTER *pPointer));
     978
     979    DECLR3CALLBACKMEMBER(void, VRDEHidePointer,(HVRDESERVER hServer));
     980
     981    DECLR3CALLBACKMEMBER(void, VRDEAudioSamples,(HVRDESERVER hServer,
     982                                               const void *pvSamples,
     983                                               uint32_t cSamples,
     984                                               VRDEAUDIOFORMAT format));
     985
     986    DECLR3CALLBACKMEMBER(void, VRDEAudioVolume,(HVRDESERVER hServer,
     987                                              uint16_t u16Left,
     988                                              uint16_t u16Right));
     989
     990    DECLR3CALLBACKMEMBER(void, VRDEUSBRequest,(HVRDESERVER hServer,
     991                                             uint32_t u32ClientId,
     992                                             void *pvParm,
     993                                             uint32_t cbParm));
     994
     995    DECLR3CALLBACKMEMBER(void, VRDEClipboard,(HVRDESERVER hServer,
     996                                            uint32_t u32Function,
     997                                            uint32_t u32Format,
     998                                            void *pvData,
     999                                            uint32_t cbData,
     1000                                            uint32_t *pcbActualRead));
     1001
     1002    DECLR3CALLBACKMEMBER(void, VRDEQueryInfo,(HVRDESERVER hServer,
     1003                                            uint32_t index,
     1004                                            void *pvBuffer,
     1005                                            uint32_t cbBuffer,
     1006                                            uint32_t *pcbOut));
     1007
     1008    DECLR3CALLBACKMEMBER(void, VRDERedirect,(HVRDESERVER hServer,
     1009                                             uint32_t u32ClientId,
     1010                                             const char *pszServer,
     1011                                             const char *pszUser,
     1012                                             const char *pszDomain,
     1013                                             const char *pszPassword,
     1014                                             uint32_t u32SessionId,
     1015                                             const char *pszCookie));
     1016
     1017    /*
     1018     * New for version 3.
     1019     */
     1020
     1021    /**
     1022     * Audio input open request.
     1023     *
     1024     * @param hServer      Handle of VRDE server instance.
     1025     * @param u32ClientId  An identifier that allows the server to find the corresponding client.
     1026     * @param pvCtx        To be used in VRDECallbackAudioIn.
     1027     * @param audioFormat  Requested format of audio data.
     1028     *
     1029     * @note Initialized to NULL when the VRDECallbackAudioIn callback is NULL.
     1030     */
     1031    DECLR3CALLBACKMEMBER(void, VRDEAudioInOpen,(HVRDESERVER hServer,
     1032                                                void *pvCtx,
     1033                                                uint32_t u32ClientId,
     1034                                                VRDEAUDIOFORMAT audioFormat));
     1035
     1036    /**
     1037     * Audio input close request.
     1038     *
     1039     * @param hServer      Handle of VRDE server instance.
     1040     * @param u32ClientId  An identifier that allows the server to find the corresponding client.
     1041     *
     1042     * @note Initialized to NULL when the VRDECallbackAudioIn callback is NULL.
     1043     */
     1044    DECLR3CALLBACKMEMBER(void, VRDEAudioInClose,(HVRDESERVER hServer,
     1045                                                 uint32_t u32ClientId));
     1046} VRDEENTRYPOINTS_3;
     1047
     1048
    9361049#define VRDE_QP_NETWORK_PORT      (1)
    9371050#define VRDE_QP_NETWORK_ADDRESS   (2)
     
    11741287/* Callbacks are the same for the version 1 and version 2 interfaces. */
    11751288typedef VRDECALLBACKS_1 VRDECALLBACKS_2;
     1289
     1290/** The VRDE server callbacks. Interface version 3. */
     1291typedef struct _VRDECALLBACKS_3
     1292{
     1293    /* The header. */
     1294    VRDEINTERFACEHDR header;
     1295
     1296    /*
     1297     * Same as in version 2.
     1298     */
     1299    DECLR3CALLBACKMEMBER(int, VRDECallbackProperty,(void *pvCallback,
     1300                                                    uint32_t index,
     1301                                                    void *pvBuffer,
     1302                                                    uint32_t cbBuffer,
     1303                                                    uint32_t *pcbOut));
     1304
     1305    DECLR3CALLBACKMEMBER(int, VRDECallbackClientLogon,(void *pvCallback,
     1306                                                     uint32_t u32ClientId,
     1307                                                     const char *pszUser,
     1308                                                     const char *pszPassword,
     1309                                                     const char *pszDomain));
     1310
     1311    DECLR3CALLBACKMEMBER(void, VRDECallbackClientConnect,(void *pvCallback,
     1312                                                        uint32_t u32ClientId));
     1313
     1314    DECLR3CALLBACKMEMBER(void, VRDECallbackClientDisconnect,(void *pvCallback,
     1315                                                           uint32_t u32ClientId,
     1316                                                           uint32_t fu32Intercepted));
     1317    DECLR3CALLBACKMEMBER(int, VRDECallbackIntercept,(void *pvCallback,
     1318                                                   uint32_t u32ClientId,
     1319                                                   uint32_t fu32Intercept,
     1320                                                   void **ppvIntercept));
     1321
     1322    DECLR3CALLBACKMEMBER(int, VRDECallbackUSB,(void *pvCallback,
     1323                                             void *pvIntercept,
     1324                                             uint32_t u32ClientId,
     1325                                             uint8_t u8Code,
     1326                                             const void *pvRet,
     1327                                             uint32_t cbRet));
     1328
     1329    DECLR3CALLBACKMEMBER(int, VRDECallbackClipboard,(void *pvCallback,
     1330                                                   void *pvIntercept,
     1331                                                   uint32_t u32ClientId,
     1332                                                   uint32_t u32Function,
     1333                                                   uint32_t u32Format,
     1334                                                   const void *pvData,
     1335                                                   uint32_t cbData));
     1336
     1337    DECLR3CALLBACKMEMBER(bool, VRDECallbackFramebufferQuery,(void *pvCallback,
     1338                                                           unsigned uScreenId,
     1339                                                           VRDEFRAMEBUFFERINFO *pInfo));
     1340
     1341    DECLR3CALLBACKMEMBER(void, VRDECallbackFramebufferLock,(void *pvCallback,
     1342                                                          unsigned uScreenId));
     1343
     1344    DECLR3CALLBACKMEMBER(void, VRDECallbackFramebufferUnlock,(void *pvCallback,
     1345                                                            unsigned uScreenId));
     1346
     1347    DECLR3CALLBACKMEMBER(void, VRDECallbackInput,(void *pvCallback,
     1348                                                int type,
     1349                                                const void *pvInput,
     1350                                                unsigned cbInput));
     1351
     1352    DECLR3CALLBACKMEMBER(void, VRDECallbackVideoModeHint,(void *pvCallback,
     1353                                                        unsigned cWidth,
     1354                                                        unsigned cHeight,
     1355                                                        unsigned cBitsPerPixel,
     1356                                                        unsigned uScreenId));
     1357
     1358    /*
     1359     * New for version 3.
     1360     */
     1361
     1362    /**
     1363     * Called by the server when something happens with audio input.
     1364     *
     1365     * @param pvCallback   The callback specific pointer.
     1366     * @param pvCtx        The value passed in VRDEAudioInOpen.
     1367     * @param u32ClientId  Identifies the client that sent the reply.
     1368     * @param u32Event     The event code VRDE_AUDIOIN_*.
     1369     * @param pvData       Points to data received from the client.
     1370     * @param cbData       Size of the data in bytes.
     1371     */
     1372    DECLR3CALLBACKMEMBER(void, VRDECallbackAudioIn,(void *pvCallback,
     1373                                                    void *pvCtx,
     1374                                                    uint32_t u32ClientId,
     1375                                                    uint32_t u32Event,
     1376                                                    const void *pvData,
     1377                                                    uint32_t cbData));
     1378} VRDECALLBACKS_3;
    11761379
    11771380/**
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