When the classes in wave.py opened files themselves, their .close() methods
[python/dscho.git] / Mac / Python / gusiconfig.cpp
blobdf292fa5544b534068a9c552e9e4d1280926d651
1 /*
2 * Generated with the GUSIConfig application and then hand-modified by jack.
3 */
5 #define GUSI_SOURCE
6 #include <GUSIConfig.h>
7 #include <sys/cdefs.h>
8 #include <Resources.h>
10 #include "Python.h"
11 #include "macglue.h"
12 #include "pythonresources.h"
14 static void
15 PyMac_GUSISpin(bool wait)
17 static Boolean inForeground = true;
18 int maxsleep = 6; /* 6 ticks is "normal" sleeptime */
20 if (PyMac_ConsoleIsDead) return;
22 if ( !wait )
23 maxsleep = 0;
25 PyMac_DoYield(maxsleep, 0); /* XXXX or is it safe to call python here? */
29 /* Declarations of Socket Factories */
31 __BEGIN_DECLS
32 void GUSIwithInetSockets();
33 void GUSIwithLocalSockets();
34 void GUSIwithMTInetSockets();
35 void GUSIwithMTTcpSockets();
36 void GUSIwithMTUdpSockets();
37 void GUSIwithOTInetSockets();
38 void GUSIwithOTTcpSockets();
39 void GUSIwithOTUdpSockets();
40 void GUSIwithPPCSockets();
41 void GUSISetupFactories();
42 __END_DECLS
44 /* Configure Socket Factories */
46 void GUSISetupFactories()
48 #ifdef GUSISetupFactories_BeginHook
49 GUSISetupFactories_BeginHook
50 #endif
51 #if 1 || TARGET_API_MAC_CARBON
52 GUSIwithInetSockets();
53 #else
54 GUSIwithMTInetSockets();
55 #endif
56 #ifdef GUSISetupFactories_EndHook
57 GUSISetupFactories_EndHook
58 #endif
61 /* Declarations of File Devices */
63 __BEGIN_DECLS
64 void GUSIwithDConSockets();
65 void GUSIwithNullSockets();
66 void GUSISetupDevices();
67 __END_DECLS
69 /* Configure File Devices */
71 void GUSISetupDevices()
73 #ifdef GUSISetupDevices_BeginHook
74 GUSISetupDevices_BeginHook
75 #endif
76 #ifdef GUSISetupDevices_EndHook
77 GUSISetupDevices_EndHook
78 #endif
81 #ifndef __cplusplus
82 #error GUSISetupConfig() needs to be written in C++
83 #endif
85 GUSIConfiguration::FileSuffix sSuffices[] = {
86 "", '????', '????'
88 extern "C" void GUSISetupConfig()
90 Handle h;
91 short oldrh, prefrh = -1;
92 short resource_id = GUSIConfiguration::kNoResource;
94 oldrh = CurResFile();
96 /* Try override from the application resource fork */
97 UseResFile(PyMac_AppRefNum);
98 h = Get1Resource('GU\267I', GUSIOPTIONSOVERRIDE_ID);
99 if ( h ) {
100 resource_id = GUSIOPTIONSOVERRIDE_ID;
101 } else {
102 /* Next try normal resource from preference file */
103 prefrh = PyMac_OpenPrefFile();
104 h = Get1Resource('GU\267I', GUSIOPTIONS_ID);
105 if ( h ) {
106 resource_id = GUSIOPTIONS_ID;
107 } else {
108 /* Finally try normal resource from application */
109 if ( prefrh != -1 ) {
110 CloseResFile(prefrh);
111 prefrh = -1;
113 resource_id = GUSIOPTIONS_ID;
117 /* Now we have the right resource file topmost and the id. Init GUSI. */
118 GUSIConfiguration * config =
119 GUSIConfiguration::CreateInstance(resource_id);
121 /* Finally restore the old resource file */
122 if ( prefrh != -1) CloseResFile(prefrh);
123 UseResFile(oldrh);
125 config->ConfigureDefaultTypeCreator('TEXT', 'R*ch');
126 #if 0
127 config->ConfigureSuffices(
128 sizeof(sSuffices)/sizeof(GUSIConfiguration::FileSuffix)-1, sSuffices);
129 #endif
130 config->ConfigureAutoInitGraf(false);
131 config->ConfigureAutoSpin(false);
132 config->ConfigureHandleAppleEvents(false);
133 config->ConfigureSigInt(false);
134 config->ConfigureSigPipe(true);
136 GUSISetHook(GUSI_SpinHook, (GUSIHook)PyMac_GUSISpin);
140 /**************** END GUSI CONFIGURATION *************************/