File: PsychHIDCloseUSBDevice.c

package info (click to toggle)
psychtoolbox-3 3.0.19.14.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,796 kB
  • sloc: ansic: 176,245; cpp: 20,103; objc: 5,393; sh: 2,753; python: 1,397; php: 384; makefile: 193; java: 113
file content (51 lines) | stat: -rw-r--r-- 1,523 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
 * PsychSourceGL/Source/Common/PsychHID/PsychHIDCloseUSBDevice.c
 *
 * PROJECTS: PsychHID
 *
 * PLATFORMS:   All.
 *
 * AUTHORS:
 *
 * chrg@sas.upenn.edu           cgb
 * mario.kleiner.de@gmail.com   mk
 *
 * HISTORY:
 *
 * 4.4.2009     Created.
 */

#include "PsychHID.h"

static char useString[] = "PsychHID('CloseUSBDevice' [, usbHandle])";
//                                                      1
static char synopsisString[] =  "Closes a generic USB device specified by 'usbHandle'. "
                                "Closes all generic USB devices if 'usbHandle' is omitted. ";
static char seeAlsoString[] =   "OpenUSBDevice";

PsychError PSYCHHIDCloseUSBDevice(void)
{
    int usbHandle;

    // Setup the help features.
    PsychPushHelp(useString, synopsisString, seeAlsoString);
    if (PsychIsGiveHelp()) { PsychGiveHelp(); return PsychError_none; }

    // Make sure the correct number of input arguments is supplied:
    PsychErrorExit(PsychCapNumInputArgs(1));
    PsychErrorExit(PsychRequireNumInputArgs(0));
    PsychErrorExit(PsychCapNumOutputArgs(0));

    // Grab the optional device handle:
    if (PsychCopyInIntegerArg(1, FALSE, &usbHandle)) {
        // Specific device given. Try to close it. This will error-out if no such
        // device is open:
        PsychHIDOSCloseUSBDevice(PsychHIDGetUSBDevice(usbHandle));
    }
    else {
        // No specific handle given: Close and release all open generic USB devices:
        PsychHIDCloseAllUSBDevices();
    }

    return PsychError_none;
}