summaryrefslogtreecommitdiff
path: root/session.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2009-08-23 18:52:45 +0200
committerGravatar waker <wakeroid@gmail.com>2009-08-23 18:52:45 +0200
commit0362134c01113aecff6936e1125bafdbaf6378a9 (patch)
tree92f1aa74f73dce1f23c6e52a57c775598a79e217 /session.c
parent16b01f9f0da4263e20c2944490b77005e0a0ce1d (diff)
updated session to store playback order and looping mode
Diffstat (limited to 'session.c')
-rw-r--r--session.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/session.c b/session.c
index ba0f285a..6863e2e5 100644
--- a/session.c
+++ b/session.c
@@ -24,6 +24,8 @@
char session_dir[2048];
float session_volume;
+int session_playlist_order;
+int session_playlist_looping;
int session_win_attrs[5] = { 40, 40, 500, 300, 0 };
static uint8_t sessfile_magic[] = { 0xdb, 0xef, 0x5e, 0x55 }; // dbefsess in hexspeak
@@ -107,6 +109,8 @@ void
session_reset (void) {
session_volume = 0;
session_dir[0] = 0;
+ session_playlist_looping = 0;
+ session_playlist_order = 0;
session_win_attrs[0] = 40;
session_win_attrs[1] = 40;
session_win_attrs[2] = 500;
@@ -139,6 +143,12 @@ session_save (const char *fname) {
if (write_i32_be (*((uint32_t*)&session_volume), fp) != 4) {
goto session_save_fail;
}
+ if (write_i32_be (session_playlist_order, fp) != 4) {
+ goto session_save_fail;
+ }
+ if (write_i32_be (session_playlist_looping, fp) != 4) {
+ goto session_save_fail;
+ }
for (int k = 0; k < 5; k++) {
if (write_i32_be (session_win_attrs[k], fp) != 4) {
goto session_save_fail;
@@ -187,6 +197,18 @@ session_load (const char *fname) {
if (read_i32_be ((uint32_t*)&session_volume, fp) != 4) {
goto session_load_fail;
}
+ if (read_i32_be (&session_playlist_order, fp) != 4) {
+ goto session_load_fail;
+ }
+ if (session_playlist_order < 0 || session_playlist_order > 2) {
+ goto session_load_fail;
+ }
+ if (read_i32_be (&session_playlist_looping, fp) != 4) {
+ goto session_load_fail;
+ }
+ if (session_playlist_looping < 0 || session_playlist_looping > 2) {
+ goto session_load_fail;
+ }
for (int k = 0; k < 5; k++) {
if (read_i32_be (&session_win_attrs[k], fp) != 4) {
goto session_load_fail;
@@ -224,3 +246,22 @@ session_get_volume (void) {
return session_volume;
}
+void
+session_set_playlist_order (int order) {
+ session_playlist_order = order;
+}
+
+int
+session_get_playlist_order (void) {
+ return session_playlist_order;
+}
+
+void
+session_set_playlist_looping (int looping) {
+ session_playlist_looping = looping;
+}
+
+int
+session_get_playlist_looping (void) {
+ return session_playlist_looping;
+}