ponytracker/sources/samples/samples.h

70 lines
1.7 KiB
C
Raw Normal View History

/**
* @file samples.h
*
* Gestion des samples
*
* @version 1
* @author Guy
* @date Mai 2014
*/
#ifndef _samples_h
#define _samples_h
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "../fmod/include/fmod.h"
#define NMAX_SAMPLES 10
typedef struct _sample{
//TODO
// Je propose un truc, mais c'est à Quentin de le compléter,
// voire de le changer complètement.
char* chemin; // contient le nom du fichier WAV (qui sera placé dans le sous-dossier samples)
char* nom; // juste un nom pour qu'on puisse humainement identifier le sample
// Infos relatives au resampling
unsigned long int deb; // numéro de l'échantillon de début
unsigned long int fin; // numéro de l'échantillon de fin
float hauteur_ref; // fréquence de la hauteur du sample à l'état brut (sans repitching)
} Sample;
/**
* Il s'agit de définir une liste des samples à supprimer lors de la prochaine sauvegarde.
*/
typedef struct _poubelle{
char* chemin;
struct _poubelle* suiv;
} Poubelle;
/**
* Cette fonction à valeur booléenne détermine si le fichier doit être copié dans le dossier de sauvegarde.
*/
int doitEtreSauvegarde(Sample* tab[], int i);
/**
* Cette procédure définit le statut du fichier comme déjà copié dans la sauvegarde.
*/
void setSauvegarde(Sample* tab[], int i);
void ajouterSample(Sample* tab[], int i, char* chemin);
void supprimerSample(Sample* tab[], int i, Poubelle** poub);
//void setResampling(Sample* sample, int deb, int fin);
void setNom(Sample* sample, char nom[]);
void setHauteur(Sample* sample, float hauteur);
//unsigned long int getDeb(Sample* sample);
//unsigned long int getFin(Sample* sample);
char* getNom(Sample* sample);
float getHauteur(Sample* sample);
#endif