ponytracker/sources/instruments/instruments.h

63 lines
1.3 KiB
C
Raw Normal View History

/**
* @file instruments.h
*
* Gestion des instruments
*
* @version 1
* @author Guy
* @date Mai 2014
*/
#ifndef _instruments_h
#define _instruments_h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "../samples/samples.h"
typedef struct _enveloppe {
unsigned long int tmp; // axe des temps (abscisse sur le graphe de l'enveloppe)
int volume; // axe du volume (ordonnée sur le graphe de l'enveloppe)
struct _enveloppe* suite;
} Enveloppe;
typedef struct _intrument {
Sample* sample;
Enveloppe enveloppe;
int balance;
int volume;
2014-05-15 21:45:20 +02:00
char nom[20];
} Instrument;
2014-05-15 21:45:20 +02:00
void ajouterInstrument(Instrument* tab[], int i);
void supprimerInstrument(Instrument* tab[], int i);
2014-05-21 18:08:47 +02:00
char* getChemin(Instrument* inst);
2014-05-21 18:08:47 +02:00
int getVolumeInst(Instrument* inst);
int getBalanceInst(Instrument* inst);
char* getNomInst(Instrument* inst);
2014-05-21 18:08:47 +02:00
Sample* getSample(Instrument* inst);
void setVolume(Instrument* inst, int volume);
void setBalance(Instrument* inst, int balance);
void setNomInst(Instrument* inst, char* nom);
2014-05-21 18:08:47 +02:00
void setSample(Instrument* inst, Sample* smpl);
/*
* Cette fonction prend une note et une octave en paramètre et renvoie la valeur à entrer dans le pitch shifter.
*/
float rapportPitch(Instrument* inst, int note, int octave);
#endif