File: PsychInit.c

package info (click to toggle)
psychtoolbox-3 3.0.14.20170103%2Bgit6-g605ff5c.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 103,044 kB
  • ctags: 69,483
  • sloc: ansic: 167,371; cpp: 11,232; objc: 4,708; sh: 1,875; python: 383; php: 344; makefile: 207; java: 113
file content (70 lines) | stat: -rwxr-xr-x 1,866 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
  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");

    // First init Psychtoolbox libraries:
    InitPsychError();
    InitPsychAuthorList();
    PsychInitTimeGlue();

    //Registration of the Psychtoolbox exit function is
    //done in ScriptingGlue.cpp 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 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 language-specific versions are named PsychExitGlue()
   and they are found in SciptingGlue.cpp
 */
PsychError PsychExit(void)
{
    PsychFunctionPtr projectExit;

    projectExit = PsychGetProjectExitFunction();
    if(projectExit != NULL) (*projectExit)();

    // Put whatever cleanup of the Psychtoolbox is required here.
    PsychExitTimeGlue();

    return(PsychError_none);
}