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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
/*
PsychToolbox3/Source/Common/PsychInit.c
AUTHORS:
Allen.Ingling@nyu.edu awi
mario.kleiner.de@gmail.com mk
PLATFORMS: All
PROJECTS: All
HISTORY:
08/25/02 awi wrote it.
03/24/08 mk Add call to PsychExitTimeGlue() and some cleanup.
DESCRIPTION:
Holds the master initialization and shutdown for the Psychtoolbox function.
Sub-section hold their own inits which are called by the master
init function contained herein. After the Psychtoolbox library
has initialzed itself in then invokes the project init which
must be named PsychModuleInit().
Each PsychToolbox module should register its subfuctions within
its PsychModuleInit().
*/
#include "Psych.h"
PsychError PsychInit(void)
{
// Assign distinctive name to master thread:
PsychSetThreadName("PTB mainthread");
// Record thread id of master thread:
PsychInitMasterThreadId();
// First init Psychtoolbox libraries:
InitPsychError();
InitPsychAuthorList();
PsychInitTimeGlue();
// Registration of the Psychtoolbox exit function is
// done in PsychScriptingGlueXXX.c because how that is done is
// specific to the scripting environment. Note that registration
// of the project exit function is done within the project init.
// Then call the project init.
PsychModuleInit();
return(PsychError_none);
}
/* PsychExit is the function invoked last before the module is
purged. It is abstracted to be unspecific to the scripting
language. The XXX language-specific versions are named
PsychExitGlue() and they are found in PsychScriptingXXX.c
*/
PsychError PsychExit(void)
{
PsychFunctionPtr projectExit;
projectExit = PsychGetProjectExitFunction();
if (projectExit != NULL) (*projectExit)();
// Put whatever cleanup of the Psychtoolbox is required here.
PsychExitTimeGlue();
// Reset / Clear function and module name registry:
PsychResetRegistry();
return(PsychError_none);
}
|