void Exit(){ RelinquishVJD(iInterface); defense_mind_input->exit = true; attack_mind_input->exit = true; CloseHandle(processHandle); guiClose(); }
stick_t* acquire_stick() { stick_t* stick = (stick_t*)malloc(sizeof (stick_t)); stick->device_id = 0; if (!vJoyEnabled()) { printf("Couldn't connect to vJoy. " "Make sure vJoy is installed and enabled"); exit(0); } else { printf("vJoy enabled.\n"); printf(" - Vendor: %s\n - Product: %s\n - Version: %s\n", (const char*)GetvJoyManufacturerString(), (const char*)GetvJoyProductString(), (const char*)GetvJoySerialNumberString() ); } UINT i; for (i = DEFAULT_VJOY_DEV_ID; i <= MAX_VJOY_DEV_ID; i++) { VjdStat status = GetVJDStatus(i); if (status == VJD_STAT_OWN || status == VJD_STAT_FREE) { stick->device_id = i; break; } } if (stick->device_id == 0) { printf("No available vJoy devices."); exit(0); } if (!AcquireVJD(stick->device_id)) { printf("Failed to acquire vJoy device %i", stick->device_id); RelinquishVJD(stick->device_id); exit(0); } else { printf("Acquired vJoy device %i", stick->device_id); } return stick; }
void destroy_stick(stick_t* stick) { RelinquishVJD(stick->device_id); free(stick); }
vJoy::~vJoy() { RelinquishVJD(vID); delete debugStream; delete vLogsStr; }