diff mediaplayer.c @ 2376:1c09f5be285b

Very basic UI for media player
author Michael Pavone <pavone@retrodev.com>
date Fri, 17 Nov 2023 01:05:32 -0800
parents 02c04196c2da
children 30e59954eab9
line wrap: on
line diff
--- a/mediaplayer.c	Fri Nov 17 00:30:46 2023 -0800
+++ b/mediaplayer.c	Fri Nov 17 01:05:32 2023 -0800
@@ -21,11 +21,6 @@
 	MEDIA_UNKNOWN
 };
 
-enum {
-	STATE_PLAY,
-	STATE_PAUSED
-};
-
 uint32_t cycles_to_samples(uint32_t clock_rate, uint32_t cycles)
 {
 	return ((uint64_t)cycles) * ((uint64_t)44100) / ((uint64_t)clock_rate);
@@ -464,6 +459,7 @@
 		if (sample_size > player->media->size || player->current_offset > player->media->size - sample_size) {
 			player->current_offset = player->wave->format_header.size + offsetof(wave_header, audio_format);
 			player->state = STATE_PAUSED;
+			player->playback_time = 0;
 			return;
 		}
 		if (player->wave->bits_per_sample == 16) {
@@ -498,6 +494,7 @@
 			render_put_stereo_sample(player->audio, samples[0], samples[1]);
 		} else {
 			player->state = STATE_PAUSED;
+			player->playback_time = 0;
 			return;
 		}
 	}
@@ -654,6 +651,7 @@
 		switch (player->state)
 		{
 		case STATE_PLAY:
+			player->playback_time++;
 			switch(player->media_type)
 			{
 			case AUDIO_VGM: