ponytracker/sources/motifs/motifs.h

53 lines
1.2 KiB
C

#ifndef _motif_h
#define _motif_h
#include <stdlib.h>
#include <stdio.h>
#define DEFNBRTMP 16
typedef struct _note{
int note;
int octave;
int instrument;
int volume;
int effet;
} Note;
typedef Note Portee[];
typedef Portee* Mesure[];
typedef struct _motif{
char nom[10];
int nbrTmp;
Mesure* motif;
struct _motif* suivant;
} Motif;
int getIdMotif(Motif* m);
void ajouterMotif(Motif** pliste, int nbrTmp, int nbrPortees);
void definirNomMotif(Motif* m, char* nom);
// void definirNbrTmp(Motif* m, int nbrTmp);
// C'est chiant de changer le nomre de temps en cours de route,
// donc on le fera après le proto.
void supprimerMotif(Motif** cellule, int nbrPortees); // cellule correspond à l'adresse de l'élément de la liste (avec &)
void definirNote(Motif* m, int portee, int tmp, int note);
void definirOctave(Motif* m, int portee, int tmp, int octave);
void definirInstrument(Motif* m, int portee, int tmp, int intrument);
void definirVolume(Motif* m, int portee, int tmp, int volume);
void definirEffet(Motif* m, int portee, int tmp, int effet);
void supprimerNote(Motif* m, int portee, int tmp);
#endif