/** * Returns whether the currently active device portfolio can accept absolute * mouse events. * * @returns COM status code * @param absoluteSupported address of result variable */ STDMETHODIMP Mouse::COMGETTER(AbsoluteSupported) (BOOL *absoluteSupported) { if (!absoluteSupported) return E_POINTER; AutoCaller autoCaller(this); if (FAILED(autoCaller.rc())) return autoCaller.rc(); *absoluteSupported = supportsAbs(); return S_OK; }
/** Check what sort of reporting can be done using the devices currently * enabled (including the VMM device) and notify the guest and the front-end. */ void Mouse::sendMouseCapsNotifications(void) { bool fAbsDev, fRelDev, fCanAbs, fNeedsHostCursor; { AutoReadLock aLock(this COMMA_LOCKVAL_SRC_POS); getDeviceCaps(&fAbsDev, &fRelDev); fCanAbs = supportsAbs(); fNeedsHostCursor = guestNeedsHostCursor(); } if (fAbsDev) updateVMMDevMouseCaps(VMMDEV_MOUSE_HOST_HAS_ABS_DEV, 0); else updateVMMDevMouseCaps(0, VMMDEV_MOUSE_HOST_HAS_ABS_DEV); /** @todo this call takes the Console lock in order to update the cached * callback data atomically. However I can't see any sign that the cached * data is ever used again. */ mParent->onMouseCapabilityChange(fCanAbs, fRelDev, fNeedsHostCursor); }