2 #ifndef __BSE_SSEQUENCER_HH__
3 #define __BSE_SSEQUENCER_HH__
13 static Mutex sequencer_mutex_;
22 static void reap_thread ();
23 void sequencer_thread ();
24 bool pool_poll_Lm (
int timeout_ms);
25 void process_part_SL (
BsePart *part,
double start_stamp, uint start_tick,
27 double stamps_per_tick, BseMidiReceiver *midi_receiver, uint midi_channel);
28 void process_track_SL (
BseTrack *track,
double start_stamp, uint start_tick,
30 double stamps_per_tick, BseMidiReceiver *midi_receiver);
31 void process_song_SL (
BseSong *song, uint n_ticks);
32 bool process_song_unlooped_SL (
BseSong *song, uint n_ticks,
bool force_active_tracks);
35 static void _init_threaded ();
37 void add_io_watch (uint n_pfds,
const GPollFD *pfds, BseIOWatch watch_func,
void *watch_data);
38 void remove_io_watch (BseIOWatch watch_func,
void *watch_data);
39 void start_song (
BseSong *song, uint64 start_stamp);
40 void remove_song (
BseSong *song);
41 bool thread_lagging (uint n_blocks);
42 void wakeup () { event_fd_.wakeup(); }
43 static Mutex& sequencer_mutex () {
return sequencer_mutex_; }
44 static Sequencer& instance () {
return *singleton_; }
47 #define BSE_SEQUENCER_LOCK() (Bse::Sequencer::sequencer_mutex().lock())
48 #define BSE_SEQUENCER_UNLOCK() (Bse::Sequencer::sequencer_mutex().unlock())
52 #endif // __BSE_SSEQUENCER_HH__
Definition: bsetrack.hh:24
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:67
Note and MIDI sequencer.
Definition: bsesequencer.hh:11
Definition: sfiring.hh:23
Definition: bsesong.hh:25
Definition: bsepart.hh:26