Création module mélodie, ajout d'un module dans la TODO liste...

This commit is contained in:
Raspbeguy 2014-04-01 21:31:20 +02:00
parent 392c1c25b5
commit 2ad7ba464c
6 changed files with 91 additions and 27 deletions

1
.gitignore vendored
View File

@ -18,3 +18,4 @@ documentation/latex/refman.toc
sources/motifs/.motifs.c.swp sources/motifs/.motifs.c.swp
sources/motifs/.motifs.h.swp sources/motifs/.motifs.h.swp
sources/motifs/motifs.o sources/motifs/motifs.o
sources/melodie/melodie.o

View File

@ -1,4 +1,4 @@
samples.h samples.h
— ajouterSample — ajouterSample
— supprimerSample — supprimerSample
— previsualiserSample — previsualiserSample
@ -18,28 +18,28 @@ instruments.h
— definirBalance — definirBalance
— definirVolume — definirVolume
motifs.h (en cours) motifs.h (en attente)
— ajouterMotif (ok) — ajouterMotif (ok)
— supprimerMotif (ok) — supprimerMotif (ok)
— ajouterNote (ok) — ajouterNote (ok)
— modifierNote (à venir) — modifierNote (ok)
— supprimerNote (ok) — supprimerNote (ok)
— definirRefMotif (attente de l'IG) — definirRefMotif (ok)
— definirNbTemps (idem) — definirNbTemps (après le proto)
— definirCommentaire (idem) — definirNom (ok)
— definirBoucle (idem)
melodie.h melodie.h (en attente)
— motifPrecedent — definirCourant (ok)
— motifSuivant — calculerTemps (en secondes) (ça viendra)
— definirModeEdition (pareil)
— definirIntrument (ça demande des connaissance en Glade, ça...)
— definirBPM (idem)
— definirNbTicks (itou)
lecture.h
— lireNote
— lireMelodie — lireMelodie
— calculerTemps (en secondes) — Stop
— definirNote
— definirEffet
— definirModeEdition
— definirIntrument
— definirBPM
— definirNbTicks
— exportSon — exportSon
effets.h effets.h

View File

@ -0,0 +1,36 @@
#include "melodie.h"
void afficherListeMelodie(){
// TODO
}
void affocherListeMotifs(){
// TODO
}
void afficherMotifActuel(){
// TODO
}
void definirCourant(int i){
courant = i;
}
void ajouterMotifVirtuel(){
for (int i = taille; i > courant; i--) {
melodie[i] = melodie[i-1];
}
taille++;
melodie[courant] = liste;
}
void definirMotifVirtuel(Motif* m){
melodie[courant] = m;
}
void supprimerMotifVirtuel(){
taille--;
for (int i = courant; i < taille; i--) {
melodie[i] = melodie[i+1];
}
}

View File

@ -3,7 +3,30 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "../motifs/motifs.h"
#define MAX_PATTERNS 256
Motif* melodie[MAX_PATTERNS] = {NULL};
int courant = 0;
int taille = 0;
// Les trois fonctions suivantes servent au couplage avec la GUI.
void afficherListeMelodie();
void afficherListeMotifs();
void afficherMotifActuel();
void definirCourant(int i);
void ajouterMotifVirtuel();
void definirMotifVirtuel(Motif* m);
void supprimerMotifVirtuel();
#endif #endif

View File

@ -9,9 +9,9 @@ int getIdMotif(Motif* m){
} }
} }
void ajouterMotif(int nbrPortees, int nbrTmp){ void ajouterMotif(){
Motif* m = malloc(sizeof(Motif)); Motif* m = malloc(sizeof(Motif));
m->nbrTmp = nbrTmp; m->nbrTmp = DEFNBRTMP;
m->suivant = liste; m->suivant = liste;
m->motif = malloc(nbrPortees*sizeof(Portee)); m->motif = malloc(nbrPortees*sizeof(Portee));
char* nombre = NULL; char* nombre = NULL;
@ -19,12 +19,12 @@ void ajouterMotif(int nbrPortees, int nbrTmp){
m->nom = strcat("Motif ", nombre); m->nom = strcat("Motif ", nombre);
int i; int i;
for (i=0; i<nbrPortees; i++) { for (i=0; i<nbrPortees; i++) {
m->motif[i] = calloc(nbrTmp,sizeof(Note)); m->motif[i] = calloc(DEFNBRTMP,sizeof(Note));
} }
liste = m; liste = m;
} }
void definirNomMotif(char* nom, Motif* m){ void definirNomMotif(Motif* m, char* nom){
m->nom = nom; m->nom = nom;
} }

View File

@ -4,6 +4,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#define DEFNBRTMP 16
typedef struct _note{ typedef struct _note{
int note; int note;
int octave; int octave;
@ -23,15 +25,17 @@ typedef struct _motif{
Motif* liste = NULL; Motif* liste = NULL;
int nbrTmp = 16;
int nbrPortees = 4; int nbrPortees = 4;
int getIdMotif(Motif* m); int getIdMotif(Motif* m);
void ajouterMotif(int nbrPortees, int nbrTmp); void ajouterMotif();
void definirNomMotif(char* nom, Motif* m); 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); // cellule correspond à l'adresse de l'élément de la liste (avec &) void supprimerMotif(Motif** cellule); // cellule correspond à l'adresse de l'élément de la liste (avec &)