Skip to content

Commit

Permalink
v1.0.0 (TelmiSync compatibility)
Browse files Browse the repository at this point in the history
  • Loading branch information
DantSu committed Feb 13, 2024
1 parent 35ac8b7 commit ff5c1c4
Show file tree
Hide file tree
Showing 10 changed files with 234 additions and 145 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.DS_Store
.vscode/
*.o
/documents/
/design/
/src/**/*.log
/build/
Expand Down
19 changes: 11 additions & 8 deletions src/storyTeller/app_autosleep.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@

#include "system/display.h"

#define AUTOSLEEP_INACTIVE_TIME_SCREEN_ON 30
#define AUTOSLEEP_INACTIVE_TIME_SCREEN_OFF 180
#include "./app_parameters.h"

static bool autosleepLocked = false;
static long int autosleepTime = 0;
static int autosleepTimeScreenOn = 0;
static int autosleepTimeScreenOff = 0;

long int autosleep_timestamp(void) {
return (long int) time(0);
Expand All @@ -18,9 +19,9 @@ long int autosleep_timestamp(void) {
void autosleep_keepAwake(void)
{
if(display_enabled) {
autosleepTime = autosleep_timestamp() + AUTOSLEEP_INACTIVE_TIME_SCREEN_ON;
autosleepTime = autosleep_timestamp() + autosleepTimeScreenOn;
} else {
autosleepTime = autosleep_timestamp() + AUTOSLEEP_INACTIVE_TIME_SCREEN_OFF;
autosleepTime = autosleep_timestamp() + autosleepTimeScreenOff;
}
}

Expand All @@ -33,18 +34,20 @@ bool autosleep_isSleepingTime(void)
return false;
}

void autosleep_lock() {
void autosleep_lock(void) {
autosleepLocked = true;
}

void autosleep_unlock() {
void autosleep_unlock(int timeScreenOn, int timeScreenOff) {
autosleepTimeScreenOn = timeScreenOn;
autosleepTimeScreenOff = timeScreenOff;
autosleep_keepAwake();
autosleepLocked = false;
}

void autosleep_init(void)
void autosleep_init(int timeScreenOn, int timeScreenOff)
{
autosleep_keepAwake();
autosleep_unlock(timeScreenOn, timeScreenOff);
}

#endif // STORYTELLER_APP_AUTOSLEEP__
65 changes: 65 additions & 0 deletions src/storyTeller/app_parameters.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#ifndef STORYTELLER_APP_PARAMETERS__
#define STORYTELLER_APP_PARAMETERS__

static double parametersAudioVolumeStartup = 0.3;
static double parametersAudioVolumeMax = 0.6;
static double parametersScreenBrightnessStartup = 0.3;
static double parametersScreenBrightnessMax = 0.6;
static int parametersScreenOnInactivityTime = 120;
static int parametersScreenOffInactivityTime = 300;
static int parametersMusicInactivityTime = 3600;

#define APP_PARAMETERS_PATH "/mnt/SDCARD/Saves/.parameters"


int parameters_getAudioVolumeStartup() {
return (int)(parametersAudioVolumeStartup * 20 + 0.5);
}

int parameters_getAudioVolumeMax() {
return (int)(parametersAudioVolumeMax * 20 + 0.5);
}

int parameters_getAudioVolumeValidation(int audioVolume) {
return audioVolume > parameters_getAudioVolumeMax() ? parameters_getAudioVolumeMax() : audioVolume;
}

int parameters_getScreenBrightnessStartup() {
return (int)(parametersScreenBrightnessStartup * 10 + 0.5);
}

int parameters_getScreenBrightnessMax() {
return (int)(parametersScreenBrightnessMax * 10 + 0.5);
}

int parameters_getScreenBrightnessValidation(int brightness) {
return brightness > parameters_getScreenBrightnessMax() ? parameters_getScreenBrightnessMax() : brightness;
}

int parameters_getScreenOnInactivityTime() {
return parametersScreenOnInactivityTime;
}

int parameters_getScreenOffInactivityTime() {
return parametersScreenOffInactivityTime;
}

int parameters_getMusicInactivityTime() {
return parametersMusicInactivityTime;
}

void parameters_init(void)
{
cJSON *parameters = json_load(APP_PARAMETERS_PATH);
if(parameters != NULL) {
json_getDouble(parameters, "audioVolumeStartup", &parametersAudioVolumeStartup);
json_getDouble(parameters, "audioVolumeMax", &parametersAudioVolumeMax);
json_getDouble(parameters, "screenBrightnessStartup", &parametersScreenBrightnessStartup);
json_getDouble(parameters, "screenBrightnessMax", &parametersScreenBrightnessMax);
json_getInt(parameters, "screenOnInactivityTime", &parametersScreenOnInactivityTime);
json_getInt(parameters, "screenOffInactivityTime", &parametersScreenOffInactivityTime);
json_getInt(parameters, "musicInactivityTime", &parametersMusicInactivityTime);
}
}

#endif // STORYTELLER_APP_PARAMETERS__
2 changes: 1 addition & 1 deletion src/storyTeller/app_selector.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ void app_refreshScreen(void)
}
video_displayImage(SYSTEM_RESOURCES, appImages[appIndex]);
display_setScreen(true);
autosleep_unlock();
autosleep_unlock(parameters_getScreenOnInactivityTime(), parameters_getScreenOffInactivityTime());
}

void app_previous(void)
Expand Down
16 changes: 11 additions & 5 deletions src/storyTeller/music_player.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#include "./app_autosleep.h"
#include "./sdl_helper.h"
#include "./app_parameters.h"

static char **musicList = NULL;
static int musicCount = 0;
Expand All @@ -17,6 +18,10 @@ static void (*callback_musicplayer_autoplay)(void);
#define SYSTEM_RESOURCES "/mnt/SDCARD/.tmp_update/res/"
#define MUSICPLAYER_RESOURCES "/mnt/SDCARD/Music/"

void musicplayer_autosleep_unlock(void) {
autosleep_unlock(parameters_getMusicInactivityTime(), parameters_getMusicInactivityTime());
}


void musicplayer_load(void)
{
Expand All @@ -35,7 +40,6 @@ void musicplayer_load(void)

video_displayBlackScreen();
display_setScreen(false);
autosleep_lock();
audio_play(MUSICPLAYER_RESOURCES, musicList[musicIndex], &position);
Mix_HookMusicFinished(callback_musicplayer_autoplay);
}
Expand All @@ -59,19 +63,20 @@ void musicplayer_ok(void)

void musicplayer_autoplay(void)
{
musicplayer_next();
musicIndex += 1;
musicplayer_load();
}


void musicplayer_pause(void)
{
if(Mix_PlayingMusic() == 1) {
if (Mix_PausedMusic() == 1) {
autosleep_lock();
Mix_ResumeMusic();
musicplayer_autosleep_unlock();
} else {
autosleep_unlock();
Mix_PauseMusic();
autosleep_lock();
}
}
}
Expand All @@ -94,11 +99,12 @@ void musicplayer_save(void)

bool musicplayer_isMp3File(const char *fileName)
{
return strcmp((char *)fileName + strlen(fileName) - 4, ".mp3") == 0 || strcmp((char *)fileName + strlen(fileName) - 4, ".MP3") == 0;
return strcmp((char *)fileName + strlen(fileName) - 4, ".mp3") == 0;
}

void musicplayer_init(void)
{
musicplayer_autosleep_unlock();
callback_musicplayer_autoplay = &musicplayer_autoplay;

video_displayImage(SYSTEM_RESOURCES, "loadingMusic.png");
Expand Down
Loading

0 comments on commit ff5c1c4

Please sign in to comment.