Skip to content

Instantly share code, notes, and snippets.

@ander94lakx
Last active June 15, 2017 18:16
Show Gist options
  • Save ander94lakx/e8724a5f23cc9b137dc475486fb7866d to your computer and use it in GitHub Desktop.
Save ander94lakx/e8724a5f23cc9b137dc475486fb7866d to your computer and use it in GitHub Desktop.
Pianoa grabatzen/erreproduzitzen
/*
* funtzioak.c
*
* Created on: 30 may. 2017
* Author: alex
*/
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>
#include "funtzioak.h"
void piztu()
{
// Instrumento guztien soinu guztiak kargatzen degu dagokion egituraren eta dagokion adagarri bakoitzean
piano.mota = PIANOA;
piano.notak.DO = Mix_LoadWAV("soinuak/pianoa/DO.wav");
piano.notak.DO_S = Mix_LoadWAV("soinuak/pianoa/DO_S.wav");
piano.notak.RE = Mix_LoadWAV("soinuak/pianoa/RE.wav");
piano.notak.RE_S = Mix_LoadWAV("soinuak/pianoa/RE_S.wav");
piano.notak.MI = Mix_LoadWAV("soinuak/pianoa/MI.wav");
piano.notak.FA = Mix_LoadWAV("soinuak/pianoa/FA.wav");
piano.notak.FA_S = Mix_LoadWAV("soinuak/pianoa/FA_S.wav");
piano.notak.SOL = Mix_LoadWAV("soinuak/pianoa/SOL.wav");
piano.notak.SOL_S = Mix_LoadWAV("soinuak/pianoa/SOL_S.wav");
piano.notak.LA = Mix_LoadWAV("soinuak/pianoa/LA.wav");
piano.notak.LA_S = Mix_LoadWAV("soinuak/pianoa/LA_S.wav");
piano.notak.SI = Mix_LoadWAV("soinuak/pianoa/SI.wav");
bibolina.mota = BIBOLINA;
//bibolina.notak.DO = Mix_LoadWAV("soinuak/bibolina/DO.wav");
//...
gitarra.mota = GITARRA;
//gitarra.notak.DO = Mix_LoadWAV("soinuak/gitarra/DO.wav");
//...
flauta.mota = FLAUTA;
//flauta.notak.DO = Mix_LoadWAV("soinuak/flauta/DO.wav");
//...
}
void grabatu()
{
// Instrumentua aukeratzen dugu
INSTRUMENTUA jotzen;
char* mota_str;
switch (jotzen_mota)
{
case PIANOA:
jotzen = piano;
mota_str = "PIANOA";
break;
case GITARRA:
jotzen = gitarra;
mota_str = "GITARRA";
break;
case BIBOLINA:
jotzen = bibolina;
mota_str = "BIBOLINA";
break;
case FLAUTA:
jotzen = flauta;
mota_str = "FLAUTA";
break;
}
if (!fitxGrabatu) // Grabatzeko abestia oraindik irekita ez badago orduan grabatzen hasten ari gara
{
// Izena sortzeko behar degun adagarriak sortzen ditugu
int zenbakia = 0;
char* abestiaren_izena = (char*) malloc(sizeof(char) * 14); // Beti 14 karaktereko izena izango du
// Orain zer zenbaki erabili behar dugu txertatzen dugu
while (zenbakia < 1000)
{
// Dena lotzen dugu fitzategiaren izena sortzeko
sprintf(abestiaren_izena, "%s%03d%s", "abestia", zenbakia, ".txt");
// Hau egiteko (fitxategia ireki saiatu ordez access() erablitzeko) <unistd.h> gehitu behar degu
if (access(abestiaren_izena, F_OK) == -1) // Ea existitzen EZ den konprobatzen degu
{
// Existizen ez bada daukagu abestia gordeko dugun fitzategiaren izena berria
break;
}
zenbakia++;
}
if (zenbakia >= 1000)
{
printf("Znebaki guztiak agortuta daude\n");
}
fitxGrabatu = fopen(abestiaren_izena, "w");
}
if (fitxGrabatu != NULL)
{
SDL_Event event; // Gerta ditzaketen ebentuak gordeko dugun aldagarri bat definitzen degu
double hasiera_s = 0; // Aldagarri hau denbora neurritzeko erabiliko dugun bi aldagarrienetariko bat da
int running = 1;
while (oraingo_egoera == GRABATU && running) // BUCLE AMAIEZINA: Gure aplikazioa behin eta berriro egongo da ebentuak "entzuten"
{
// Ebentua prozezatzen dugo (ebetuak gauza asko izan dezakete, adibides teklatuko tekla bat jo
while (SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT)
{
exit(0); // Hau programa GUZTIA hixten du
}
else if (event.type == SDL_KEYDOWN)
{
// Tekla pultsatu arte zenbat denbora pasa den kalkulatuko dugu
// clock() funtzioa programa hasi denetik zenbat "erloju ziklo" pasatu diren itzultzen digu
// "erloju ziklo" horiek segundutara pasatzeko CLOCKS_PER_SEC -rekin zatitu behar dugu ziklo horiei
double bukaera_s = (double) clock() / CLOCKS_PER_SEC;
// Denbora kalkulatzea erraza da: bukaera - haisera eta emaitza hori bider 1000 milisegundutara pasatzeko
int denbora_itxaroten_ms = (int) ((bukaera_s - hasiera_s)
* 1000);
denbora_itxaroten_ms -= denboraPausatuta; // Pausatuta engon den denbora kentzen dugu
denboraPausatuta = 0;
// Denbora hor kalkulatu ondoren (delay) gure abestiaren fitxategian gordeko dugu
fprintf(fitxGrabatu, "DELAY %d\n", denbora_itxaroten_ms);
// Hasiera denbora eskuratzen dugu momentu honetik pasa den
// denbora kalkulatzeko berriro beste tekla bat pultsatzean
hasiera_s = (double) clock() / CLOCKS_PER_SEC;
if (event.key.keysym.sym == SDLK_ESCAPE)
{
running = 0;
fclose(fitxGrabatu);
break;
}
else if (event.key.keysym.sym == SDLK_0) // Pusatzeko tekla pultzatzen badugu pausatzen dugu
{
oraingo_egoera = PAUSATU;
aurreko_egoera = GRABATU;
break; // ADI! Break azkenean joan behar da egoreak alda dezaten
}
else if (event.key.keysym.sym == SDLK_9) // Paratzeko tekla pultzatzen badugu pausatzen dugu
{
oraingo_egoera = PARATU;
aurreko_egoera = GRABATU;
break; // ADI! Break azkenean joan behar da egoreak alda dezaten
}
else if (event.key.keysym.sym == SDLK_a)
{
Mix_PlayChannel(-1, jotzen.notak.DO, 0);
fprintf(fitxGrabatu, "%s DO\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_w)
{
Mix_PlayChannel(-1, jotzen.notak.DO_S, 0);
fprintf(fitxGrabatu, "%s DO_S\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_s)
{
Mix_PlayChannel(-1, jotzen.notak.RE, 0);
fprintf(fitxGrabatu, "%s RE\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_e)
{
Mix_PlayChannel(-1, jotzen.notak.RE_S, 0);
fprintf(fitxGrabatu, "%s RE_S\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_d)
{
Mix_PlayChannel(-1, jotzen.notak.MI, 0);
fprintf(fitxGrabatu, "%s MI\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_f)
{
Mix_PlayChannel(-1, jotzen.notak.FA, 0);
fprintf(fitxGrabatu, "%s FA\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_t)
{
Mix_PlayChannel(-1, jotzen.notak.FA_S, 0);
fprintf(fitxGrabatu, "%s FA_S\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_g)
{
Mix_PlayChannel(-1, jotzen.notak.SOL, 0);
fprintf(fitxGrabatu, "%s SOL\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_y)
{
Mix_PlayChannel(-1, jotzen.notak.SOL_S, 0);
fprintf(fitxGrabatu, "%s SOL_S\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_h)
{
Mix_PlayChannel(-1, jotzen.notak.LA, 0);
fprintf(fitxGrabatu, "%s LA\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_u)
{
Mix_PlayChannel(-1, jotzen.notak.LA_S, 0);
fprintf(fitxGrabatu, "%s LA_S\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_j)
{
Mix_PlayChannel(-1, jotzen.notak.SI, 0);
fprintf(fitxGrabatu, "%s SI\n", mota_str);
}
else if (event.key.keysym.sym == SDLK_1)
{
jotzen = piano;
jotzen_mota = PIANOA;
mota_str = "PIANOA";
}
else if (event.key.keysym.sym == SDLK_2)
{
jotzen = bibolina;
jotzen_mota = BIBOLINA;
mota_str = "BIBOLINA";
}
else if (event.key.keysym.sym == SDLK_3)
{
jotzen = flauta;
jotzen_mota = FLAUTA;
mota_str = "FLAUTA";
}
else if (event.key.keysym.sym == SDLK_4)
{
jotzen = gitarra;
jotzen_mota = GITARRA;
mota_str = "GITARRA";
}
}
}
}
}
else
{
printf("ERROREA\n");
}
}
void pausatu()
{
// Pausatuta egon den denbora kalkulatzeko aldagarri batzuk
double Hasiera = 0;
double Bukaera = 0;
Hasiera = (double) clock() / CLOCKS_PER_SEC;
SDL_Event event;
while (oraingo_egoera == PAUSATU)
{
while (SDL_PollEvent(&event))
{
if (event.type == SDL_KEYDOWN)
{
if (event.key.keysym.sym == SDLK_0)
{
oraingo_egoera = aurreko_egoera;
break; // Barruko blukletik ateratzeko (kanpokotik automatikoki aterako da egorea aldatu dugulako)
}
}
}
}
// Egoera aladatzean pasa den denbora kalkulatzen dugu
Bukaera = (double) clock() / CLOCKS_PER_SEC;
denboraPausatuta = (int) ((Bukaera - Hasiera) * 1000);
}
void paratu()
{
SDL_Event event;
while (oraingo_egoera == PARATU)
{
while (SDL_PollEvent(&event))
{
if (event.type == SDL_KEYDOWN)
{
if (event.key.keysym.sym == SDLK_p)
{
oraingo_egoera = aurreko_egoera;
if (oraingo_egoera == GRABATU)
{
if (fitxGrabatu) // Ea fitxategi bat dagoen konprobatzen degu
{
fclose(fitxGrabatu); // Ixten dugu fitxategua paratu dugulako
}
}
else if (oraingo_egoera == ERREPRODUZITU)
{
if (fitxErreproduzitu) // Ea fitxategi bat dagoen konprobatzen degu
{
fclose(fitxErreproduzitu); // Ixten dugu fitxategua paratu dugulako
}
}
break;
}
}
}
}
}
void erreproduzitu()
{
if (!fitxErreproduzitu) // Erreproduzitzeko abestia oraindik irekita ez badago orduan erreproduzitzen hasten gara
{
do
{
int zenbakia;
char str[128];
char* abestiaren_izena = (char*) malloc(sizeof(char) * 14); // Beti 14 karaktereko izena izango du
// Ireki nahi dugun abestiaren zenbakia eskatzen dugu
printf("Sartu erreproduzitu nahi dezun abestiaren ZENBAKIA\n");
fgets(str, 128, stdin);
sscanf(str, "%d", &zenbakia);
// Dena lotzen dugu fitzategiaren izena sortzeko
sprintf(abestiaren_izena, "%s%03d%s", "abestia", zenbakia, ".txt");
fitxErreproduzitu = fopen(abestiaren_izena, "r");
// Hau egiteko (fitxategia ireki saiatu ordez access() erablitzeko) <unistd.h> gehitu behar degu
if (fitxErreproduzitu)
{
break; // Irekita daukagu
}
else // Ezin izan dugu fitxateguia ireki, orduan berriro prozesua errepikatzen degu (horregatik do-while erablitzen dugu)
{
printf("Abesti hori ez da existitzen\n");
}
} while (!fitxErreproduzitu); // fitx == NULL
}
if (fitxErreproduzitu != NULL) {
char* instr_mota_str = (char*) malloc(sizeof(char) * 15);
SDL_Event event;
// Erreproduzitzean baita ere ebentuak entzuten ditugu pausatzeko tekla pultzasioak entzuteko gai ahal izateko
while (oraingo_egoera == ERREPRODUZITU)
{
while (SDL_PollEvent(&event))
{
// Fitxategitik irakutzen dugu eta bukaerara hetzen badugu fitxateguia ixten dugu ta buklea apurtzen dugu
if (EOF == fscanf(fitxErreproduzitu, "%s", instr_mota_str))
{
fclose(fitxErreproduzitu);
break; // ADI! Break azkenean joan behar da!
}
if (event.type == SDL_QUIT)
{
exit(0); // Hau programa GUZTIA hixten du
}
else if (event.type == SDL_KEYDOWN)
{
if (event.key.keysym.sym == SDLK_0) // Pusatzeko tekla pultzatzen badugu pausatzen dugu
{
oraingo_egoera = PAUSATU;
aurreko_egoera = ERREPRODUZITU;
break; // ADI! Break azkenean joan behar da egoreak alda dezaten
}
if (event.key.keysym.sym == SDLK_9) // Paratzeko tekla pultzatzen badugu pausatzen dugu
{
oraingo_egoera = PARATU;
aurreko_egoera = ERREPRODUZITU;
break; // ADI! Break azkenean joan behar da egoreak alda dezaten
}
}
// Instrumentua berreskuratzen degu
INSTRUMENTUA jotzen;
if (0 == strcmp(instr_mota_str, "PIANOA"))
{
jotzen = piano;
}
else if (0 == strcmp(instr_mota_str, "BIBOLINA"))
{
jotzen = bibolina;
}
else if (0 == strcmp(instr_mota_str, "GITARRA"))
{
jotzen = gitarra;
}
else if (0 == strcmp(instr_mota_str, "FLAUTA"))
{
jotzen = flauta;
}
if (0 == strcmp(instr_mota_str, "DELAY"))
{
int delay_denbora;
fscanf(fitxErreproduzitu, "%d", &delay_denbora);
SDL_Delay(delay_denbora);
}
else
{
// Nota berreskuratzen eta erreproduzitzen degu
char* nota_str = (char*) malloc(sizeof(char) * 15);
fscanf(fitxErreproduzitu, "%s", nota_str);
if (0 == strcmp(nota_str, "DO"))
{
Mix_PlayChannel(-1, jotzen.notak.DO, 0);
}
else if (0 == strcmp(nota_str, "DO_S"))
{
Mix_PlayChannel(-1, jotzen.notak.DO_S, 0);
}
else if (0 == strcmp(nota_str, "RE"))
{
Mix_PlayChannel(-1, jotzen.notak.RE, 0);
}
else if (0 == strcmp(nota_str, "RE_S"))
{
Mix_PlayChannel(-1, jotzen.notak.RE_S, 0);
}
else if (0 == strcmp(nota_str, "MI"))
{
Mix_PlayChannel(-1, jotzen.notak.MI, 0);
}
else if (0 == strcmp(nota_str, "FA"))
{
Mix_PlayChannel(-1, jotzen.notak.FA, 0);
}
else if (0 == strcmp(nota_str, "FA_S"))
{
Mix_PlayChannel(-1, jotzen.notak.FA_S, 0);
}
else if (0 == strcmp(nota_str, "SOL"))
{
Mix_PlayChannel(-1, jotzen.notak.SOL, 0);
}
else if (0 == strcmp(nota_str, "SOL_S"))
{
Mix_PlayChannel(-1, jotzen.notak.SOL_S, 0);
}
else if (0 == strcmp(nota_str, "LA"))
{
Mix_PlayChannel(-1, jotzen.notak.LA, 0);
}
else if (0 == strcmp(nota_str, "LA_S"))
{
Mix_PlayChannel(-1, jotzen.notak.LA_S, 0);
}
else if (0 == strcmp(nota_str, "SI"))
{
Mix_PlayChannel(-1, jotzen.notak.SI, 0);
}
}
}
}
}
else
{
printf("ERROREA");
}
}
void jo()
{
// Instrumentua aukeratzen dugu
INSTRUMENTUA jotzen;
switch (jotzen_mota)
{
case PIANOA:
jotzen = piano;
break;
case GITARRA:
jotzen = gitarra;
break;
case BIBOLINA:
jotzen = bibolina;
break;
case FLAUTA:
jotzen = flauta;
break;
}
SDL_Event event; // Gerta ditzaketen ebentuak godeko dugun aldagarri bat definitzen degu
int running = 1;
while (oraingo_egoera == JO && running) // BUKLE AMAIEZINA: Gure aplikazioa behin eta berriro egongo da ebentuak "entzuten"
{
// Ebentua prozezatzen dugo (ebetuak gauza asko izan dezakete, adibidez teklatuko tekla bat jo
while (SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT)
{
exit(0); // Hau programa GUZTIA hixten du
}
else if (event.type == SDL_KEYDOWN)
{
if (event.key.keysym.sym == SDLK_ESCAPE)
{
running = 0;
}
else if (event.key.keysym.sym == SDLK_a)
{
Mix_PlayChannel(-1, jotzen.notak.DO, 0);
}
else if (event.key.keysym.sym == SDLK_w)
{
Mix_PlayChannel(-1, jotzen.notak.DO_S, 0);
}
else if (event.key.keysym.sym == SDLK_s)
{
Mix_PlayChannel(-1, jotzen.notak.RE, 0);
}
else if (event.key.keysym.sym == SDLK_e)
{
Mix_PlayChannel(-1, jotzen.notak.RE_S, 0);
}
else if (event.key.keysym.sym == SDLK_d)
{
Mix_PlayChannel(-1, jotzen.notak.MI, 0);
}
else if (event.key.keysym.sym == SDLK_f)
{
Mix_PlayChannel(-1, jotzen.notak.FA, 0);
}
else if (event.key.keysym.sym == SDLK_t)
{
Mix_PlayChannel(-1, jotzen.notak.FA_S, 0);
}
else if (event.key.keysym.sym == SDLK_g)
{
Mix_PlayChannel(-1, jotzen.notak.SOL, 0);
}
else if (event.key.keysym.sym == SDLK_y)
{
Mix_PlayChannel(-1, jotzen.notak.SOL_S, 0);
}
else if (event.key.keysym.sym == SDLK_h)
{
Mix_PlayChannel(-1, jotzen.notak.LA, 0);
}
else if (event.key.keysym.sym == SDLK_u)
{
Mix_PlayChannel(-1, jotzen.notak.LA_S, 0);
}
else if (event.key.keysym.sym == SDLK_j)
{
Mix_PlayChannel(-1, jotzen.notak.SI, 0);
}
else if (event.key.keysym.sym == SDLK_1)
{
jotzen = piano;
jotzen_mota = PIANOA;
}
else if (event.key.keysym.sym == SDLK_2)
{
jotzen = bibolina;
jotzen_mota = BIBOLINA;
}
else if (event.key.keysym.sym == SDLK_3)
{
jotzen = flauta;
jotzen_mota = FLAUTA;
}
else if (event.key.keysym.sym == SDLK_4)
{
jotzen = gitarra;
jotzen_mota = GITARRA;
}
}
}
}
}
void itzali()
{
// Kargatuta dauzkagun soinu guztiak ezabatzen ditugu
Mix_FreeChunk(piano.notak.DO);
Mix_FreeChunk(piano.notak.DO_S);
Mix_FreeChunk(piano.notak.RE);
Mix_FreeChunk(piano.notak.RE_S);
Mix_FreeChunk(piano.notak.MI);
Mix_FreeChunk(piano.notak.FA);
Mix_FreeChunk(piano.notak.SOL);
Mix_FreeChunk(piano.notak.SOL_S);
Mix_FreeChunk(piano.notak.LA);
Mix_FreeChunk(piano.notak.LA_S);
Mix_FreeChunk(piano.notak.SI);
/*
Mix_FreeChunk(bibolina.notak.DO);
Mix_FreeChunk(bibolina.notak.DO_S);
Mix_FreeChunk(bibolina.notak.RE);
Mix_FreeChunk(bibolina.notak.RE_S);
Mix_FreeChunk(bibolina.notak.MI);
Mix_FreeChunk(bibolina.notak.FA);
Mix_FreeChunk(bibolina.notak.SOL);
Mix_FreeChunk(bibolina.notak.SOL_S);
Mix_FreeChunk(bibolina.notak.LA);
Mix_FreeChunk(bibolina.notak.LA_S);
Mix_FreeChunk(bibolina.notak.SI);
Mix_FreeChunk(gitarra.notak.DO);
Mix_FreeChunk(gitarra.notak.DO_S);
Mix_FreeChunk(gitarra.notak.RE);
Mix_FreeChunk(gitarra.notak.RE_S);
Mix_FreeChunk(gitarra.notak.MI);
Mix_FreeChunk(gitarra.notak.FA);
Mix_FreeChunk(gitarra.notak.SOL);
Mix_FreeChunk(gitarra.notak.SOL_S);
Mix_FreeChunk(gitarra.notak.LA);
Mix_FreeChunk(gitarra.notak.LA_S);
Mix_FreeChunk(gitarra.notak.SI);
Mix_FreeChunk(flauta.notak.DO);
Mix_FreeChunk(flauta.notak.DO_S);
Mix_FreeChunk(flauta.notak.RE);
Mix_FreeChunk(flauta.notak.RE_S);
Mix_FreeChunk(flauta.notak.MI);
Mix_FreeChunk(flauta.notak.FA);
Mix_FreeChunk(flauta.notak.SOL);
Mix_FreeChunk(flauta.notak.SOL_S);
Mix_FreeChunk(flauta.notak.LA);
Mix_FreeChunk(flauta.notak.LA_S);
Mix_FreeChunk(flauta.notak.SI);
*/
}
/*
* funtzioak.h
*
* Created on: 30 may. 2017
* Author: alex
*/
#ifndef FUNTZIOAK_H_
#define FUNTZIOAK_H_
#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>
typedef enum egoera
{
PIZTUTA, GRABATU, PAUSATU, PARATU, ERREPRODUZITU, JO
} EGOERA;
typedef enum instrumentu_mota
{
BIBOLINA, GITARRA, FLAUTA, PIANOA
} INSTRUMENTU_MOTA;
typedef struct notak
{
Mix_Chunk* DO;
Mix_Chunk* DO_S;
Mix_Chunk* RE;
Mix_Chunk* RE_S;
Mix_Chunk* MI;
Mix_Chunk* FA;
Mix_Chunk* FA_S;
Mix_Chunk* SOL;
Mix_Chunk* SOL_S;
Mix_Chunk* LA;
Mix_Chunk* LA_S;
Mix_Chunk* SI;
} NOTAK;
typedef struct instrumentua
{
INSTRUMENTU_MOTA mota;
NOTAK notak;
} INSTRUMENTUA;
INSTRUMENTUA piano;
INSTRUMENTUA bibolina;
INSTRUMENTUA gitarra;
INSTRUMENTUA flauta;
EGOERA oraingo_egoera;
EGOERA aurreko_egoera;
INSTRUMENTU_MOTA jotzen_mota;
FILE* fitxErreproduzitu; // Erreproduzitzen ari den abestia (NULL paratuta edo beste egoeran badago)
FILE* fitxGrabatu; // Grabatzen ari den abestia (NULL paratuta edo beste egoeran badago)
int denboraPausatuta;
void piztu();
void grabatu();
void pausatu();
void paratu();
void erreproduzitu();
void jo();
void itzali();
#endif /* FUNTZIOAK_H_ */
/*
* main.c
*
* Created on: 30 may. 2017
* Author: alex
*/
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>
#include "funtzioak.h"
int main()
{
// SDL2 erabiltzeko gauza batzuk hastu/ireki behar ditugu
SDL_Init(SDL_INIT_AUDIO); // Ez da beharrezkoa SDL_INIT_VIDEO erabiltzea
Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048);
SDL_Window *window = SDL_CreateWindow("Hola!",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 100, 100,
SDL_WINDOW_OPENGL);
/* HAU ALDATU BEHAR DA */
oraingo_egoera = GRABATU;
jotzen_mota = PIANOA;
/***********************/
piztu();
while (1)
{
switch (oraingo_egoera)
{
case PIZTUTA:
piztu();
break;
case GRABATU:
grabatu();
break;
case PAUSATU:
pausatu();
break;
case PARATU:
paratu();
break;
case ERREPRODUZITU:
erreproduzitu();
break;
case JO:
jo();
break;
}
}
// Gauzak itxi behar dira erabili ondoren
itzali();
Mix_CloseAudio();
SDL_Quit();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment