aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKikooDX <kikoodx@paranoici.org>2022-03-02 00:16:38 +0100
committerKikooDX <kikoodx@paranoici.org>2022-03-02 00:16:38 +0100
commit76e13d29090faaea79dda51faddc266e2f995eea (patch)
treea7af1fb2b2c8f60de339be205b65e7def5ef56bd
parent021934137cbfab28ca505dde2df53b4d475ff94b (diff)
downloadlzy-76e13d29090faaea79dda51faddc266e2f995eea.tar.gz
play sound
-rw-r--r--inc/lzy.h61
-rw-r--r--src/main.c10
2 files changed, 70 insertions, 1 deletions
diff --git a/inc/lzy.h b/inc/lzy.h
index 2f773f4..9e4c48f 100644
--- a/inc/lzy.h
+++ b/inc/lzy.h
@@ -32,12 +32,14 @@ extern "C" {
#ifdef FXCG50
typedef void LZY_Music;
+typedef void LZY_Sound;
#else
#ifndef LZY_SDL_MIXER_INCLUDE
#define LZY_SDL_MIXER_INCLUDE <SDL_mixer.h>
#endif
#include LZY_SDL_MIXER_INCLUDE
typedef Mix_Music LZY_Music;
+typedef Mix_Chunk LZY_Sound;
#endif
int LZY_Init(const char *title, int target_fps, const char *tset_path,
@@ -55,6 +57,9 @@ int LZY_DrawChar(unsigned char chr, int x, int y);
LZY_Music *LZY_MusicLoad(const char *path);
int LZY_MusicDestroy(LZY_Music *music);
int LZY_MusicPlay(LZY_Music *music, int loops);
+LZY_Sound *LZY_SoundLoad(const char *path);
+int LZY_SoundDestroy(LZY_Sound *sound);
+int LZY_SoundPlay(LZY_Sound *sound, int loops);
void LZY_CycleEvents(void);
int LZY_KeyDown(unsigned int key);
int LZY_ShouldQuit(void);
@@ -289,16 +294,34 @@ LZY_Music *LZY_MusicLoad(const char *path) {
LZY_UNUSED(path);
return NULL;
}
+
int LZY_MusicDestroy(LZY_Music *music) {
LZY_UNUSED(music);
return -1;
}
+
int LZY_MusicPlay(LZY_Music *music, int loops) {
LZY_UNUSED(music);
LZY_UNUSED(loops);
return -1;
}
+LZY_Sound *LZY_SoundLoad(const char *path) {
+ LZY_UNUSED(path);
+ return NULL;
+}
+
+int LZY_SoundDestroy(LZY_Sound *sound) {
+ LZY_UNUSED(sound);
+ return -1;
+}
+
+int LZY_SoundPlay(LZY_Sound *sound, int loops) {
+ LZY_UNUSED(sound);
+ LZY_UNUSED(loops);
+ return -1;
+}
+
void LZY_CycleEvents(void) {
clearevents();
should_quit = should_quit || keydown(KEY_EXIT);
@@ -629,9 +652,14 @@ LZY_Music *LZY_MusicLoad(const char *path) {
}
int LZY_MusicPlay(LZY_Music *music, int loops) {
+ if (music == NULL) {
+ error = "music is NULL";
+ return -1;
+ }
+
if (Mix_PlayMusic(music, loops) < 0) {
error = Mix_GetError();
- return -1;
+ return -2;
}
return 0;
}
@@ -646,6 +674,37 @@ int LZY_MusicDestroy(LZY_Music *music) {
return 0;
}
+LZY_Sound *LZY_SoundLoad(const char *path) {
+ LZY_Sound *const sound = Mix_LoadWAV(path);
+ if (sound == NULL)
+ error = Mix_GetError();
+ return sound;
+}
+
+int LZY_SoundPlay(LZY_Sound *sound, int loops) {
+ if (sound == NULL) {
+ error = "sound is NULL";
+ return -1;
+ }
+
+ if (Mix_PlayChannel(-1, sound, loops) < 0) {
+ error = Mix_GetError();
+ return -2;
+ }
+
+ return 0;
+}
+
+int LZY_SoundDestroy(LZY_Sound *sound) {
+ if (sound == NULL) {
+ error = "sound is NULL";
+ return -1;
+ }
+
+ Mix_FreeChunk(sound);
+ return 0;
+}
+
void LZY_CycleEvents(void) {
static const SDL_Scancode sc[LZYK_COUNT] = {
SDL_SCANCODE_LEFT, SDL_SCANCODE_RIGHT, SDL_SCANCODE_UP,
diff --git a/src/main.c b/src/main.c
index 5bb42f1..452f9d4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -9,6 +9,8 @@
static void draw_player(int x, int y);
int main(void) {
+ LZY_Music *music;
+ LZY_Sound *sound;
int x = 0;
int y = 0;
@@ -19,6 +21,11 @@ int main(void) {
}
LZY_Log("init was great success!");
+ sound = LZY_SoundLoad("res/sound.wav");
+ music = LZY_MusicLoad("res/music.ogg");
+ LZY_SoundPlay(sound, 0);
+ LZY_MusicPlay(music, 0);
+
do {
/* update */
LZY_CycleEvents();
@@ -42,6 +49,9 @@ int main(void) {
LZY_DrawEnd();
} while (!LZY_ShouldQuit());
+ LZY_MusicDestroy(music);
+ LZY_SoundDestroy(sound);
+
LZY_Log("cya");
LZY_Quit();
return 0;