Skip to content
Snippets Groups Projects
Commit a4864279 authored by dos's avatar dos Committed by pippin
Browse files

media: Hook up set/get/get_string functions

parent 8615bec1
No related branches found
No related tags found
No related merge requests found
...@@ -88,6 +88,16 @@ static void mp3_fetch_data(mp3_state *mp3) { ...@@ -88,6 +88,16 @@ static void mp3_fetch_data(mp3_state *mp3) {
} }
} }
static char *mp3_get_string(st3m_media *media, const char *key) {
mp3_state *self = (void *)media;
if (strcmp(key, "artist") == 0) {
return strdup(self->artist);
} else if (strcmp(key, "title") == 0) {
return strdup(self->title);
}
return NULL;
}
static void mp3_draw(st3m_media *media, Ctx *ctx) { static void mp3_draw(st3m_media *media, Ctx *ctx) {
mp3_state *self = (void *)media; mp3_state *self = (void *)media;
...@@ -235,6 +245,7 @@ st3m_media *st3m_media_load_mp3(const char *path) { ...@@ -235,6 +245,7 @@ st3m_media *st3m_media_load_mp3(const char *path) {
self->control.draw = mp3_draw; self->control.draw = mp3_draw;
self->control.think = mp3_think; self->control.think = mp3_think;
self->control.destroy = mp3_destroy; self->control.destroy = mp3_destroy;
self->control.get_string = mp3_get_string;
self->samplerate = 44100; self->samplerate = 44100;
self->buffer_size = 32 * 1024; self->buffer_size = 32 * 1024;
self->scroll_pos = 0; self->scroll_pos = 0;
......
...@@ -41,6 +41,29 @@ typedef struct { ...@@ -41,6 +41,29 @@ typedef struct {
static void mpg1_on_video(plm_t *player, plm_frame_t *frame, void *user); static void mpg1_on_video(plm_t *player, plm_frame_t *frame, void *user);
static void mpg1_on_audio(plm_t *player, plm_samples_t *samples, void *user); static void mpg1_on_audio(plm_t *player, plm_samples_t *samples, void *user);
static void mpg1_set(st3m_media *media, const char *key, float value) {
mpg1_state *self = (void *)media;
if (strcmp(key, "scale") == 0) {
self->scale = value;
} else if (strcmp(key, "grayscale") == 0) {
self->color = !value;
} else if (strcmp(key, "smoothing") == 0) {
self->smoothing = value;
}
}
static float mpg1_get(st3m_media *media, const char *key) {
mpg1_state *self = (void *)media;
if (strcmp(key, "scale") == 0) {
return self->scale;
} else if (strcmp(key, "grayscale") == 0) {
return !self->color;
} else if (strcmp(key, "smoothing") == 0) {
return self->smoothing;
}
return -1;
}
static void mpg1_think(st3m_media *media, float ms_elapsed) { static void mpg1_think(st3m_media *media, float ms_elapsed) {
mpg1_state *self = (void *)media; mpg1_state *self = (void *)media;
float elapsed_time = ms_elapsed / 1000.0; float elapsed_time = ms_elapsed / 1000.0;
...@@ -164,6 +187,8 @@ st3m_media *st3m_media_load_mpg1(const char *path) { ...@@ -164,6 +187,8 @@ st3m_media *st3m_media_load_mpg1(const char *path) {
self->control.draw = mpg1_draw; self->control.draw = mpg1_draw;
self->control.think = mpg1_think; self->control.think = mpg1_think;
self->control.destroy = mpg1_destroy; self->control.destroy = mpg1_destroy;
self->control.get = mpg1_get;
self->control.set = mpg1_set;
self->old_mode = st3m_gfx_get_mode(); self->old_mode = st3m_gfx_get_mode();
st3m_gfx_set_mode(16 | st3m_gfx_osd | st3m_gfx_EXPERIMENTAL_think_per_draw | st3m_gfx_set_mode(16 | st3m_gfx_osd | st3m_gfx_EXPERIMENTAL_think_per_draw |
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment