//dumb0.4.h
#ifndef _DUMB04_
#define _DUMB04_
#include <semaphore.h>
#include <conio.h>
#include <dbutton.h>
#include <dsensor.h>
#include <dmotor.h>
#include <dsound.h>
#include <time.h>
#include <sys/tm.h>
#include <rom/system.h>
#include <tm.h>
//les limites lumineuses obtenues apres de fastidieux tests....
#define BLANC_BRILLANT 100
#define ULTRA_BRIGHT(light) ((light)>(BLANC_BRILLANT))
//si on utilise que blanc et noir (et brillant of course) mettre NOIR_GRIS proche de GRIS_BLANC
#define NOIR_GRIS 60
#define GRIS_BLANC 60
#define ULTRA_BLANC(light) (((light)>(NOIR_GRIS))&((light)<(BLANC_BRILLANT)))
#define ULTRA_NOIR(light) ((light)<(NOIR_GRIS))
//quelques variables globales
int speed=0,dir=0;
int current1,current3;
//relation de linearite sur les capteurs
// utilisation en vain de
// Unexpectedly Static Variables O'reilly p212
// qui ne semble plus etre d'actualite...dans legOS 0.2.4
int lambda=4, muhhhh=135;
int sleeptime;
sem_t semlight1;
sem_t semlight3;
sem_t semspeed;
sem_t semdir;
sem_t semtime;
pid_t pid1,pid2,pid3,pid4,pid5,pid6,pid7,pid8,pid9 ;
//--------------------------------------------------------------------------
//quelques bips significatifs pour le debugging
static const note_t melody[] = {
//tu parles d'une melodie !
{PITCH_A4,1},{ PITCH_END, 0 }
};
static const note_t lowbeep[] = {
{PITCH_E3,1},{ PITCH_END, 0 }
};
static const note_t hibeep[] = {
{PITCH_E6,1},{ PITCH_END, 0 }
};
static const note_t lost[] = {
{PITCH_A4,1},{PITCH_G3,1},{PITCH_E3,1},{PITCH_D3,1},{ PITCH_END, 0 }
};
static const note_t dead[] = {
//game over !
{PITCH_A4,2}, {PITCH_A4,2},{PITCH_A4,1},{PITCH_A4,2}, // ok...
//{PITCH_C4,2}, {PITCH_H4,1},{PITCH_A4,2},//{PITCH_H4,1},{PITCH_H4,1},
{PITCH_A4,1},{PITCH_G3,1},{PITCH_E3,1},{PITCH_D3,1},
//{PITCH_H4,1},{PITCH_H4,3},
{ PITCH_END, 0 }
};
//--------------------------------------------------------------------------
int tuning();
int vitesseGrad();
wakeup_t emitNoir(wakeup_t data);
int calibrate();
int standup();
int watchDir();
int bigBrother();
int task_manager();
#endif