PonyTracker
Un projet de tracker de musique
 Tout Structures de données Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Macros Pages
motifs.c
Aller à la documentation de ce fichier.
1 
11 #include <string.h>
12 #include "motifs.h"
13 
14 int getIdMotif(Motif* m){
15  if (m == NULL) {
16  return 0;
17  } else {
18  return getIdMotif(m->suivant)+1;
19  }
20 }
21 
22 void ajouterMotif(Motif** pliste, int nbrTmp, int nbrPortees){
23  Motif* m = malloc(sizeof(Motif));
24  m->nbrTmp = DEFNBRTMP;
25  m->suivant = *pliste;
26  m->motif = malloc(nbrPortees*sizeof(Portee*));
27  strcpy(m->nom,"Motif ");
28  char nombre[10];
29  sprintf(nombre,"%d",getIdMotif(m));
30  strcat(m->nom, nombre);
31  int i;
32  for (i=0; i<nbrPortees; i++) {
33  (*m->motif)[i] = calloc(DEFNBRTMP,sizeof(Note));
34  }
35  *pliste = m;
36 }
37 
38 void definirNomMotif(Motif* m, char* nom){
39  strcpy(m->nom,nom);
40 }
41 
42 void supprimerMotif(Motif** cellule, int nbrPortees){
43  int i;
44  for (i=0; i<nbrPortees; i++) {
45  free((*((*cellule)->motif))[i]);
46  }
47  free((*cellule)->motif);
48  Motif* aux = (*cellule)->suivant;
49  free((*cellule));
50  *cellule = aux;
51 }
52 
53 void definirNote(Motif* m, int portee, int tmp, int note){
54  (*(*m->motif)[portee])[tmp].note = note;
55 }
56 
57 void definirOctave(Motif* m, int portee, int tmp, int octave){
58  (*(*m->motif)[portee])[tmp].octave = octave;
59 }
60 
61 void definirInstrument(Motif* m, int portee, int tmp, int instrument){
62  (*(*m->motif)[portee])[tmp].instrument = instrument;
63 }
64 
65 void definirVolume(Motif* m, int portee, int tmp, int volume){
66  (*(*m->motif)[portee])[tmp].volume = volume;
67 }
68 
69 void definirEffet(Motif* m, int portee, int tmp, int effet){
70  (*(*m->motif)[portee])[tmp].effet = effet;
71 }
72 
73 void supprimerNote(Motif* m, int portee, int tmp){
74  (*(*m->motif)[portee])[tmp].note = 0;
75 }
76 
77 int getNote(Motif* m, int portee, int tmp){
78  return (*(*m->motif)[portee])[tmp].note;
79 }
80 
81 int getOctave(Motif* m, int portee, int tmp){
82  return (*(*m->motif)[portee])[tmp].octave;
83 }
84 
85 int getInstrument(Motif* m, int portee, int tmp){
86  return (*(*m->motif)[portee])[tmp].instrument;
87 }
88 
89 int getVolume(Motif* m, int portee, int tmp){
90  return (*(*m->motif)[portee])[tmp].volume;
91 }
92 
93 int getEffet(Motif* m, int portee, int tmp){
94  return (*(*m->motif)[portee])[tmp].note;
95 }
int getInstrument(Motif *m, int portee, int tmp)
Definition: motifs.c:85
void ajouterMotif(Motif **pliste, int nbrTmp, int nbrPortees)
Definition: motifs.c:22
int getNote(Motif *m, int portee, int tmp)
Definition: motifs.c:77
char nom[10]
Definition: motifs.h:32
int getEffet(Motif *m, int portee, int tmp)
Definition: motifs.c:93
Definition: motifs.h:31
void definirOctave(Motif *m, int portee, int tmp, int octave)
Definition: motifs.c:57
void definirNomMotif(Motif *m, char *nom)
Definition: motifs.c:38
Definition: motifs.h:19
Mesure * motif
Definition: motifs.h:34
void definirNote(Motif *m, int portee, int tmp, int note)
Definition: motifs.c:53
int nbrTmp
Definition: motifs.h:33
struct _motif * suivant
Definition: motifs.h:35
Note Portee[]
Definition: motifs.h:27
int getVolume(Motif *m, int portee, int tmp)
Definition: motifs.c:89
int getIdMotif(Motif *m)
Definition: motifs.c:14
void supprimerNote(Motif *m, int portee, int tmp)
Definition: motifs.c:73
void definirEffet(Motif *m, int portee, int tmp, int effet)
Definition: motifs.c:69
#define DEFNBRTMP
Definition: motifs.h:17
void definirInstrument(Motif *m, int portee, int tmp, int instrument)
Definition: motifs.c:61
void definirVolume(Motif *m, int portee, int tmp, int volume)
Definition: motifs.c:65
int getOctave(Motif *m, int portee, int tmp)
Definition: motifs.c:81
void supprimerMotif(Motif **cellule, int nbrPortees)
Definition: motifs.c:42