65 lines
1.5 KiB
C
65 lines
1.5 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);
|
|
|
|
// Maintenant, voici les getters (qui intéressent entre autres Majora)
|
|
|
|
int getNote(Motif* m, int portee, int tmp);
|
|
|
|
int getOctave(Motif* m, int portee, int tmp);
|
|
|
|
int getInstrument(Motif* m, int portee, int tmp);
|
|
|
|
int getVolume(Motif* m, int portee, int tmp);
|
|
|
|
int getEffet(Motif* m, int portee, int tmp);
|
|
|
|
#endif
|