summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--assets/sample.wavbin0 -> 8462 bytes
m---------external/RodeoKit0
-rw-r--r--src/input.c32
-rw-r--r--src/input.h7
-rw-r--r--src/main.c8
5 files changed, 46 insertions, 1 deletions
diff --git a/assets/sample.wav b/assets/sample.wav
new file mode 100644
index 0000000..64b8e1b
--- /dev/null
+++ b/assets/sample.wav
Binary files differ
diff --git a/external/RodeoKit b/external/RodeoKit
-Subproject 4b6ae783ce2c9f08d21d2a2969826412cc587de
+Subproject 87ca456c3f3e97f149604bc033fdd57998e2dcd
diff --git a/src/input.c b/src/input.c
index 1cb21df..c9d05e1 100644
--- a/src/input.c
+++ b/src/input.c
@@ -1,6 +1,7 @@
#include "input.h"
#include "rodeo/input.h"
+#include "rodeo/audio.h"
scenes_and_commands_t inputs = {0};
@@ -177,7 +178,26 @@ units_move_down_input(rodeo_input_any_state_t *input_state, void *data)
*(bool*)data
);
return &move;
-}
+}
+
+void*
+play_sound_input(rodeo_input_any_state_t *input_state, void *data)
+{
+ static bool down = false;
+
+ if(NULL != input_state)
+ {
+ down = input_state->data.binary_state;
+ }
+ /*
+ else if(down)
+ {
+ rodeo_audio_playSample();
+ }
+ */
+
+ return &down;
+}
#ifdef __clang__
#pragma clang diagnostic pop
@@ -207,6 +227,10 @@ register_inputs(void)
inputs.right = rodeo_input_command_create(
rodeo_input_type_Binary | rodeo_input_type_UnboundedRange | rodeo_input_type_BoundedRange
);
+
+ inputs.play_sound = rodeo_input_command_create(
+ rodeo_input_type_Binary
+ );
// --
// - register inputs -
@@ -226,6 +250,8 @@ register_inputs(void)
rodeo_input_command_register_boundedRange_controllerAxis(inputs.down, rodeo_input_boundedRange_controllerAxisLeft_Y);
rodeo_input_command_register_boundedRange_controllerAxis(inputs.left, rodeo_input_boundedRange_controllerAxisLeft_X);
rodeo_input_command_register_boundedRange_controllerAxis(inputs.right, rodeo_input_boundedRange_controllerAxisLeft_X);
+
+ rodeo_input_command_register_binary_scancode(inputs.play_sound, rodeo_input_binary_scancode_M);
// --
// - register callbacks -
@@ -234,6 +260,8 @@ register_inputs(void)
rodeo_input_command_register_callback(inputs.down, *units_move_down_input);
rodeo_input_command_register_callback(inputs.left, *units_move_left_input);
rodeo_input_command_register_callback(inputs.right, *units_move_right_input);
+
+ rodeo_input_command_register_callback(inputs.play_sound, *play_sound_input);
// --
// - register commands -
@@ -242,6 +270,8 @@ register_inputs(void)
rodeo_input_scene_register_command(inputs.scene, inputs.down);
rodeo_input_scene_register_command(inputs.scene, inputs.left);
rodeo_input_scene_register_command(inputs.scene, inputs.right);
+
+ rodeo_input_scene_register_command(inputs.scene, inputs.play_sound);
// --
// activate scene
diff --git a/src/input.h b/src/input.h
index 58abf5d..cef1519 100644
--- a/src/input.h
+++ b/src/input.h
@@ -10,6 +10,7 @@ struct
rodeo_input_command_t *right;
rodeo_input_command_t *up;
rodeo_input_command_t *down;
+ rodeo_input_command_t *play_sound;
}
scenes_and_commands_t;
@@ -51,6 +52,12 @@ units_move_down_input(
void *data
);
+void*
+play_sound_input(
+ rodeo_input_any_state_t *input_state,
+ void *data
+);
+
void
register_inputs(void);
diff --git a/src/main.c b/src/main.c
index 225ade7..4cb1cf8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -117,6 +117,13 @@ main_loop(void)
summon_position.x += *(float*)units_move_right_input(NULL, NULL) + *(float*)units_move_left_input(NULL, NULL);
summon_position.y += *(float*)units_move_down_input(NULL, NULL) + *(float*)units_move_up_input(NULL, NULL);
+ if(*(bool*)play_sound_input(NULL, NULL))
+ {
+ rodeo_audio_playSample();
+ }
+
+ //play_sound_input(NULL, NULL);
+
if(*(bool*)summon_units_input(NULL, NULL))
{
summon_units();
@@ -268,6 +275,7 @@ main(void)
//);
texture = rodeo_texture_2d_create_from_path(cstr_lit("assets/orc.png"));
+ rodeo_audio_loadSample();
rodeo_mainLoop_run(
main_loop