2 Copyright (C) 2004-2008 Grame
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation; either version 2.1 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 #include "JackGlobals.h"
25 bool JackGlobals::fVerbose
= 0;
27 jack_tls_key
JackGlobals::fRealTimeThread
;
28 static bool gKeyRealtimeThreadInitialized
= jack_tls_allocate_key(&JackGlobals::fRealTimeThread
);
30 jack_tls_key
JackGlobals::fNotificationThread
;
31 static bool gKeyNotificationThreadInitialized
= jack_tls_allocate_key(&JackGlobals::fNotificationThread
);
33 jack_tls_key
JackGlobals::fKeyLogFunction
;
34 static bool fKeyLogFunctionInitialized
= jack_tls_allocate_key(&JackGlobals::fKeyLogFunction
);
36 JackMutex
* JackGlobals::fOpenMutex
= new JackMutex();
37 volatile bool JackGlobals::fServerRunning
= false;
38 JackClient
* JackGlobals::fClientTable
[CLIENT_NUM
] = {};
41 jack_thread_creator_t
JackGlobals::fJackThreadCreator
= pthread_create
;
44 #ifdef __CLIENTDEBUG__
46 std::ofstream
* JackGlobals::fStream
= NULL
;
48 void JackGlobals::CheckContext(const char* name
)
50 if (JackGlobals::fStream
== NULL
) {
55 /* Get the current time. */
56 curtime
= time (NULL
);
57 /* Convert it to local time representation. */
58 loctime
= localtime (&curtime
);
59 strftime(buffer
, 256, "%I-%M", loctime
);
60 snprintf(provstr
, sizeof(provstr
), "JackAPICall-%s.log", buffer
);
61 JackGlobals::fStream
= new std::ofstream(provstr
, std::ios_base::ate
);
62 JackGlobals::fStream
->is_open();
64 (*fStream
) << "JACK API call : " << name
<< ", calling thread : " << pthread_self() << std::endl
;
69 void JackGlobals::CheckContext(const char* name
)