本文整理汇总了C++中PsychCopyInIntegerArg函数的典型用法代码示例。如果您正苦于以下问题:C++ PsychCopyInIntegerArg函数的具体用法?C++ PsychCopyInIntegerArg怎么用?C++ PsychCopyInIntegerArg使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PsychCopyInIntegerArg函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PSYCHHIDGiveMeReports
PsychError PSYCHHIDGiveMeReports(void)
{
PsychGenericScriptType *outErr;
const char *fieldNames[] = {"n", "name", "description"};
char *name = "", *description = "";
long error = 0;
int deviceIndex;
int reportBytes = 1024;
PsychPushHelp(useString,synopsisString,seeAlsoString);
if (PsychIsGiveHelp()) { PsychGiveHelp(); return(PsychError_none); };
PsychErrorExit(PsychCapNumOutputArgs(2));
PsychErrorExit(PsychCapNumInputArgs(2));
PsychCopyInIntegerArg(1,TRUE,&deviceIndex);
PsychCopyInIntegerArg(2,false,&reportBytes);
PsychHIDVerifyInit();
// Returns 1st return argument 'reports':
error = GiveMeReports(deviceIndex,reportBytes); // PsychHIDReceiveReports.c
// Return 2nd return argument 'err' struct:
PsychHIDErrors(NULL, error, &name, &description);
PsychAllocOutStructArray(2, kPsychArgOptional, -1, 3, fieldNames, &outErr);
PsychSetStructArrayStringElement("name", 0, name, outErr);
PsychSetStructArrayStringElement("description", 0, description, outErr);
PsychSetStructArrayDoubleElement("n", 0, (double) error, outErr);
return(PsychError_none);
}
示例2: SCREENSetMouseHelper
PsychError SCREENSetMouseHelper(void)
{
int screenNumber;
int xPos, yPos;
int deviceIdx = -1;
int detachFromMouse = 0;
//all subfunctions should have these two lines.
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()){PsychGiveHelp();return(PsychError_none);};
PsychErrorExit(PsychCapNumInputArgs(5)); //The maximum number of inputs
PsychErrorExit(PsychCapNumOutputArgs(0)); //The maximum number of outputs
PsychCopyInScreenNumberArg(1, TRUE, &screenNumber);
PsychCopyInIntegerArg(2,TRUE, &xPos);
PsychCopyInIntegerArg(3,TRUE, &yPos);
PsychCopyInIntegerArg(4,FALSE, &deviceIdx);
PsychCopyInIntegerArg(5,FALSE, &detachFromMouse);
// Position the cursor. On OSX this will also automatically attach it
// to mouse movement:
PsychPositionCursor(screenNumber, xPos, yPos, deviceIdx);
#if PSYCH_SYSTEM == PSYCH_OSX
if (detachFromMouse) CGAssociateMouseAndMouseCursorPosition(false);
#endif
return(PsychError_none);
}
示例3: PSYCHHIDOpenUSBDevice
PsychError PSYCHHIDOpenUSBDevice(void)
{
PsychUSBSetupSpec deviceSpec;
int deviceID, vendorID, configurationId;
int errcode;
int usbHandle = -1;
PsychUSBDeviceRecord *usbDev = NULL;
// 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(3));
PsychErrorExit(PsychRequireNumInputArgs(2));
PsychErrorExit(PsychCapNumOutputArgs(1));
// Grab the mandatory vendor and device IDs.
PsychCopyInIntegerArg(1, TRUE, &vendorID);
PsychCopyInIntegerArg(2, TRUE, &deviceID);
// Try to get free slot in internal device bank: This will error-exit if no capacity left.
usbDev = PsychHIDGetFreeUSBDeviceSlot(&usbHandle);
// Setup specification of wanted device:
// So far we only match against vendorID and deviceID, but may want to extend this
// to more options in the future. That's why its passed via a PsychUSBSetupSpec struct.
// -> Can rather easily extend that struct (and corresponding open routines) with new
// fields without major code rewrites in other places.
deviceSpec.vendorID = vendorID;
deviceSpec.deviceID = deviceID;
// This is the index of the device configuration to choose: Defaults to zero.
configurationId = 0;
PsychCopyInIntegerArg(3, FALSE, &configurationId);
deviceSpec.configurationID = (int) configurationId;
// Try to open the device. This will init the device structure properly and
// also set the valid flag to "active/open" if open succeeds:
if (!PsychHIDOSOpenUSBDevice(usbDev, &errcode, &deviceSpec)) {
// MK TODO: We don't set or use 'errcode' yet.
PsychErrorExitMsg(PsychError_user, "Failed to open the specified type of generic USB device. Make sure it is plugged in or not already open.");
}
// Return device handle:
PsychCopyOutDoubleArg(1, FALSE, (double) usbHandle);
return PsychError_none;
}
示例4: SCREENStopVideoCapture
PsychError SCREENStopVideoCapture(void)
{
int capturehandle = -1;
int dropped;
// All sub functions should have these two lines
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()) {PsychGiveHelp(); return(PsychError_none);};
PsychErrorExit(PsychCapNumInputArgs(1)); // Max. 1 input args.
PsychErrorExit(PsychRequireNumInputArgs(1)); // Min. 1 input args required.
PsychErrorExit(PsychCapNumOutputArgs(1)); // One output arg.
// Get the handle:
PsychCopyInIntegerArg(1, TRUE, &capturehandle);
if (capturehandle==-1) {
PsychErrorExitMsg(PsychError_user, "StopVideoCapture called without valid handle to a capture object.");
}
// Try to stop capture:
dropped = PsychVideoCaptureRate(capturehandle, 0, 0, NULL);
PsychCopyOutDoubleArg(1, FALSE, dropped);
// Ready!
return(PsychError_none);
}
示例5: IOPORTConfigureSerialPort
// Open a serial port on a serial port device:
PsychError IOPORTConfigureSerialPort(void)
{
static char useString[] = "IOPort('ConfigureSerialPort', handle, configString);";
static char synopsisString[] =
"(Re-)Configure a serial port device, specified by 'handle'.\n"
"The string 'configString' is a string with pairs of paramName=paramValue "
"tokens, separated by a delimiter, e.g., a space. It allows to specify specific "
"values 'paramValue' to specific serial port parameters 'paramName'. Not all "
"parameters are supported by all operating systems, and all settings have reasonable "
"defaults. Settings unknown to a specific operating system are ignored.\n\n"
"See the help of 'OpenSerialPort' for possible settings.";
static char seeAlsoString[] = "'OpenSerialPort'";
char* configString = NULL;
PsychSerialDeviceRecord* device = NULL;
int handle;
// Setup online help:
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()) {PsychGiveHelp(); return(PsychError_none); };
PsychErrorExit(PsychCapNumInputArgs(2)); // The maximum number of inputs
PsychErrorExit(PsychRequireNumInputArgs(2)); // The required number of inputs
PsychErrorExit(PsychCapNumOutputArgs(0)); // The maximum number of outputs
// Get required portSpec:
PsychCopyInIntegerArg(1, kPsychArgRequired, &handle);
// Get the configString:
PsychAllocInCharArg(2, kPsychArgRequired, &configString);
// Return return value of configuration call:
return(PsychIOOSConfigureSerialPort(PsychGetPortIORecord(handle)->device, configString));
}
示例6: SCREENCloseMovie
PsychError SCREENCloseMovie(void)
{
int moviehandle = -1;
// All sub functions should have these two lines
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()) {PsychGiveHelp(); return(PsychError_none);};
PsychErrorExit(PsychCapNumInputArgs(1)); // Max. 1 input args.
PsychErrorExit(PsychRequireNumInputArgs(1)); // Min. 1 input args required.
PsychErrorExit(PsychCapNumOutputArgs(0)); // No output args.
// Get the window record from the window record argument and get info from the window record
//PsychAllocInWindowRecordArg(kPsychUseDefaultArgPosition, TRUE, &windowRecord);
// Get the movie handle:
PsychCopyInIntegerArg(1, TRUE, &moviehandle);
if (moviehandle==-1) {
PsychErrorExitMsg(PsychError_user, "CloseMovie called without valid handle to a movie object.");
}
// Try to delete the movie object, releasing all associated ressources:
PsychDeleteMovie(moviehandle);
return(PsychError_none);
}
示例7: IOPORTVerbosity
PsychError IOPORTVerbosity(void)
{
static char useString[] = "oldlevel = IOPort('Verbosity' [,level]);";
static char synopsisString[] =
"Set level of verbosity for error/warning/status messages. 'level' optional, new level "
"of verbosity. 'oldlevel' is the old level of verbosity. The following levels are "
"supported: 0 = Shut up. 1 = Print errors, 2 = Print also warnings, 3 = Print also some info, "
"4 = Print more useful info (default), >5 = Be very verbose (mostly for debugging the driver itself). ";
static char seeAlsoString[] = "";
int level= -1;
// Setup online help:
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()) {PsychGiveHelp(); return(PsychError_none); };
PsychErrorExit(PsychCapNumInputArgs(1)); // The maximum number of inputs
PsychErrorExit(PsychRequireNumInputArgs(0)); // The required number of inputs
PsychErrorExit(PsychCapNumOutputArgs(1)); // The maximum number of outputs
PsychCopyInIntegerArg(1, kPsychArgOptional, &level);
if (level < -1) PsychErrorExitMsg(PsychError_user, "Invalid level of verbosity provided. Valid are levels of zero and greater.");
// Return current/old level:
PsychCopyOutDoubleArg(1, kPsychArgOptional, (double) verbosity);
// Set new level, if one was provided:
if (level > -1) verbosity = level;
return(PsychError_none);
}
示例8: PSYCHHIDKbCheck
PsychError PSYCHHIDKbCheck(void)
{
int deviceIndex;
int m, n, p;
double *scanList = NULL;
psych_bool isDeviceSpecified;
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()){PsychGiveHelp();return(PsychError_none);};
PsychErrorExit(PsychCapNumOutputArgs(3));
PsychErrorExit(PsychCapNumInputArgs(2));
// Choose the device index and its record
isDeviceSpecified=PsychCopyInIntegerArg(1, FALSE, &deviceIndex);
if (!isDeviceSpecified) {
// set the keyboard or keypad device to be the first keyboard device or, if no keyboard, the first keypad
deviceIndex = INT_MAX;
}
// Optional 2nd argument 'scanlist' provided?
if (PsychAllocInDoubleMatArg(2, FALSE, &m, &n, &p, &scanList)) {
// Yep. Matching size?
if (p!=1 || m * n != 256) PsychErrorExitMsg(PsychError_user, "Provided 'scanList' parameter is not a vector of 256 doubles, as required!");
}
return(PsychHIDOSKbCheck(deviceIndex, scanList));
}
示例9: SCREENRect
PsychError SCREENRect(void)
{
PsychWindowRecordType *windowRecord;
int screenNumber;
PsychRectType rect;
int realFBSize = 0;
//all sub functions should have these two lines
PsychPushHelp(useString, synopsisString,seeAlsoString);
if(PsychIsGiveHelp()){PsychGiveHelp();return(PsychError_none);};
//check for superfluous arguments
PsychErrorExit(PsychCapNumInputArgs(2)); //The maximum number of inputs
PsychErrorExit(PsychRequireNumInputArgs(1)); //Insist that the argument be present.
PsychErrorExit(PsychCapNumOutputArgs(1)); //The maximum number of outputs
// Get optional 'realFBSize' flag: Defaults to zero.
PsychCopyInIntegerArg(2, FALSE, &realFBSize);
if(PsychIsScreenNumberArg(1)){
PsychCopyInScreenNumberArg(1, TRUE, &screenNumber);
PsychGetScreenRect(screenNumber, rect);
PsychCopyOutRectArg(1, FALSE, rect);
}else if(PsychIsWindowIndexArg(1)){
PsychAllocInWindowRecordArg(1, TRUE, &windowRecord);
PsychOSProcessEvents(windowRecord, 0);
PsychCopyOutRectArg(1, FALSE, (realFBSize) ? windowRecord->rect : windowRecord->clientrect);
}else
PsychErrorExitMsg(PsychError_user, "Argument was recognized as neither a window index nor a screen pointer");
return(PsychError_none);
}
示例10: IOPORTClose
// Close given port.
PsychError IOPORTClose(void)
{
static char useString[] = "IOPort('Close', handle);";
static char synopsisString[] =
"Close a I/O port device 'handle'. This works for all device types.\n";
static char seeAlsoString[] = "'CloseAll'";
int handle;
// Setup online help:
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()) {PsychGiveHelp(); return(PsychError_none); };
PsychErrorExit(PsychCapNumInputArgs(1)); // The maximum number of inputs
PsychErrorExit(PsychRequireNumInputArgs(1)); // The required number of inputs
PsychErrorExit(PsychCapNumOutputArgs(0)); // The maximum number of outputs
// Get handle:
PsychCopyInIntegerArg(1, kPsychArgRequired, &handle);
// Close associated port:
PsychCloseIOPort(handle);
return(PsychError_none);
}
示例11: PSYCHHIDKbTriggerWait
PsychError PSYCHHIDKbTriggerWait(void)
{
int deviceIndex;
int numScankeys;
int* scanKeys;
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()){PsychGiveHelp();return(PsychError_none);};
PsychErrorExit(PsychCapNumOutputArgs(1));
PsychErrorExit(PsychCapNumInputArgs(2)); //Specify trigger key code and the deviceNumber of the keyboard or keypad to scan.
// Identify the mandatory trigger array:
if (!PsychAllocInIntegerListArg(1, TRUE, &numScankeys, &scanKeys)){
PsychErrorExitMsg(PsychError_user, "Keycode is required.");
}
// Get optional deviceIndex:
if (!PsychCopyInIntegerArg(2, FALSE, &deviceIndex)) deviceIndex = -1;
// Execute:
PsychHIDOSKbTriggerWait(deviceIndex, numScankeys, scanKeys);
return(PsychError_none);
}
示例12: SCREENTextStyle
PsychError SCREENTextStyle(void)
{
boolean doSetStyle;
PsychWindowRecordType *windowRecord;
int oldTextStyle, newTextStyle;
//all subfunctions should have these two lines.
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()){PsychGiveHelp();return(PsychError_none);};
//check for valid number of arguments
PsychErrorExit(PsychRequireNumInputArgs(1));
PsychErrorExit(PsychCapNumInputArgs(2));
PsychErrorExit(PsychCapNumOutputArgs(1));
//Get the window record
PsychAllocInWindowRecordArg(kPsychUseDefaultArgPosition, TRUE, &windowRecord);
//Save the old text size value and return it.
oldTextStyle=windowRecord->textAttributes.textStyle;
PsychCopyOutDoubleArg(1, FALSE, (double)oldTextStyle);
//Fetch and set the new size if it is specified.
doSetStyle= PsychCopyInIntegerArg(2, FALSE, &newTextStyle);
if(doSetStyle)
windowRecord->textAttributes.textStyle=newTextStyle;
return(PsychError_none);
}
示例13: SCREENFinalizeMovie
PsychError SCREENFinalizeMovie(void)
{
static char useString[] = "Screen('FinalizeMovie', moviePtr);";
static char synopsisString[] = "Finish creating a new movie file with handle 'moviePtr' and store it to filesystem.\n";
static char seeAlsoString[] = "CreateMovie AddFrameToMovie CloseMovie PlayMovie GetMovieImage GetMovieTimeIndex SetMovieTimeIndex";
int moviehandle = -1;
// All sub functions should have these two lines
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()) {PsychGiveHelp(); return(PsychError_none);};
PsychErrorExit(PsychCapNumInputArgs(1)); // Max. 3 input args.
PsychErrorExit(PsychRequireNumInputArgs(1)); // Min. 2 input args required.
PsychErrorExit(PsychCapNumOutputArgs(0)); // Max. 1 output args.
// Get the moviehandle:
PsychCopyInIntegerArg(1, kPsychArgRequired, &moviehandle);
// Finalize the movie:
if (!PsychFinalizeNewMovieFile(moviehandle)) {
PsychErrorExitMsg(PsychError_user, "FinalizeMovie failed for reason mentioned above.");
}
return(PsychError_none);
}
示例14: PSYCHHIDReceiveReportsStop
PsychError PSYCHHIDReceiveReportsStop(void)
{
long error=0;
int deviceIndex;
mxArray **outErr;
PsychPushHelp(useString,synopsisString,seeAlsoString);
if(PsychIsGiveHelp()){PsychGiveHelp();return(PsychError_none);};
PsychErrorExit(PsychCapNumOutputArgs(1));
PsychErrorExit(PsychCapNumInputArgs(1));
PsychCopyInIntegerArg(1,TRUE,&deviceIndex);
error=ReceiveReportsStop(deviceIndex);
outErr=PsychGetOutArgMxPtr(1);
if(outErr!=NULL){
char *name="",*description="";
const char *fieldNames[]={"n", "name", "description"};
mxArray *fieldValue;
PsychHIDErrors(NULL, error,&name,&description); // Get error name and description, if available.
*outErr=mxCreateStructMatrix(1,1,3,fieldNames);
fieldValue=mxCreateString(name);
if(fieldValue==NULL)PrintfExit("Couldn't allocate \"err\".");
mxSetField(*outErr,0,"name",fieldValue);
fieldValue=mxCreateString(description);
if(fieldValue==NULL)PrintfExit("Couldn't allocate \"err\".");
mxSetField(*outErr,0,"description",fieldValue);
fieldValue=mxCreateDoubleMatrix(1,1,mxREAL);
if(fieldValue==NULL)PrintfExit("Couldn't allocate \"err\".");
*mxGetPr(fieldValue)=(double)error;
mxSetField(*outErr,0,"n",fieldValue);
}
return(PsychError_none);
}
示例15: SCREENStartVideoCapture
PsychError SCREENStartVideoCapture(void)
{
int capturehandle = -1;
double captureFPS = 25;
int dropframes = 0;
double starttime = 0;
// All sub functions should have these two lines
PsychPushHelp(useString, synopsisString, seeAlsoString);
if(PsychIsGiveHelp()) {PsychGiveHelp(); return(PsychError_none);};
PsychErrorExit(PsychCapNumInputArgs(4)); // Max. 4 input args.
PsychErrorExit(PsychRequireNumInputArgs(1)); // Min. 1 input args required.
PsychErrorExit(PsychCapNumOutputArgs(2)); // Max. 2 output args.
// Get the handle:
PsychCopyInIntegerArg(1, TRUE, &capturehandle);
if (capturehandle==-1) {
PsychErrorExitMsg(PsychError_user, "StartVideoCapture called without valid handle to a capture object.");
}
PsychCopyInDoubleArg(2, FALSE, &captureFPS);
if (captureFPS<=0) {
PsychErrorExitMsg(PsychError_user, "StartVideoCapture called with a negative capture rate.");
}
PsychCopyInIntegerArg(3, FALSE, &dropframes);
if (dropframes<0) {
PsychErrorExitMsg(PsychError_user, "StartVideoCapture called with invalid (negative) dropframes - argument.");
}
PsychCopyInDoubleArg(4, FALSE, &starttime);
if (starttime<0) {
PsychErrorExitMsg(PsychError_user, "StartVideoCapture called with invalid (negative) startAt - argument.");
}
// Try to start capture:
captureFPS = (double) PsychVideoCaptureRate(capturehandle, captureFPS, dropframes, &starttime);
PsychCopyOutDoubleArg(1, FALSE, captureFPS);
PsychCopyOutDoubleArg(2, FALSE, starttime);
// Ready!
return(PsychError_none);
}