From f9f89cf5cb42a6540995bbb0c277e1f2e6b222b2 Mon Sep 17 00:00:00 2001 From: Thomas Jarosch Date: Wed, 2 Mar 2011 23:43:54 +0000 Subject: [PATCH] RaaA: Fix write locations of plugins git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29506 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/blackjack.c | 4 ++-- apps/plugins/brickmania.c | 4 ++-- apps/plugins/bubbles.c | 6 +++--- apps/plugins/calendar.c | 4 ++-- apps/plugins/chessbox/chessbox.c | 2 +- apps/plugins/chessbox/chessbox_pgn.c | 4 ++-- apps/plugins/clix.c | 2 +- apps/plugins/disktidy.c | 4 ++-- apps/plugins/invadrox.c | 2 +- apps/plugins/jewels.c | 4 ++-- apps/plugins/keybox.c | 2 +- apps/plugins/lib/configfile.c | 6 +++++- apps/plugins/pictureflow/pictureflow.c | 2 +- apps/plugins/pitch_detector.c | 2 +- apps/plugins/rockblox.c | 4 ++-- apps/plugins/snake.c | 2 +- apps/plugins/snake2.c | 2 +- apps/plugins/sokoban.c | 7 ++++++- apps/plugins/solitaire.c | 4 ++++ apps/plugins/spacerocks.c | 2 +- apps/plugins/stopwatch.c | 2 +- apps/plugins/text_viewer/tv_settings.c | 10 +++++----- apps/plugins/vu_meter.c | 4 ++-- firmware/common/rbpaths.c | 4 ++++ firmware/export/rbpaths.h | 13 +++++++++++++ 25 files changed, 66 insertions(+), 36 deletions(-) diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index 3a43a12bb2..67a66141fc 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c @@ -29,8 +29,8 @@ /* save files */ -#define SCORE_FILE PLUGIN_GAMES_DIR "/blackjack.score" -#define SAVE_FILE PLUGIN_GAMES_DIR "/blackjack.save" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/blackjack.score" +#define SAVE_FILE PLUGIN_GAMES_DATA_DIR "/blackjack.save" #define NUM_SCORES 5 /* final game return status */ diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index 6295862eac..379aadfe65 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -450,8 +450,8 @@ CONFIG_KEYPAD == SANSA_M200_PAD */ #define CONFIG_FILE_NAME "brickmania.cfg" -#define SAVE_FILE PLUGIN_GAMES_DIR "/brickmania.save" -#define SCORE_FILE PLUGIN_GAMES_DIR "/brickmania.score" +#define SAVE_FILE PLUGIN_GAMES_DATA_DIR "/brickmania.save" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/brickmania.score" #define NUM_SCORES 5 diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c index c7af502402..1a2f96ddfa 100644 --- a/apps/plugins/bubbles.c +++ b/apps/plugins/bubbles.c @@ -30,9 +30,9 @@ #include "lib/highscore.h" /* files */ -#define SCORE_FILE PLUGIN_GAMES_DIR "/bubbles.score" -#define SAVE_FILE PLUGIN_GAMES_DIR "/bubbles.save" -#define DATA_FILE PLUGIN_GAMES_DIR "/bubbles.data" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/bubbles.score" +#define SAVE_FILE PLUGIN_GAMES_DATA_DIR "/bubbles.save" +#define DATA_FILE PLUGIN_GAMES_DATA_DIR "/bubbles.data" /* final game return status */ enum { diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c index 1ca40254ca..11badbd110 100644 --- a/apps/plugins/calendar.c +++ b/apps/plugins/calendar.c @@ -319,8 +319,8 @@ #endif #endif -#define MEMO_FILE PLUGIN_APPS_DIR "/.memo" -#define TEMP_FILE PLUGIN_APPS_DIR "/~temp" +#define MEMO_FILE PLUGIN_APPS_DATA_DIR "/.memo" +#define TEMP_FILE PLUGIN_APPS_DATA_DIR "/~temp" #define X_OFFSET ((LCD_WIDTH%7)/2) #if LCD_HEIGHT <= 80 diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c index 9638168290..4876231207 100644 --- a/apps/plugins/chessbox/chessbox.c +++ b/apps/plugins/chessbox/chessbox.c @@ -59,7 +59,7 @@ extern const fb_data chessbox_pieces[]; #define YOFS ((LCD_HEIGHT-8*TILE_HEIGHT)/2) /* save files */ -#define SAVE_FILE PLUGIN_GAMES_DIR "/chessbox.save" +#define SAVE_FILE PLUGIN_GAMES_DATA_DIR "/chessbox.save" /* commands enum */ #define COMMAND_NOP 0 diff --git a/apps/plugins/chessbox/chessbox_pgn.c b/apps/plugins/chessbox/chessbox_pgn.c index 43da92e0a0..846ea41847 100644 --- a/apps/plugins/chessbox/chessbox_pgn.c +++ b/apps/plugins/chessbox/chessbox_pgn.c @@ -22,8 +22,8 @@ #include "plugin.h" #include "chessbox_pgn.h" -#define PGN_FILE PLUGIN_GAMES_DIR "/chessbox.pgn" -#define LOG_FILE PLUGIN_GAMES_DIR "/chessbox.log" +#define PGN_FILE PLUGIN_GAMES_DATA_DIR "/chessbox.pgn" +#define LOG_FILE PLUGIN_GAMES_DATA_DIR "/chessbox.log" int loghandler; short kn_offs[8][2] = {{2,1},{2,-1},{-2,1},{-2,-1},{1,2},{1,-2},{-1,2},{-1,-2}}; diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c index 0c928e008c..193d5902b8 100644 --- a/apps/plugins/clix.c +++ b/apps/plugins/clix.c @@ -192,7 +192,7 @@ #define CLIX_BUTTON_CLICK BUTTON_CENTER #endif -#define SCORE_FILE PLUGIN_GAMES_DIR "/clix.score" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/clix.score" #define NUM_SCORES 5 struct highscore highscores[NUM_SCORES]; diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c index 995fd6d28d..d42a62d469 100644 --- a/apps/plugins/disktidy.c +++ b/apps/plugins/disktidy.c @@ -44,8 +44,8 @@ struct tidy_type { int tidy_type_count; bool tidy_loaded_and_changed = false; -#define DEFAULT_FILES PLUGIN_APPS_DIR "/disktidy.config" -#define CUSTOM_FILES PLUGIN_APPS_DIR "/disktidy_custom.config" +#define DEFAULT_FILES PLUGIN_APPS_DATA_DIR "/disktidy.config" +#define CUSTOM_FILES PLUGIN_APPS_DATA_DIR "/disktidy_custom.config" void add_item(const char* name, int index) { diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c index 6b64fa741c..1bbca81a77 100644 --- a/apps/plugins/invadrox.c +++ b/apps/plugins/invadrox.c @@ -632,7 +632,7 @@ CONFIG_KEYPAD == MROBE500_PAD #define TARGET_BOTTOM 3 #define TARGET_UFO 4 -#define HISCOREFILE PLUGIN_GAMES_DIR "/invadrox.high" +#define HISCOREFILE PLUGIN_GAMES_DATA_DIR "/invadrox.high" /* The time (in ms) for one iteration through the game loop - decrease this diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index 02f8143974..2f8d679062 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c @@ -461,8 +461,8 @@ struct puzzle_level puzzle_levels[NUM_PUZZLE_LEVELS] = { {4, 7, PUZZLE_TILE_LEFT|PUZZLE_TILE_UP} } }, }; -#define SAVE_FILE PLUGIN_GAMES_DIR "/jewels.save" -#define SCORE_FILE PLUGIN_GAMES_DIR "/jewels.score" +#define SAVE_FILE PLUGIN_GAMES_DATA_DIR "/jewels.save" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/jewels.score" struct highscore highscores[NUM_SCORES]; static bool resume_file = false; diff --git a/apps/plugins/keybox.c b/apps/plugins/keybox.c index af41b3fdd8..932fc5fd47 100644 --- a/apps/plugins/keybox.c +++ b/apps/plugins/keybox.c @@ -23,7 +23,7 @@ #include "lib/md5.h" -#define KEYBOX_FILE PLUGIN_APPS_DIR "/keybox.dat" +#define KEYBOX_FILE PLUGIN_APPS_DATA_DIR "/keybox.dat" #define BLOCK_SIZE 8 #define MAX_ENTRIES 12*BLOCK_SIZE /* keep this a multiple of BLOCK_SIZE */ #define FIELD_LEN 32 /* should be enough for anyone ;) */ diff --git a/apps/plugins/lib/configfile.c b/apps/plugins/lib/configfile.c index 0fb01c6a40..ab1e21ad4a 100644 --- a/apps/plugins/lib/configfile.c +++ b/apps/plugins/lib/configfile.c @@ -23,12 +23,15 @@ static void get_cfg_filename(char* buf, int buf_len, const char* filename) { +#ifdef APPLICATION + rb->snprintf(buf, buf_len, PLUGIN_DATA_DIR "/%s", filename); +#else char *s; rb->strcpy(buf, rb->plugin_get_current_filename()); s = rb->strrchr(buf, '/'); if (!s) /* should never happen */ { - rb->snprintf(buf, buf_len, PLUGIN_DIR "/%s", filename); + rb->snprintf(buf, buf_len, PLUGIN_DATA_DIR "/%s", filename); } else { @@ -36,6 +39,7 @@ static void get_cfg_filename(char* buf, int buf_len, const char* filename) *s = '\0'; rb->strcat(s, filename); } +#endif } int configfile_save(const char *filename, struct configdata *cfg, diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index caae9dc163..97a3b82176 100644 --- a/apps/plugins/pictureflow/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c @@ -228,7 +228,7 @@ typedef fb_data pix_t; #define MAX_SLIDES_COUNT 10 #define THREAD_STACK_SIZE DEFAULT_STACK_SIZE + 0x200 -#define CACHE_PREFIX PLUGIN_DEMOS_DIR "/pictureflow" +#define CACHE_PREFIX PLUGIN_DEMOS_DATA_DIR "/pictureflow" #define EV_EXIT 9999 #define EV_WAKEUP 1337 diff --git a/apps/plugins/pitch_detector.c b/apps/plugins/pitch_detector.c index 324a36bce7..5e68822735 100644 --- a/apps/plugins/pitch_detector.c +++ b/apps/plugins/pitch_detector.c @@ -311,7 +311,7 @@ static struct tuner_settings /* Settings loading and saving(adapted from the clock plugin) */ /*=================================================================*/ -#define SETTINGS_FILENAME PLUGIN_APPS_DIR "/.pitch_detector_settings" +#define SETTINGS_FILENAME PLUGIN_APPS_DATA_DIR "/.pitch_detector_settings" /* The settings as they exist on the hard disk, so that * we can know at saving time if changes have been made */ diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index d86cb1c293..b3767c1a15 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c @@ -800,8 +800,8 @@ bool resume = false; bool resume_file = false; /* Rockbox File System only supports full filenames inc dir */ -#define SCORE_FILE PLUGIN_GAMES_DIR "/rockblox.score" -#define RESUME_FILE PLUGIN_GAMES_DIR "/rockblox.resume" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/rockblox.score" +#define RESUME_FILE PLUGIN_GAMES_DATA_DIR "/rockblox.resume" #define NUM_SCORES 5 /* Default High Scores... */ diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index 120485a248..5e591caab3 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -254,7 +254,7 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left; #define BOARD_HEIGHT (LCD_HEIGHT/4) #define CONFIG_FILE_NAME "snake.cfg" -#define SCORE_FILE PLUGIN_GAMES_DIR "/snake.score" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/snake.score" #define NUM_SCORES 5 static int board[BOARD_WIDTH][BOARD_HEIGHT],snakelength; diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index 1b1526745a..3d8b973074 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -413,7 +413,7 @@ static struct highscore highscores[NUM_SCORES]; #define SOUTH_WEST 4096 #define LEVELS_FILE PLUGIN_GAMES_DIR "/snake2.levels" -#define SCORE_FILE PLUGIN_GAMES_DIR "/snake2.score" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/snake2.score" int load_all_levels(void) { diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c index 6fe2b267aa..40288330bf 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c @@ -29,8 +29,13 @@ #define SOKOBAN_TITLE "Sokoban" #define SOKOBAN_LEVELS_FILE PLUGIN_GAMES_DIR "/sokoban.levels" -#define SOKOBAN_SAVE_FILE PLUGIN_GAMES_DIR "/sokoban.save" +#define SOKOBAN_SAVE_FILE PLUGIN_GAMES_DATA_DIR "/sokoban.save" + +#ifdef APPLICATION +#define SOKOBAN_SAVE_FOLDER PLUGIN_GAMES_DATA_DIR +#else #define SOKOBAN_SAVE_FOLDER "/games" +#endif #include "pluginbitmaps/sokoban_tiles.h" #define SOKOBAN_TILESIZE BMPWIDTH_sokoban_tiles diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 006e073ba4..a87311035f 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -1293,11 +1293,15 @@ int bouncing_cards( void ) */ void get_save_filename( char *buf ) { +#ifdef APPLICATION + rb->snprintf(buf, sizeof(buf), PLUGIN_DATA_DIR "/sol.save"); +#else char *s; rb->strcpy( buf, rb->plugin_get_current_filename() ); s = rb->strrchr( buf, '/' ) + 1; *s = '\0'; rb->strcat( s, "sol.save" ); +#endif } int open_save_file( int flags ) diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index 2e5600bc79..4011688ea0 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -400,7 +400,7 @@ #define SET_BG(x) #endif -#define SCORE_FILE PLUGIN_GAMES_DIR "/spacerocks.score" +#define SCORE_FILE PLUGIN_GAMES_DATA_DIR "/spacerocks.score" #define NUM_SCORES 5 static struct highscore highscores[NUM_SCORES]; diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index c07cfd93a5..f70d26bc56 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c @@ -32,7 +32,7 @@ #define LAP_Y TIMER_Y+1 #define MAX_LAPS 64 -#define STOPWATCH_FILE PLUGIN_APPS_DIR "/stopwatch.dat" +#define STOPWATCH_FILE PLUGIN_APPS_DATA_DIR "/stopwatch.dat" /* variable button definitions */ #if CONFIG_KEYPAD == RECORDER_PAD diff --git a/apps/plugins/text_viewer/tv_settings.c b/apps/plugins/text_viewer/tv_settings.c index 20e8212147..3ed1576dc5 100644 --- a/apps/plugins/text_viewer/tv_settings.c +++ b/apps/plugins/text_viewer/tv_settings.c @@ -54,8 +54,8 @@ * font name MAX_PATH */ -#define VIEWER_GLOBAL_SETTINGS_FILE VIEWERS_DIR "/viewer.dat" -#define TV_GLOBAL_SETTINGS_FILE VIEWERS_DIR "/tv_global.dat" +#define VIEWER_GLOBAL_SETTINGS_FILE VIEWERS_DATA_DIR "/viewer.dat" +#define TV_GLOBAL_SETTINGS_FILE VIEWERS_DATA_DIR "/tv_global.dat" #define TV_GLOBAL_SETTINGS_HEADER "\x54\x56\x47\x53" /* "TVGS" */ #define TV_GLOBAL_SETTINGS_VERSION 0x38 @@ -108,11 +108,11 @@ * ... * [last file] */ -#define VIEWER_SETTINGS_FILE VIEWERS_DIR "/viewer_file.dat" -#define TV_SETTINGS_FILE VIEWERS_DIR "/tv_file.dat" +#define VIEWER_SETTINGS_FILE VIEWERS_DATA_DIR "/viewer_file.dat" +#define TV_SETTINGS_FILE VIEWERS_DATA_DIR "/tv_file.dat" /* temporary file */ -#define TV_SETTINGS_TMP_FILE VIEWERS_DIR "/tv_file.tmp" +#define TV_SETTINGS_TMP_FILE VIEWERS_DATA_DIR "/tv_file.tmp" #define TV_SETTINGS_HEADER "\x54\x56\x53" /* "TVS" */ #define TV_SETTINGS_VERSION 0x39 diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c index 077a6e92f4..8877d7f460 100644 --- a/apps/plugins/vu_meter.c +++ b/apps/plugins/vu_meter.c @@ -467,7 +467,7 @@ void calc_scales(void) } void load_settings(void) { - int fp = rb->open(PLUGIN_DEMOS_DIR "/.vu_meter", O_RDONLY); + int fp = rb->open(PLUGIN_DEMOS_DATA_DIR "/.vu_meter", O_RDONLY); if(fp>=0) { rb->read(fp, &vumeter_settings, sizeof(struct saved_settings)); rb->close(fp); @@ -479,7 +479,7 @@ void load_settings(void) { } void save_settings(void) { - int fp = rb->creat(PLUGIN_DEMOS_DIR "/.vu_meter", 0666); + int fp = rb->creat(PLUGIN_DEMOS_DATA_DIR "/.vu_meter", 0666); if(fp >= 0) { rb->write (fp, &vumeter_settings, sizeof(struct saved_settings)); rb->close(fp); diff --git a/firmware/common/rbpaths.c b/firmware/common/rbpaths.c index cb56ab4845..1bbed97d21 100644 --- a/firmware/common/rbpaths.c +++ b/firmware/common/rbpaths.c @@ -70,6 +70,7 @@ void paths_init(void) /* make sure $HOME/.config/rockbox.org exists, it's needed for config.cfg */ #if (CONFIG_PLATFORM & PLATFORM_ANDROID) mkdir("/sdcard/rockbox"); + mkdir("/sdcard/rockbox/rocks.data"); #else char config_dir[MAX_PATH]; @@ -84,6 +85,9 @@ void paths_init(void) mkdir(config_dir); snprintf(config_dir, sizeof(config_dir), "%s/.config/rockbox.org", home); mkdir(config_dir); + /* Plugin data directory */ + snprintf(config_dir, sizeof(config_dir), "%s/.config/rockbox.org/rocks.data", home); + mkdir(config_dir); #endif } diff --git a/firmware/export/rbpaths.h b/firmware/export/rbpaths.h index a15c5aeedd..ade7894091 100644 --- a/firmware/export/rbpaths.h +++ b/firmware/export/rbpaths.h @@ -76,6 +76,19 @@ extern void paths_init(void); #define PLUGIN_DEMOS_DIR PLUGIN_DIR "/demos" #define VIEWERS_DIR PLUGIN_DIR "/viewers" +#ifdef APPLICATION +#define PLUGIN_DATA_DIR "/.rockbox/rocks.data" +#define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR +#define PLUGIN_APPS_DATA_DIR PLUGIN_DATA_DIR +#define PLUGIN_DEMOS_DATA_DIR PLUGIN_DATA_DIR +#define VIEWERS_DATA_DIR PLUGIN_DATA_DIR +#else +#define PLUGIN_DATA_DIR PLUGIN_DIR +#define PLUGIN_GAMES_DATA_DIR PLUGIN_DIR "/games" +#define PLUGIN_APPS_DATA_DIR PLUGIN_DIR "/apps" +#define PLUGIN_DEMOS_DATA_DIR PLUGIN_DIR "/demos" +#define VIEWERS_DATA_DIR PLUGIN_DIR "/viewers" +#endif #define WPS_DIR ROCKBOX_DIR "/wps" #define SBS_DIR WPS_DIR -- 2.11.4.GIT