2 #ifndef __BSE_SSEQUENCER_HH__
3 #define __BSE_SSEQUENCER_HH__
13 static Mutex sequencer_mutex_;
22 void sequencer_thread ();
23 bool pool_poll_Lm (
int timeout_ms);
24 void process_part_SL (
BsePart *part,
double start_stamp, uint start_tick,
26 double stamps_per_tick, BseMidiReceiver *midi_receiver, uint midi_channel);
27 void process_track_SL (
BseTrack *track,
double start_stamp, uint start_tick,
29 double stamps_per_tick, BseMidiReceiver *midi_receiver);
30 void process_song_SL (
BseSong *song, uint n_ticks);
31 bool process_song_unlooped_SL (
BseSong *song, uint n_ticks,
bool force_active_tracks);
34 static void _init_threaded ();
36 void add_io_watch (uint n_pfds,
const GPollFD *pfds, BseIOWatch watch_func,
void *watch_data);
37 void remove_io_watch (BseIOWatch watch_func,
void *watch_data);
39 void remove_song (
BseSong *song);
40 bool thread_lagging (uint n_blocks);
41 void wakeup () { event_fd_.wakeup(); }
42 static Mutex& sequencer_mutex () {
return sequencer_mutex_; }
43 static Sequencer& instance () {
return *singleton_; }
46 #define BSE_SEQUENCER_LOCK() (Bse::Sequencer::sequencer_mutex().lock())
47 #define BSE_SEQUENCER_UNLOCK() (Bse::Sequencer::sequencer_mutex().unlock())
51 #endif // __BSE_SSEQUENCER_HH__
Definition: bsetrack.hh:24
Note and MIDI sequencer.
Definition: bsesequencer.hh:11
Definition: sfiring.hh:23
Definition: bsesong.hh:25
Definition: bsepart.hh:26