/[svn]/gigedit/trunk/src/gigedit/gigedit.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/gigedit.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2689 by schoenebeck, Sun Jan 4 17:19:19 2015 UTC revision 2841 by persson, Sun Aug 30 10:00:49 2015 UTC
# Line 17  Line 17 
17   * 02110-1301 USA.   * 02110-1301 USA.
18   */   */
19    
20    #include <glibmmconfig.h>
21    // threads.h must be included first to be able to build with
22    // G_DISABLE_DEPRECATED
23    #if (GLIBMM_MAJOR_VERSION == 2 && GLIBMM_MINOR_VERSION == 31 && GLIBMM_MICRO_VERSION >= 2) || \
24        (GLIBMM_MAJOR_VERSION == 2 && GLIBMM_MINOR_VERSION > 31) || GLIBMM_MAJOR_VERSION > 2
25    #include <glibmm/threads.h>
26    #endif
27    
28  #include "gigedit.h"  #include "gigedit.h"
29    
30  #include <glibmm/dispatcher.h>  #include <glibmm/dispatcher.h>
# Line 39  Line 47 
47  #endif  #endif
48    
49  //TODO: (hopefully) just a temporary nasty hack for launching gigedit on the main thread on Mac (see comments below in this file for details)  //TODO: (hopefully) just a temporary nasty hack for launching gigedit on the main thread on Mac (see comments below in this file for details)
50  #if defined(__APPLE__) // the following global external variables are defined in LinuxSampler's global_private.cpp ...  #if defined(__APPLE__) && HAVE_LINUXSAMPLER // the following global external variables are defined in LinuxSampler's global_private.cpp ...
51  extern bool g_mainThreadCallbackSupported;  extern bool g_mainThreadCallbackSupported;
52  extern void (*g_mainThreadCallback)(void* info);  extern void (*g_mainThreadCallback)(void* info);
53  extern void* g_mainThreadCallbackInfo;  extern void* g_mainThreadCallbackInfo;
# Line 58  namespace { Line 66  namespace {
66  //  //
67  class GigEditState : public sigc::trackable {  class GigEditState : public sigc::trackable {
68  public:  public:
69      GigEditState(GigEdit* parent) : parent(parent), instrument(NULL) { }      GigEditState(GigEdit* parent) :
70            window(0), parent(parent), instrument(0) { }
71      void run(gig::Instrument* pInstrument);      void run(gig::Instrument* pInstrument);
72    
73      MainWindow* window;      MainWindow* window;
# Line 280  int GigEdit::run(gig::Instrument* pInstr Line 289  int GigEdit::run(gig::Instrument* pInstr
289    
290  void GigEdit::on_note_on_event(int key, int velocity) {  void GigEdit::on_note_on_event(int key, int velocity) {
291      if (!this->state) return;      if (!this->state) return;
292      GigEditState* state = (GigEditState*) this->state;      GigEditState* state = static_cast<GigEditState*>(this->state);
293      state->window->signal_note_on().emit(key, velocity);      state->window->signal_note_on().emit(key, velocity);
294  }  }
295    
296  void GigEdit::on_note_off_event(int key, int velocity) {  void GigEdit::on_note_off_event(int key, int velocity) {
297      if (!this->state) return;      if (!this->state) return;
298      GigEditState* state = (GigEditState*) this->state;      GigEditState* state = static_cast<GigEditState*>(this->state);
299      state->window->signal_note_off().emit(key, velocity);      state->window->signal_note_off().emit(key, velocity);
300  }  }
301    
# Line 410  void GigEditState::run(gig::Instrument* Line 419  void GigEditState::run(gig::Instrument*
419      static bool main_loop_started = false;      static bool main_loop_started = false;
420      instrument = pInstrument;      instrument = pInstrument;
421      if (!main_loop_started) {      if (!main_loop_started) {
422  #if defined(__APPLE__)  #if defined(__APPLE__) && HAVE_LINUXSAMPLER
423          // spawn GUI on main thread :          // spawn GUI on main thread :
424          //     On OS X the Gtk GUI can only be launched on a process's "main"          //     On OS X the Gtk GUI can only be launched on a process's "main"
425          //     thread. When trying to launch the Gtk GUI on any other thread,          //     thread. When trying to launch the Gtk GUI on any other thread,

Legend:
Removed from v.2689  
changed lines
  Added in v.2841

  ViewVC Help
Powered by ViewVC