VirtualBox

source: vbox/trunk/src/VBox/Main/include/UsbWebcamInterface.h@ 44327

Last change on this file since 44327 was 44281, checked in by vboxsync, 12 years ago

export to OSE

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1/* $Id: UsbWebcamInterface.h 44281 2013-01-14 08:42:53Z vboxsync $ */
2/** @file
3 * VirtualBox PDM Driver for Emulated USB Webcam
4 */
5
6/*
7 * Copyright (C) 2011-2012 Oracle Corporation
8 *
9 * Oracle Corporation confidential
10 * All rights reserved
11 */
12
13#ifndef ____H_USBWEBCAMINTERFACE
14#define ____H_USBWEBCAMINTERFACE
15
16#include <VBox/vmm/pdmdrv.h>
17#define VRDE_VIDEOIN_WITH_VRDEINTERFACE /* Get the VRDE interface definitions. */
18#include <VBox/RemoteDesktop/VRDEVideoIn.h>
19
20class Console;
21typedef struct EMWEBCAMDRV EMWEBCAMDRV;
22typedef struct EMWEBCAMREMOTE EMWEBCAMREMOTE;
23
24class EmWebcam
25{
26 public:
27 EmWebcam(Console *console);
28 virtual ~EmWebcam();
29
30 static const PDMDRVREG DrvReg;
31 EMWEBCAMDRV *mpDrv;
32
33 void EmWebcamDestruct(EMWEBCAMDRV *pDrv);
34
35 /* Callbacks. */
36 void EmWebcamCbNotify(uint32_t u32Id, const void *pvData, uint32_t cbData);
37 void EmWebcamCbDeviceDesc(int rcRequest, void *pDeviceCtx, void *pvUser,
38 const VRDEVIDEOINDEVICEDESC *pDeviceDesc, uint32_t cbDeviceDesc);
39 void EmWebcamCbControl(int rcRequest, void *pDeviceCtx, void *pvUser,
40 const VRDEVIDEOINCTRLHDR *pControl, uint32_t cbControl);
41 void EmWebcamCbFrame(int rcRequest, void *pDeviceCtx,
42 const VRDEVIDEOINPAYLOADHDR *pFrame, uint32_t cbFrame);
43
44 /* Methods for the PDM driver. */
45 int SendControl(EMWEBCAMDRV *pDrv, void *pvUser, uint64_t u64DeviceId,
46 const VRDEVIDEOINCTRLHDR *pControl, uint32_t cbControl);
47
48 private:
49 static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
50 static DECLCALLBACK(int) drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
51 static DECLCALLBACK(void) drvDestruct(PPDMDRVINS pDrvIns);
52
53 Console * const mParent;
54
55 EMWEBCAMREMOTE *mpRemote;
56 uint64_t volatile mu64DeviceIdSrc;
57};
58
59#endif /* !____H_USBWEBCAMINTERFACE */
60/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

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