Sequencer engine skeleton (reader, scheduler, player) definitions. Plus de détails...
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "ch.h"
#include "clock_manager.h"
#include "seq_model.h"
Aller au code source de ce fichier.
Structures de données | |
struct | seq_engine_note_on_t |
struct | seq_engine_note_off_t |
struct | seq_engine_plock_t |
struct | seq_engine_event_t |
struct | seq_engine_scheduler_t |
struct | seq_engine_reader_t |
struct | seq_engine_player_t |
struct | seq_engine_callbacks_t |
struct | seq_engine_config_t |
struct | seq_engine_t |
Macros | |
#define | SEQ_ENGINE_SCHEDULER_CAPACITY 64U |
Définitions de type | |
typedef msg_t(* | seq_engine_note_on_cb_t) (const seq_engine_note_on_t *note_on, systime_t scheduled_time) |
typedef msg_t(* | seq_engine_note_off_cb_t) (const seq_engine_note_off_t *note_off, systime_t scheduled_time) |
typedef msg_t(* | seq_engine_plock_cb_t) (const seq_engine_plock_t *plock, systime_t scheduled_time) |
typedef bool(* | seq_engine_track_muted_cb_t) (uint8_t track) |
Énumérations | |
enum | seq_engine_event_type_t { SEQ_ENGINE_EVENT_NOTE_ON = 0 , SEQ_ENGINE_EVENT_NOTE_OFF , SEQ_ENGINE_EVENT_PLOCK } |
enum | seq_engine_plock_action_t { SEQ_ENGINE_PLOCK_APPLY = 0 , SEQ_ENGINE_PLOCK_RESTORE } |
Fonctions | |
void | seq_engine_init (seq_engine_t *engine, const seq_engine_config_t *config) |
void | seq_engine_set_callbacks (seq_engine_t *engine, const seq_engine_callbacks_t *callbacks) |
void | seq_engine_attach_pattern (seq_engine_t *engine, seq_model_pattern_t *pattern) |
msg_t | seq_engine_start (seq_engine_t *engine) |
void | seq_engine_stop (seq_engine_t *engine) |
void | seq_engine_reset (seq_engine_t *engine) |
bool | seq_engine_scheduler_push (seq_engine_scheduler_t *scheduler, const seq_engine_event_t *event) |
bool | seq_engine_scheduler_pop (seq_engine_scheduler_t *scheduler, seq_engine_event_t *out_event) |
bool | seq_engine_scheduler_peek (const seq_engine_scheduler_t *scheduler, seq_engine_event_t *out_event) |
void | seq_engine_scheduler_clear (seq_engine_scheduler_t *scheduler) |
void | seq_engine_process_step (seq_engine_t *engine, const clock_step_info_t *info) |
Sequencer engine skeleton (reader, scheduler, player) definitions.
#define SEQ_ENGINE_SCHEDULER_CAPACITY 64U |
Maximum number of scheduled events retained by the scheduler.
typedef msg_t(* seq_engine_note_off_cb_t) (const seq_engine_note_off_t *note_off, systime_t scheduled_time) |
Callback type for NOTE OFF events.
typedef msg_t(* seq_engine_note_on_cb_t) (const seq_engine_note_on_t *note_on, systime_t scheduled_time) |
Callback type for NOTE ON events.
typedef msg_t(* seq_engine_plock_cb_t) (const seq_engine_plock_t *plock, systime_t scheduled_time) |
Callback type for parameter lock dispatch.
typedef bool(* seq_engine_track_muted_cb_t) (uint8_t track) |
Callback invoked to query whether a given track is muted.
void seq_engine_attach_pattern | ( | seq_engine_t * | engine, |
seq_model_pattern_t * | pattern | ||
) |
void seq_engine_init | ( | seq_engine_t * | engine, |
const seq_engine_config_t * | config | ||
) |
void seq_engine_process_step | ( | seq_engine_t * | engine, |
const clock_step_info_t * | info | ||
) |
void seq_engine_reset | ( | seq_engine_t * | engine | ) |
void seq_engine_scheduler_clear | ( | seq_engine_scheduler_t * | scheduler | ) |
bool seq_engine_scheduler_peek | ( | const seq_engine_scheduler_t * | scheduler, |
seq_engine_event_t * | out_event | ||
) |
bool seq_engine_scheduler_pop | ( | seq_engine_scheduler_t * | scheduler, |
seq_engine_event_t * | out_event | ||
) |
bool seq_engine_scheduler_push | ( | seq_engine_scheduler_t * | scheduler, |
const seq_engine_event_t * | event | ||
) |
void seq_engine_set_callbacks | ( | seq_engine_t * | engine, |
const seq_engine_callbacks_t * | callbacks | ||
) |
msg_t seq_engine_start | ( | seq_engine_t * | engine | ) |
void seq_engine_stop | ( | seq_engine_t * | engine | ) |