summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXANTRONIX Development2022-03-15 16:39:46 -0400
committerXANTRONIX Development2022-03-15 16:39:46 -0400
commit546e07855b117b22ae3a5053a5dcfef1183b0718 (patch)
tree60d09a2f2a2f53366c78ffba4d7c632954cd819c
parent420a446e1d3928cac5f3804dc70832ea91b58187 (diff)
downloadxas-546e07855b117b22ae3a5053a5dcfef1183b0718.tar.gz
xas-546e07855b117b22ae3a5053a5dcfef1183b0718.tar.bz2
xas-546e07855b117b22ae3a5053a5dcfef1183b0718.zip
You know who deserves to have moods? Drones.
-rw-r--r--include/xas/drone.h17
-rw-r--r--src/drone.c8
2 files changed, 24 insertions, 1 deletions
diff --git a/include/xas/drone.h b/include/xas/drone.h
index 96db18b..d50e305 100644
--- a/include/xas/drone.h
+++ b/include/xas/drone.h
@@ -14,11 +14,22 @@
#define XAS_DRONE_CHAMBER_BASS_FREQUENCY 20 /* Hz */
#define XAS_DRONE_CHAMBER_BASS_TYPE XAS_SYNTH_SQUARE
+enum xas_drone_mood {
+ XAS_DRONE_MOOD_NEUTRAL,
+ XAS_DRONE_MOOD_HAPPY,
+ XAS_DRONE_MOOD_FLIRTY,
+ XAS_DRONE_MOOD_SAD,
+ XAS_DRONE_MOOD_ANGRY,
+ XAS_DRONE_MOOD_DISTRESSED
+};
+
typedef struct _xas_drone {
xas_bank *bank;
+
+ enum xas_drone_mood mood;
+
xas_spatial_scene *scene;
xas_spatial_object *obj;
-
} xas_drone;
typedef struct _xas_drone_vox {
@@ -55,6 +66,10 @@ xas_drone *xas_drone_new(xas_spatial_scene *scene,
void xas_drone_destroy(xas_drone *drone);
+enum xas_drone_mood xas_drone_mood_get(xas_drone *drone);
+
+void xas_drone_mood_set(xas_drone *drone, enum xas_drone_mood mood);
+
xas_spatial_object *xas_drone_get_spatial_object(xas_drone *drone);
ssize_t xas_drone_sample_record(xas_drone *drone,
diff --git a/src/drone.c b/src/drone.c
index 188f546..4dbb7ed 100644
--- a/src/drone.c
+++ b/src/drone.c
@@ -49,6 +49,14 @@ void xas_drone_destroy(xas_drone *drone) {
free(drone);
}
+enum xas_drone_mood xas_drone_mood_get(xas_drone *drone) {
+ return drone->mood;
+}
+
+void xas_drone_mood_set(xas_drone *drone, enum xas_drone_mood mood) {
+ drone->mood = mood;
+}
+
xas_spatial_object *xas_drone_get_spatial_object(xas_drone *drone) {
return drone->obj;
}