Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
Référence du fichier seq_project.h

Sequencer multi-track project container helpers. Plus de détails...

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "seq_model.h"
#include "board/board_flash.h"

Aller au code source de ce fichier.

Structures de données

struct  seq_project_cart_ref_t
 
struct  seq_project_track_t
 
struct  seq_project_pattern_track_desc_t
 
struct  seq_project_pattern_desc_t
 
struct  seq_project_bank_t
 
struct  seq_project_t
 

Macros

#define SEQ_PROJECT_MAX_TRACKS   16U
 
#define SEQ_PROJECT_BANK_COUNT   16U
 
#define SEQ_PROJECT_PATTERNS_PER_BANK   16U
 
#define SEQ_PROJECT_PATTERN_STORAGE_MAX   3968U
 
#define SEQ_PROJECT_FLASH_SLOT_SIZE   (1024U * 1024U)
 
#define SEQ_PROJECT_MAX_PROJECTS   (BOARD_FLASH_CAPACITY_BYTES / SEQ_PROJECT_FLASH_SLOT_SIZE)
 
#define SEQ_PROJECT_NAME_MAX   24U
 
#define SEQ_PROJECT_PATTERN_NAME_MAX   16U
 

Définitions de type

typedef uint8_t seq_project_cart_flags_t
 
typedef uint16_t seq_project_cart_caps_t
 

Énumérations

enum  { SEQ_PROJECT_CART_FLAG_NONE = 0U , SEQ_PROJECT_CART_FLAG_MUTED = 1U << 0 }
 
enum  { SEQ_PROJECT_CART_CAP_NONE = 0U }
 

Fonctions

void seq_project_init (seq_project_t *project)
 
bool seq_project_assign_track (seq_project_t *project, uint8_t track_index, seq_model_pattern_t *pattern)
 
seq_model_pattern_tseq_project_get_track (seq_project_t *project, uint8_t track_index)
 
const seq_model_pattern_tseq_project_get_track_const (const seq_project_t *project, uint8_t track_index)
 
bool seq_project_set_active_track (seq_project_t *project, uint8_t track_index)
 
uint8_t seq_project_get_active_track (const seq_project_t *project)
 
seq_model_pattern_tseq_project_get_active_pattern (seq_project_t *project)
 
const seq_model_pattern_tseq_project_get_active_pattern_const (const seq_project_t *project)
 
uint8_t seq_project_get_track_count (const seq_project_t *project)
 
void seq_project_clear_track (seq_project_t *project, uint8_t track_index)
 
void seq_project_bump_generation (seq_project_t *project)
 
const seq_model_gen_tseq_project_get_generation (const seq_project_t *project)
 
void seq_project_set_track_cart (seq_project_t *project, uint8_t track_index, const seq_project_cart_ref_t *cart)
 
const seq_project_cart_ref_tseq_project_get_track_cart (const seq_project_t *project, uint8_t track_index)
 
bool seq_project_set_active_slot (seq_project_t *project, uint8_t bank, uint8_t pattern)
 
uint8_t seq_project_get_active_bank (const seq_project_t *project)
 
uint8_t seq_project_get_active_pattern_index (const seq_project_t *project)
 
seq_project_pattern_desc_tseq_project_get_pattern_descriptor (seq_project_t *project, uint8_t bank, uint8_t pattern)
 
const seq_project_pattern_desc_tseq_project_get_pattern_descriptor_const (const seq_project_t *project, uint8_t bank, uint8_t pattern)
 
bool seq_project_save (uint8_t project_index)
 
bool seq_project_load (uint8_t project_index)
 
bool seq_pattern_save (uint8_t bank, uint8_t pattern)
 
bool seq_pattern_load (uint8_t bank, uint8_t pattern)
 

Description détaillée

Sequencer multi-track project container helpers.

Documentation des macros

◆ SEQ_PROJECT_BANK_COUNT

#define SEQ_PROJECT_BANK_COUNT   16U

Number of banks stored by a project.

◆ SEQ_PROJECT_FLASH_SLOT_SIZE

#define SEQ_PROJECT_FLASH_SLOT_SIZE   (1024U * 1024U)

Size of a project slot in external flash.

◆ SEQ_PROJECT_MAX_PROJECTS

#define SEQ_PROJECT_MAX_PROJECTS   (BOARD_FLASH_CAPACITY_BYTES / SEQ_PROJECT_FLASH_SLOT_SIZE)

Maximum number of persistent projects.

◆ SEQ_PROJECT_MAX_TRACKS

#define SEQ_PROJECT_MAX_TRACKS   16U

Maximum number of logical tracks a project can expose.

◆ SEQ_PROJECT_NAME_MAX

#define SEQ_PROJECT_NAME_MAX   24U

Maximum length for project names.

◆ SEQ_PROJECT_PATTERN_NAME_MAX

#define SEQ_PROJECT_PATTERN_NAME_MAX   16U

Maximum length for pattern names.

◆ SEQ_PROJECT_PATTERN_STORAGE_MAX

#define SEQ_PROJECT_PATTERN_STORAGE_MAX   3968U

Maximum number of bytes reserved per pattern in flash.

◆ SEQ_PROJECT_PATTERNS_PER_BANK

#define SEQ_PROJECT_PATTERNS_PER_BANK   16U

Number of patterns per bank.

Documentation des définitions de type

◆ seq_project_cart_caps_t

typedef uint16_t seq_project_cart_caps_t

Capabilities advertised by a cart reference.

◆ seq_project_cart_flags_t

typedef uint8_t seq_project_cart_flags_t

Flags attached to a cart reference.

Documentation du type de l'énumération

◆ anonymous enum

anonymous enum
Valeurs énumérées
SEQ_PROJECT_CART_FLAG_NONE 
SEQ_PROJECT_CART_FLAG_MUTED 

◆ anonymous enum

anonymous enum
Valeurs énumérées
SEQ_PROJECT_CART_CAP_NONE 

Documentation des fonctions

◆ seq_pattern_load()

bool seq_pattern_load ( uint8_t  bank,
uint8_t  pattern 
)

◆ seq_pattern_save()

bool seq_pattern_save ( uint8_t  bank,
uint8_t  pattern 
)

◆ seq_project_assign_track()

bool seq_project_assign_track ( seq_project_t project,
uint8_t  track_index,
seq_model_pattern_t pattern 
)

◆ seq_project_bump_generation()

void seq_project_bump_generation ( seq_project_t project)

◆ seq_project_clear_track()

void seq_project_clear_track ( seq_project_t project,
uint8_t  track_index 
)

◆ seq_project_get_active_bank()

uint8_t seq_project_get_active_bank ( const seq_project_t project)

◆ seq_project_get_active_pattern()

seq_model_pattern_t * seq_project_get_active_pattern ( seq_project_t project)

◆ seq_project_get_active_pattern_const()

const seq_model_pattern_t * seq_project_get_active_pattern_const ( const seq_project_t project)

◆ seq_project_get_active_pattern_index()

uint8_t seq_project_get_active_pattern_index ( const seq_project_t project)

◆ seq_project_get_active_track()

uint8_t seq_project_get_active_track ( const seq_project_t project)

◆ seq_project_get_generation()

const seq_model_gen_t * seq_project_get_generation ( const seq_project_t project)

◆ seq_project_get_pattern_descriptor()

seq_project_pattern_desc_t * seq_project_get_pattern_descriptor ( seq_project_t project,
uint8_t  bank,
uint8_t  pattern 
)

◆ seq_project_get_pattern_descriptor_const()

const seq_project_pattern_desc_t * seq_project_get_pattern_descriptor_const ( const seq_project_t project,
uint8_t  bank,
uint8_t  pattern 
)

◆ seq_project_get_track()

seq_model_pattern_t * seq_project_get_track ( seq_project_t project,
uint8_t  track_index 
)

◆ seq_project_get_track_cart()

const seq_project_cart_ref_t * seq_project_get_track_cart ( const seq_project_t project,
uint8_t  track_index 
)

◆ seq_project_get_track_const()

const seq_model_pattern_t * seq_project_get_track_const ( const seq_project_t project,
uint8_t  track_index 
)

◆ seq_project_get_track_count()

uint8_t seq_project_get_track_count ( const seq_project_t project)

◆ seq_project_init()

void seq_project_init ( seq_project_t project)

◆ seq_project_load()

bool seq_project_load ( uint8_t  project_index)

◆ seq_project_save()

bool seq_project_save ( uint8_t  project_index)

◆ seq_project_set_active_slot()

bool seq_project_set_active_slot ( seq_project_t project,
uint8_t  bank,
uint8_t  pattern 
)

◆ seq_project_set_active_track()

bool seq_project_set_active_track ( seq_project_t project,
uint8_t  track_index 
)

◆ seq_project_set_track_cart()

void seq_project_set_track_cart ( seq_project_t project,
uint8_t  track_index,
const seq_project_cart_ref_t cart 
)