#ifndef _motif_h #define _motif_h #include #include #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