Ejemplo n.º 1
0
/**
 * @brief Loads the OpenAL extension methods needed for echo cancellation
 * @param dev OpenAL device used for the output
 * @return True when functions successfully loaded, false otherwise
 */
bool OpenAL2::loadOpenALExtensions(ALCdevice* dev)
{
    // load OpenAL extension functions
    GET_PROC_ADDR(dev, alcLoopbackOpenDeviceSOFT);
    checkAlcError(dev);
    if (!alcLoopbackOpenDeviceSOFT) {
        qDebug() << "Failed to load alcLoopbackOpenDeviceSOFT function!";
        return false;
    }

    GET_PROC_ADDR(dev, alcIsRenderFormatSupportedSOFT);
    checkAlcError(dev);
    if (!alcIsRenderFormatSupportedSOFT) {
        qDebug() << "Failed to load alcIsRenderFormatSupportedSOFT function!";
        return false;
    }

    GET_PROC_ADDR(dev, alGetSourcedvSOFT);
    checkAlcError(dev);
    if (!alGetSourcedvSOFT) {
        qDebug() << "Failed to load alGetSourcedvSOFT function!";
        return false;
    }

    GET_PROC_ADDR(dev, alcRenderSamplesSOFT);
    checkAlcError(dev);
    if (!alcRenderSamplesSOFT) {
        qDebug() << "Failed to load alcRenderSamplesSOFT function!";
        return false;
    }

    return true;
}
Ejemplo n.º 2
0
void
inject_init()
{
    HANDLE kern32 = get_module_handle(L"KERNEL32.DLL");
    ASSERT(kern32 != NULL);
    addr_getprocaddr = (ptr_uint_t) GET_PROC_ADDR(kern32, "GetProcAddress");
    ASSERT(addr_getprocaddr != 0);
    addr_loadlibrarya = (ptr_uint_t) GET_PROC_ADDR(kern32, "LoadLibraryA");
    ASSERT(addr_loadlibrarya != 0);
# ifdef LOAD_DYNAMO_DEBUGBREAK
    addr_debugbreak = (ptr_uint_t) GET_PROC_ADDR(kern32, "DebugBreak");
    ASSERT(addr_debugbreak != NULL);
# endif
    inject_initialized = true;
}
Ejemplo n.º 3
0
bool EnablePrivilege(LPCTSTR privilegeName, bool enable)
{
  bool res = false;

  #ifndef _UNICODE

  HMODULE hModule = ::LoadLibrary(TEXT("Advapi32.dll"));
  if (hModule == NULL)
    return false;
  
  GET_PROC_ADDR(OpenProcessToken, "OpenProcessToken");
  GET_PROC_ADDR(LookupPrivilegeValue, "LookupPrivilegeValueA");
  GET_PROC_ADDR(AdjustTokenPrivileges, "AdjustTokenPrivileges");
  
  if (my_OpenProcessToken &&
      my_AdjustTokenPrivileges &&
      my_LookupPrivilegeValue)
  
  #endif

  {
    HANDLE token;
    if (MY_FUNC_SELECT(OpenProcessToken)(::GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &token))
    {
      TOKEN_PRIVILEGES tp;
      if (MY_FUNC_SELECT(LookupPrivilegeValue)(NULL, privilegeName, &(tp.Privileges[0].Luid)))
      {
        tp.PrivilegeCount = 1;
        tp.Privileges[0].Attributes = (enable ? SE_PRIVILEGE_ENABLED : 0);
        if (MY_FUNC_SELECT(AdjustTokenPrivileges)(token, FALSE, &tp, 0, NULL, NULL))
          res = (GetLastError() == ERROR_SUCCESS);
      }
      ::CloseHandle(token);
    }
  }
    
  #ifndef _UNICODE

  ::FreeLibrary(hModule);
  
  #endif

  return res;
}
Ejemplo n.º 4
0
bool CSensorUSBPhidgets::setupFunctionPointers()
{



#ifdef __USE_DYLIB__
   std::string strPath;
   // setup DLL path, if returns false then DLL doesn't exist at the path where it should
        if (!qcn_util::setDLLPath(strPath, m_cstrDLL)) {
              fprintf(stderr, "Phidgets1056: Cannot set DLL Path %s\n", m_cstrDLL);
                closePort();
                return false;
        }

  #ifdef __USE_DLOPEN__
    m_handleLibrary = dlopen(strPath.c_str(), RTLD_LAZY | RTLD_GLOBAL); // default
    if (!m_handleLibrary) {
       fprintf(stderr, "CSensorUSBPhidgets: dynamic library %s dlopen error %s\n", m_cstrDLL, dlerror());
       return false;
    }
  #else // for Windows or not using dlopen just use the direct phidget lib
    m_handleLibrary = ::LoadLibrary(strPath.c_str());
  #endif
#endif


#ifdef __USE_DYLIB__
	if (!m_handleLibrary) return false;
	m_PtrCPhidget_open = (PtrCPhidget_open) GET_PROC_ADDR(m_handleLibrary, "CPhidget_open");
	m_PtrCPhidget_close = (PtrCPhidget_close) GET_PROC_ADDR(m_handleLibrary, "CPhidget_close");
	m_PtrCPhidget_delete = (PtrCPhidget_delete) GET_PROC_ADDR(m_handleLibrary, "CPhidget_delete");
	m_PtrCPhidget_getDeviceName = (PtrCPhidget_getDeviceName) GET_PROC_ADDR(m_handleLibrary, "CPhidget_getDeviceName");
	m_PtrCPhidget_getSerialNumber = (PtrCPhidget_getSerialNumber) GET_PROC_ADDR(m_handleLibrary, "CPhidget_getSerialNumber");
	m_PtrCPhidget_getDeviceVersion = (PtrCPhidget_getDeviceVersion) GET_PROC_ADDR(m_handleLibrary, "CPhidget_getDeviceVersion");
	m_PtrCPhidget_getDeviceStatus = (PtrCPhidget_getDeviceStatus) GET_PROC_ADDR(m_handleLibrary, "CPhidget_getDeviceStatus");
	m_PtrCPhidget_getLibraryVersion = (PtrCPhidget_getLibraryVersion) GET_PROC_ADDR(m_handleLibrary, "CPhidget_getLibraryVersion");
	m_PtrCPhidget_getDeviceType = (PtrCPhidget_getDeviceType) GET_PROC_ADDR(m_handleLibrary, "CPhidget_getDeviceType");
	m_PtrCPhidget_getDeviceLabel = (PtrCPhidget_getDeviceLabel) GET_PROC_ADDR(m_handleLibrary, "CPhidget_getDeviceLabel");

	m_PtrCPhidget_set_OnAttach_Handler = (PtrCPhidget_set_OnAttach_Handler) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidget_set_OnAttach_Handler");
	m_PtrCPhidget_set_OnDetach_Handler = (PtrCPhidget_set_OnDetach_Handler) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidget_set_OnDetach_Handler");
	m_PtrCPhidget_set_OnError_Handler = (PtrCPhidget_set_OnError_Handler) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidget_set_OnError_Handler");
	
	m_PtrCPhidget_getErrorDescription = (PtrCPhidget_getErrorDescription) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidget_getErrorDescription");
	m_PtrCPhidget_waitForAttachment = (PtrCPhidget_waitForAttachment) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidget_waitForAttachment");

	m_PtrCPhidgetSpatial_create = (PtrCPhidgetSpatial_create) GET_PROC_ADDR(m_handleLibrary, 
                "CPhidgetSpatial_create");
	m_PtrCPhidgetSpatial_getAccelerationAxisCount = (PtrCPhidgetSpatial_getAccelerationAxisCount) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getAccelerationAxisCount");
	m_PtrCPhidgetSpatial_getGyroAxisCount = (PtrCPhidgetSpatial_getGyroAxisCount) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getGyroAxisCount");
	m_PtrCPhidgetSpatial_getCompassAxisCount = (PtrCPhidgetSpatial_getCompassAxisCount) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getCompassAxisCount");
	m_PtrCPhidgetSpatial_getAcceleration = (PtrCPhidgetSpatial_getAcceleration) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getAcceleration");
	m_PtrCPhidgetSpatial_getAccelerationMax = (PtrCPhidgetSpatial_getAccelerationMax) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getAccelerationMax");
	m_PtrCPhidgetSpatial_getAccelerationMin = (PtrCPhidgetSpatial_getAccelerationMin) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getAccelerationMin");
	m_PtrCPhidgetSpatial_getDataRate = (PtrCPhidgetSpatial_getDataRate) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getDataRate");
	m_PtrCPhidgetSpatial_setDataRate = (PtrCPhidgetSpatial_setDataRate) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_setDataRate");
	m_PtrCPhidgetSpatial_getDataRateMax = (PtrCPhidgetSpatial_getDataRateMax) GET_PROC_ADDR(m_handleLibrary, 
               "CPhidgetSpatial_getDataRateMax");
	m_PtrCPhidgetSpatial_getDataRateMin = (PtrCPhidgetSpatial_getDataRateMin) GET_PROC_ADDR(m_handleLibrary, 
                "CPhidgetSpatial_getDataRateMin");
	m_PtrCPhidgetSpatial_set_OnSpatialData_Handler = (PtrCPhidgetSpatial_set_OnSpatialData_Handler) 
              GET_PROC_ADDR(m_handleLibrary, "CPhidgetSpatial_set_OnSpatialData_Handler");
	m_PtrCPhidget_getDeviceID = (PtrCPhidget_getDeviceID) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidget_getDeviceID");

/*
	m_PtrCPhidgetManager_getAttachedDevices = (PtrCPhidgetManager_getAttachedDevices) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidgetManager_getAttachedDevices");
	m_PtrCPhidgetManager_freeAttachedDevicesArray = (PtrCPhidgetManager_freeAttachedDevicesArray) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidgetManager_freeAttachedDevicesArray");
	m_PtrCPhidgetManager_close = (PtrCPhidgetManager_close) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidgetManager_close");
	m_PtrCPhidgetManager_create = (PtrCPhidgetManager_create) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidgetManager_create");
	m_PtrCPhidgetManager_open = (PtrCPhidgetManager_open) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidgetManager_open");
	m_PtrCPhidgetManager_delete = (PtrCPhidgetManager_delete) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidgetManager_delete");
	m_PtrCPhidgetManager_free = (PtrCPhidgetManager_free) GET_PROC_ADDR(m_handleLibrary,
		   "CPhidgetManager_free");
*/
        m_PtrCPhidget_enableLogging = (PtrCPhidget_enableLogging) GET_PROC_ADDR(m_handleLibrary, "CPhidget_enableLogging");
        m_PtrCPhidget_disableLogging = (PtrCPhidget_disableLogging) GET_PROC_ADDR(m_handleLibrary, "CPhidget_disableLogging");
        m_PtrCPhidget_log = (PtrCPhidget_log) GET_PROC_ADDR(m_handleLibrary, "CPhidget_log");

#else   // static lib - just get pointers to the function entry points
        m_PtrCPhidget_open = (PtrCPhidget_open) CPhidget_open;
        m_PtrCPhidget_close = (PtrCPhidget_close) CPhidget_close;
        m_PtrCPhidget_delete = (PtrCPhidget_delete) CPhidget_delete;
        m_PtrCPhidget_getDeviceName = (PtrCPhidget_getDeviceName) CPhidget_getDeviceName;
        m_PtrCPhidget_getSerialNumber = (PtrCPhidget_getSerialNumber) CPhidget_getSerialNumber;
        m_PtrCPhidget_getDeviceVersion = (PtrCPhidget_getDeviceVersion) CPhidget_getDeviceVersion;
        m_PtrCPhidget_getDeviceStatus = (PtrCPhidget_getDeviceStatus) CPhidget_getDeviceStatus;
        m_PtrCPhidget_getLibraryVersion = (PtrCPhidget_getLibraryVersion) CPhidget_getLibraryVersion;
        m_PtrCPhidget_getDeviceType = (PtrCPhidget_getDeviceType) CPhidget_getDeviceType;
        m_PtrCPhidget_getDeviceLabel = (PtrCPhidget_getDeviceLabel) CPhidget_getDeviceLabel;

        m_PtrCPhidget_set_OnAttach_Handler = (PtrCPhidget_set_OnAttach_Handler) CPhidget_set_OnAttach_Handler;
        m_PtrCPhidget_set_OnDetach_Handler = (PtrCPhidget_set_OnDetach_Handler) CPhidget_set_OnDetach_Handler;
        m_PtrCPhidget_set_OnError_Handler = (PtrCPhidget_set_OnError_Handler) CPhidget_set_OnError_Handler;

        m_PtrCPhidget_getErrorDescription = (PtrCPhidget_getErrorDescription) CPhidget_getErrorDescription;
        m_PtrCPhidget_waitForAttachment = (PtrCPhidget_waitForAttachment) CPhidget_waitForAttachment;

        m_PtrCPhidgetSpatial_create = (PtrCPhidgetSpatial_create) CPhidgetSpatial_create;
        m_PtrCPhidgetSpatial_getAccelerationAxisCount = (PtrCPhidgetSpatial_getAccelerationAxisCount) CPhidgetSpatial_getAccelerationAxisCount;
        m_PtrCPhidgetSpatial_getGyroAxisCount = (PtrCPhidgetSpatial_getGyroAxisCount) CPhidgetSpatial_getGyroAxisCount;
        m_PtrCPhidgetSpatial_getCompassAxisCount = (PtrCPhidgetSpatial_getCompassAxisCount) CPhidgetSpatial_getCompassAxisCount;
        m_PtrCPhidgetSpatial_getAcceleration = (PtrCPhidgetSpatial_getAcceleration) CPhidgetSpatial_getAcceleration;
        m_PtrCPhidgetSpatial_getAccelerationMax = (PtrCPhidgetSpatial_getAccelerationMax) CPhidgetSpatial_getAccelerationMax;
        m_PtrCPhidgetSpatial_getAccelerationMin = (PtrCPhidgetSpatial_getAccelerationMin) CPhidgetSpatial_getAccelerationMin;
        m_PtrCPhidgetSpatial_getDataRate = (PtrCPhidgetSpatial_getDataRate) CPhidgetSpatial_getDataRate;
        m_PtrCPhidgetSpatial_setDataRate = (PtrCPhidgetSpatial_setDataRate) CPhidgetSpatial_setDataRate;
        m_PtrCPhidgetSpatial_getDataRateMax = (PtrCPhidgetSpatial_getDataRateMax) CPhidgetSpatial_getDataRateMax;
        m_PtrCPhidgetSpatial_getDataRateMin = (PtrCPhidgetSpatial_getDataRateMin) CPhidgetSpatial_getDataRateMin;
        m_PtrCPhidgetSpatial_set_OnSpatialData_Handler = (PtrCPhidgetSpatial_set_OnSpatialData_Handler)
              CPhidgetSpatial_set_OnSpatialData_Handler;
        m_PtrCPhidget_getDeviceID = (PtrCPhidget_getDeviceID) 
                   CPhidget_getDeviceID;

/*
        m_PtrCPhidgetManager_getAttachedDevices = (PtrCPhidgetManager_getAttachedDevices) 
                   CPhidgetManager_getAttachedDevices;
        m_PtrCPhidgetManager_freeAttachedDevicesArray = (PtrCPhidgetManager_freeAttachedDevicesArray) 
                   CPhidgetManager_freeAttachedDevicesArray;
        m_PtrCPhidgetManager_close = (PtrCPhidgetManager_close) 
                   CPhidgetManager_close;
        m_PtrCPhidgetManager_create = (PtrCPhidgetManager_create) 
                   CPhidgetManager_create;
        m_PtrCPhidgetManager_open = (PtrCPhidgetManager_open) 
                   CPhidgetManager_open;
        m_PtrCPhidgetManager_delete = (PtrCPhidgetManager_delete) 
                   CPhidgetManager_delete;
        m_PtrCPhidgetManager_free = (PtrCPhidgetManager_free) 
                   CPhidgetManager_free;
*/
        m_PtrCPhidget_enableLogging = (PtrCPhidget_enableLogging) CPhidget_enableLogging;
        m_PtrCPhidget_disableLogging = (PtrCPhidget_disableLogging) CPhidget_disableLogging;
        m_PtrCPhidget_log = (PtrCPhidget_log) CPhidget_log;

#endif

	// test that some choice functions aren't null
	return (bool) (m_PtrCPhidget_open && m_PtrCPhidget_close && m_PtrCPhidget_waitForAttachment && m_PtrCPhidget_set_OnAttach_Handler 
				   && m_PtrCPhidgetSpatial_getAccelerationAxisCount && m_PtrCPhidgetSpatial_getAcceleration && m_PtrCPhidgetSpatial_getDataRate);
}