Browse Source

init C version

develop
Carmine De Rosa 5 years ago
parent
commit
9e731cd43d
  1. BIN
      C/BANK1/1.wav
  2. BIN
      C/BANK1/2.wav
  3. BIN
      C/BANK1/3.wav
  4. BIN
      C/BANK1/4.wav
  5. BIN
      C/BANK1/5.wav
  6. BIN
      C/BANK1/6.wav
  7. 1
      C/compile.sh
  8. BIN
      C/main
  9. 120
      C/main.cpp

BIN
C/BANK1/1.wav

Binary file not shown.

BIN
C/BANK1/2.wav

Binary file not shown.

BIN
C/BANK1/3.wav

Binary file not shown.

BIN
C/BANK1/4.wav

Binary file not shown.

BIN
C/BANK1/5.wav

Binary file not shown.

BIN
C/BANK1/6.wav

Binary file not shown.

1
C/compile.sh

@ -0,0 +1 @@
g++ -o main -I/usr/include/SDL2 main.cpp -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer

BIN
C/main

Binary file not shown.

120
C/main.cpp

@ -0,0 +1,120 @@
#include <stdio.h>
#include "SDL.h"
#include "SDL_mixer.h"
#include "SDL_image.h"
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <math.h>
#define NUM_WAVEFORMS 6
const char* _waveFileNames[] = {
"BANK1/1.wav",
"BANK1/2.wav",
"BANK1/3.wav",
"BANK1/4.wav",
"BANK1/5.wav",
"BANK1/6.wav",
};
Mix_Chunk* _sample[6];
int Init(void) {
memset(_sample, 0, sizeof(Mix_Chunk*) * 6);
// Set up the audio stream
int result = Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 512);
if( result < 0 ) {
fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError());
exit(-1);
}
result = Mix_AllocateChannels(4);
if( result < 0 ) {
fprintf(stderr, "Unable to allocate mixing channels: %s\n", SDL_GetError());
exit(-1);
}
// Load waveforms
for( int i = 0; i < NUM_WAVEFORMS; i++ ) {
_sample[i] = Mix_LoadWAV(_waveFileNames[i]);
if( _sample[i] == NULL ) {
fprintf(stderr, "Unable to load wave file: %s\n", _waveFileNames[i]);
}
}
return true;
}
int main(int argc, char** argv) {
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO );
atexit(SDL_Quit);
SDL_Window* window = SDL_CreateWindow("Sonquencer",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
800,
600,
SDL_WINDOW_RESIZABLE);
if (Init() == false) { return -1;}
SDL_Event Event;
bool done = false;
while (!done) {
bool gotEvent = SDL_PollEvent(&Event);
while (!done && gotEvent) {
switch (Event.type) {
case SDL_KEYDOWN:
switch (Event.key.keysym.sym) {
case '1':
Mix_PlayChannel(-1, _sample[0], 0);
break;
case '2':
Mix_PlayChannel(-1, _sample[1], 0);
break;
case '3':
Mix_PlayChannel(-1, _sample[2], 0);
break;
case '4':
Mix_PlayChannel(-1, _sample[3], 0);
break;
case '5':
Mix_PlayChannel(-1, _sample[4], 0);
break;
case '6':
Mix_PlayChannel(-1, _sample[5], 0);
break;
default:
break;
}
break;
case SDL_QUIT:
done = true;
break;
default:
break;
}
if( !done ) { gotEvent = SDL_PollEvent(&Event); }
}
usleep(1000);
}
for( int i = 0; i < NUM_WAVEFORMS; i++ ) {
Mix_FreeChunk(_sample[i]);
}
Mix_CloseAudio();
SDL_Quit();
return 0;
}
Loading…
Cancel
Save