summaryrefslogtreecommitdiff
path: root/apps/settings.c
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2004-01-14 00:13:04 +0000
committerBjörn Stenberg <bjorn@haxx.se>2004-01-14 00:13:04 +0000
commita108ec2ebd237835a688ae5c82c90e07607219ae (patch)
tree17c0af92368ee76d16cfdc2162aadbb7f103d926 /apps/settings.c
parent50b6358272eaf1f255bcb430766e6fc9e26810d3 (diff)
downloadrockbox-a108ec2ebd237835a688ae5c82c90e07607219ae.zip
rockbox-a108ec2ebd237835a688ae5c82c90e07607219ae.tar.gz
rockbox-a108ec2ebd237835a688ae5c82c90e07607219ae.tar.bz2
rockbox-a108ec2ebd237835a688ae5c82c90e07607219ae.tar.xz
Added Benjamin Metzlers bookmarking feature (patch #669440)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4227 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c48
1 files changed, 45 insertions, 3 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 1cde6e0..a342acc 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -56,6 +56,7 @@
#include "language.h"
#include "wps-display.h"
#include "powermgmt.h"
+#include "bookmark.h"
#include "sprintf.h"
#include "keyboard.h"
#include "version.h"
@@ -143,7 +144,7 @@ Rest of config block, only saved to disk:
caption backlight (bit 1)
car adapter mode (bit 2)
line_in (Player only) (bit 3)
-0xAF [available/unused]
+0xAF <most-recent-bookmarks, auto-bookmark, autoload>
0xB0 peak meter clip hold timeout (bit 0-4), peak meter performance (bit 7)
0xB1 peak meter release step size, peak_meter_dbfs (bit 7)
0xB2 peak meter min either in -db or in percent
@@ -419,6 +420,9 @@ int settings_save( void )
((global_settings.caption_backlight & 1) << 1) |
((global_settings.car_adapter_mode & 1) << 2) |
((global_settings.line_in & 1) << 3));
+ config_block[0xaf] = ((global_settings.usemrb << 5) |
+ (global_settings.autocreatebookmark << 2) |
+ (global_settings.autoloadbookmark));
config_block[0xb0] = (unsigned char)global_settings.peak_meter_clip_hold |
(global_settings.peak_meter_performance ? 0x80 : 0);
config_block[0xb1] = global_settings.peak_meter_release |
@@ -771,6 +775,9 @@ void settings_load(void)
if (config_block[0xa9] != 0xff)
global_settings.jump_scroll_delay = config_block[0xa9];
#endif
+ global_settings.usemrb = (config_block[0xaf] >> 5) & 3;
+ global_settings.autocreatebookmark = (config_block[0xaf] >> 2) & 7;
+ global_settings.autoloadbookmark = (config_block[0xaf]) & 3;
}
settings_apply();
@@ -1128,6 +1135,21 @@ bool settings_load_config(char* file)
set_cfg_option(&global_settings.recursive_dir_insert, value,
options, 3);
}
+ else if (!strcasecmp(name, "autoload bookmarks"))
+ {
+ static char* options[] = {"off", "on", "ask"};
+ set_cfg_option(&global_settings.autoloadbookmark, value, options, 3);
+ }
+ else if (!strcasecmp(name, "autocreate bookmarks"))
+ {
+ static char* options[] = {"off", "on", "ask","recent only - yes","recent only - ask"};
+ set_cfg_option(&global_settings.autocreatebookmark, value, options, 5);
+ }
+ else if (!strcasecmp(name, "use most-recent-bookmarks"))
+ {
+ static char* options[] = {"off", "on", "unique only"};
+ set_cfg_option(&global_settings.usemrb, value, options, 3);
+ }
}
close(fd);
@@ -1143,6 +1165,7 @@ bool settings_save_config(void)
int fd, i, value;
char filename[MAX_PATH];
char* boolopt[] = {"off","on"};
+ char* triopt[] = {"off","on","ask"};
/* find unused filename */
for (i=0; ; i++) {
@@ -1431,11 +1454,27 @@ bool settings_save_config(void)
#endif
+ fprintf(fd, "#\r\n# Bookmarking\r\n#\r\n");
+ {
+ fprintf(fd, "autoload bookmarks: %s\r\n",
+ triopt[global_settings.autoloadbookmark]);
+ }
+
+ {
+ static char* options[] = {"off", "on", "ask","recent only - on", "recent only - ask"};
+ fprintf(fd, "autocreate bookmarks: %s\r\n",
+ options[global_settings.autocreatebookmark]);
+ }
+
+ {
+ static char* options[] = {"off", "on", "unique only"};
+ fprintf(fd, "UseMRB: %s\r\n", options[global_settings.usemrb]);
+ }
+
fprintf(fd, "#\r\n# Playlists\r\n#\r\n");
{
- static char* options[] = {"off", "on", "ask"};
fprintf(fd, "recursive directory insert: %s\r\n",
- options[global_settings.recursive_dir_insert]);
+ triopt[global_settings.recursive_dir_insert]);
}
close(fd);
@@ -1528,6 +1567,9 @@ void settings_reset(void) {
global_settings.lang_file[0] = 0;
global_settings.runtime = 0;
global_settings.topruntime = 0;
+ global_settings.autocreatebookmark = BOOKMARK_NO;
+ global_settings.autoloadbookmark = BOOKMARK_NO;
+ global_settings.usemrb = BOOKMARK_NO;
global_settings.fade_on_stop = true;
global_settings.caption_backlight = false;
global_settings.car_adapter_mode = false;