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 JackMutex
* JackGlobals::fSynchroMutex
= new JackMutex();
38 volatile bool JackGlobals::fServerRunning
= false;
39 JackClient
* JackGlobals::fClientTable
[CLIENT_NUM
] = {};
42 jack_thread_creator_t
JackGlobals::fJackThreadCreator
= pthread_create
;
45 #ifdef __CLIENTDEBUG__
47 std::ofstream
* JackGlobals::fStream
= NULL
;
49 void JackGlobals::CheckContext(const char* name
)
51 if (JackGlobals::fStream
== NULL
) {
56 /* Get the current time. */
57 curtime
= time (NULL
);
58 /* Convert it to local time representation. */
59 loctime
= localtime (&curtime
);
60 strftime(buffer
, 256, "%I-%M", loctime
);
61 snprintf(provstr
, sizeof(provstr
), "JackAPICall-%s.log", buffer
);
62 JackGlobals::fStream
= new std::ofstream(provstr
, std::ios_base::ate
);
63 JackGlobals::fStream
->is_open();
65 #ifdef PTHREAD_WIN32 /* Added by JE - 10-10-2011 */
66 (*fStream
) << "JACK API call : " << name
<< ", calling thread : " << pthread_self().p
<< std::endl
;
67 #elif defined(WIN32) && !defined(__CYGWIN__)
68 (*fStream
) << "JACK API call : " << name
<< ", calling thread : " << GetCurrentThread() << std::endl
;
70 (*fStream
) << "JACK API call : " << name
<< ", calling thread : " << pthread_self() << std::endl
;
76 void JackGlobals::CheckContext(const char* name
)