EmulatedUSBImpl.cpp revision 3c8ad0020c82e3ff4f3daad0d8cf2ef39085cbca
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Emulated USB manager implementation.
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync * Copyright (C) 2013 Oracle Corporation
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * available from http://www.virtualbox.org. This file is free software;
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * you can redistribute it and/or modify it under the terms of the GNU
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * General Public License (GPL) as published by the Free Software
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define LOG_GROUP_MAIN_OVERRIDE LOG_GROUP_MAIN_EMULATEDUSB
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Emulated USB webcam device instance.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsynctypedef std::map <Utf8Str, Utf8Str> EUSBSettingsMap;
void *mpvObject;
~EUSBWEBCAM()
void Release(void)
void *pvObject);
const char *pszDriver);
/* static */ DECLCALLBACK(int) EUSBWEBCAM::emulatedWebcamAttach(PUVM pUVM, EUSBWEBCAM *pThis, const char *pszDriver)
return rc;
void *pvObject)
return hrc;
return hrc;
const char *pszDriver)
return hrc;
pUVM, this);
return hrc;
return BaseFinalConstruct();
uninit();
return S_OK;
p->Release();
size_t i;
return hrc;
const char *pszDriver,
void *pvObject)
p->AddRef();
p->Release();
return hrc;
p->Release();
return hrc;
/* static */ DECLCALLBACK(int) EmulatedUSB::eusbCallbackEMT(EmulatedUSB *pThis, char *pszId, uint32_t iEvent,
if (iEvent == 0)
return rc;
/* static */ DECLCALLBACK(int) EmulatedUSB::eusbCallback(void *pv, const char *pszId, uint32_t iEvent,
/* Make a copy of parameters, forward to EMT and leave the callback to not hold any lock in the device. */
if (cbData > 0)
if (!pvDataCopy)
if (!pvIdCopy)
return rc;
return hr;