diff options
author | Dan Everton <dan@iocaine.org> | 2007-12-07 10:59:07 +0000 |
---|---|---|
committer | Dan Everton <dan@iocaine.org> | 2007-12-07 10:59:07 +0000 |
commit | 5886efabf5e4c96a8a96836d665aad935c727e31 (patch) | |
tree | dfff344379b09bf0de89530393390113585658c0 /apps | |
parent | 05007e1a79fa9d9bb5985e0f6195871ea5ea71a6 (diff) | |
download | rockbox-5886efabf5e4c96a8a96836d665aad935c727e31.tar.gz rockbox-5886efabf5e4c96a8a96836d665aad935c727e31.zip |
Save some bytes and reuse the settings saving code for eq preset saving.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15891 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/menus/eq_menu.c | 46 | ||||
-rw-r--r-- | apps/settings.c | 10 | ||||
-rw-r--r-- | apps/settings.h | 3 | ||||
-rw-r--r-- | apps/settings_list.c | 79 | ||||
-rw-r--r-- | apps/settings_list.h | 1 |
5 files changed, 61 insertions, 78 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c index 2c2e596496..b3e67e42ef 100644 --- a/apps/menus/eq_menu.c +++ b/apps/menus/eq_menu.c | |||
@@ -596,50 +596,17 @@ bool eq_menu_graphical(void) | |||
596 | return result; | 596 | return result; |
597 | } | 597 | } |
598 | 598 | ||
599 | /* Preset saver. | ||
600 | * TODO: Can the settings system be used to do this instead? | ||
601 | */ | ||
602 | static bool eq_save_preset(void) | 599 | static bool eq_save_preset(void) |
603 | { | 600 | { |
604 | int fd, i; | 601 | /* make sure that the eq is enabled for setting saving */ |
605 | char filename[MAX_PATH]; | 602 | bool enabled = global_settings.eq_enabled; |
606 | int *setting; | 603 | global_settings.eq_enabled = true; |
607 | |||
608 | create_numbered_filename(filename, EQS_DIR, "eq", ".cfg", 2 | ||
609 | IF_CNFN_NUM_(, NULL)); | ||
610 | |||
611 | /* allow user to modify filename */ | ||
612 | while (true) { | ||
613 | if (!kbd_input(filename, sizeof filename)) { | ||
614 | fd = creat(filename); | ||
615 | if (fd < 0) | ||
616 | gui_syncsplash(HZ, ID2P(LANG_FAILED)); | ||
617 | else | ||
618 | break; | ||
619 | } | ||
620 | else { | ||
621 | gui_syncsplash(HZ, ID2P(LANG_CANCEL)); | ||
622 | return false; | ||
623 | } | ||
624 | } | ||
625 | |||
626 | /* TODO: Should we really do this? */ | ||
627 | fdprintf(fd, "eq enabled: on\r\n"); | ||
628 | fdprintf(fd, "eq precut: %d\r\n", global_settings.eq_precut); | ||
629 | 604 | ||
630 | setting = &global_settings.eq_band0_cutoff; | 605 | bool result = settings_save_config(SETTINGS_SAVE_EQPRESET); |
631 | 606 | ||
632 | for(i = 0; i < 5; ++i) { | 607 | global_settings.eq_enabled = enabled; |
633 | fdprintf(fd, "eq band %d cutoff: %d\r\n", i, *setting++); | ||
634 | fdprintf(fd, "eq band %d q: %d\r\n", i, *setting++); | ||
635 | fdprintf(fd, "eq band %d gain: %d\r\n", i, *setting++); | ||
636 | } | ||
637 | |||
638 | close(fd); | ||
639 | 608 | ||
640 | gui_syncsplash(HZ, ID2P(LANG_SETTINGS_SAVED)); | 609 | return result; |
641 | |||
642 | return true; | ||
643 | } | 610 | } |
644 | 611 | ||
645 | /* Allows browsing of preset files */ | 612 | /* Allows browsing of preset files */ |
@@ -648,7 +615,6 @@ bool eq_browse_presets(void) | |||
648 | return rockbox_browse(EQS_DIR, SHOW_CFG); | 615 | return rockbox_browse(EQS_DIR, SHOW_CFG); |
649 | } | 616 | } |
650 | 617 | ||
651 | |||
652 | MENUITEM_FUNCTION(eq_graphical, 0, ID2P(LANG_EQUALIZER_GRAPHICAL), | 618 | MENUITEM_FUNCTION(eq_graphical, 0, ID2P(LANG_EQUALIZER_GRAPHICAL), |
653 | (int(*)(void))eq_menu_graphical, NULL, NULL, | 619 | (int(*)(void))eq_menu_graphical, NULL, NULL, |
654 | Icon_EQ); | 620 | Icon_EQ); |
diff --git a/apps/settings.c b/apps/settings.c index b22c521fd8..7f0de3e8ad 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -477,6 +477,11 @@ static bool settings_write_config(char* filename, int options) | |||
477 | ((settings[i].flags&F_RECSETTING) == 0)) | 477 | ((settings[i].flags&F_RECSETTING) == 0)) |
478 | continue; | 478 | continue; |
479 | #endif | 479 | #endif |
480 | #if CONFIG_CODEC == SWCODEC | ||
481 | else if ((options == SETTINGS_SAVE_EQPRESET) && | ||
482 | ((settings[i].flags&F_EQSETTING) == 0)) | ||
483 | continue; | ||
484 | #endif | ||
480 | switch (settings[i].flags&F_T_MASK) | 485 | switch (settings[i].flags&F_T_MASK) |
481 | { | 486 | { |
482 | case F_T_INT: | 487 | case F_T_INT: |
@@ -614,6 +619,11 @@ bool settings_save_config(int options) | |||
614 | folder = RECPRESETS_DIR; | 619 | folder = RECPRESETS_DIR; |
615 | break; | 620 | break; |
616 | #endif | 621 | #endif |
622 | #if CONFIG_CODEC == SWCODEC | ||
623 | case SETTINGS_SAVE_EQPRESET: | ||
624 | folder = EQS_DIR; | ||
625 | break; | ||
626 | #endif | ||
617 | default: | 627 | default: |
618 | folder = ROCKBOX_DIR; | 628 | folder = ROCKBOX_DIR; |
619 | } | 629 | } |
diff --git a/apps/settings.h b/apps/settings.h index a03a24a904..0e4e627005 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -207,6 +207,9 @@ enum { | |||
207 | #ifdef HAVE_RECORDING | 207 | #ifdef HAVE_RECORDING |
208 | SETTINGS_SAVE_RECPRESETS, | 208 | SETTINGS_SAVE_RECPRESETS, |
209 | #endif | 209 | #endif |
210 | #if CONFIG_CODEC == SWCODEC | ||
211 | SETTINGS_SAVE_EQPRESET, | ||
212 | #endif | ||
210 | }; | 213 | }; |
211 | bool settings_save_config(int options); | 214 | bool settings_save_config(int options); |
212 | 215 | ||
diff --git a/apps/settings_list.c b/apps/settings_list.c index ed879aa054..3d5075ce3f 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -906,58 +906,61 @@ const struct settings_list settings[] = { | |||
906 | INT_SETTING_NOWRAP(0, crossfeed_hf_cutoff, LANG_CROSSFEED_HF_CUTOFF, 700, | 906 | INT_SETTING_NOWRAP(0, crossfeed_hf_cutoff, LANG_CROSSFEED_HF_CUTOFF, 700, |
907 | "crossfeed hf cutoff", UNIT_HERTZ, 500, 2000, 100, | 907 | "crossfeed hf cutoff", UNIT_HERTZ, 500, 2000, 100, |
908 | NULL, NULL, crossfeed_cross_set), | 908 | NULL, NULL, crossfeed_cross_set), |
909 | |||
909 | /* equalizer */ | 910 | /* equalizer */ |
910 | OFFON_SETTING(0,eq_enabled,LANG_EQUALIZER_ENABLED,false,"eq enabled",NULL), | 911 | OFFON_SETTING(F_EQSETTING, eq_enabled, LANG_EQUALIZER_ENABLED, false, |
911 | INT_SETTING_NOWRAP(0, eq_precut, LANG_EQUALIZER_PRECUT, 0, "eq precut", | 912 | "eq enabled", NULL), |
912 | UNIT_DB, 0, 240, 5, eq_precut_format, NULL, dsp_set_eq_precut), | 913 | INT_SETTING_NOWRAP(F_EQSETTING, eq_precut, LANG_EQUALIZER_PRECUT, 0, |
914 | "eq precut", UNIT_DB, 0, 240, 5, eq_precut_format, NULL, | ||
915 | dsp_set_eq_precut), | ||
913 | /* 0..32768 Hz */ | 916 | /* 0..32768 Hz */ |
914 | INT_SETTING_NOWRAP(0, eq_band0_cutoff, LANG_EQUALIZER_BAND_CUTOFF, 60, | 917 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band0_cutoff, LANG_EQUALIZER_BAND_CUTOFF, |
915 | "eq band 0 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, | 918 | 60, "eq band 0 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, |
916 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), | 919 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), |
917 | INT_SETTING_NOWRAP(0, eq_band1_cutoff, LANG_EQUALIZER_BAND_CENTER, 200, | 920 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band1_cutoff, LANG_EQUALIZER_BAND_CENTER, |
918 | "eq band 1 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, | 921 | 200, "eq band 1 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, |
919 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), | 922 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), |
920 | INT_SETTING_NOWRAP(0, eq_band2_cutoff, LANG_EQUALIZER_BAND_CENTER, 800, | 923 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band2_cutoff, LANG_EQUALIZER_BAND_CENTER, |
921 | "eq band 2 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, | 924 | 800, "eq band 2 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, |
922 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), | 925 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), |
923 | INT_SETTING_NOWRAP(0, eq_band3_cutoff, LANG_EQUALIZER_BAND_CENTER, 4000, | 926 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band3_cutoff, LANG_EQUALIZER_BAND_CENTER, |
924 | "eq band 3 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, | 927 | 4000, "eq band 3 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, |
925 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), | 928 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), |
926 | INT_SETTING_NOWRAP(0, eq_band4_cutoff, LANG_EQUALIZER_BAND_CUTOFF, 12000, | 929 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band4_cutoff, LANG_EQUALIZER_BAND_CUTOFF, |
927 | "eq band 4 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, | 930 | 12000, "eq band 4 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, |
928 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), | 931 | EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), |
929 | /* 0..64 (or 0.0 to 6.4) */ | 932 | /* 0..64 (or 0.0 to 6.4) */ |
930 | INT_SETTING_NOWRAP(0, eq_band0_q, LANG_EQUALIZER_BAND_Q, 7, "eq band 0 q", | 933 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band0_q, LANG_EQUALIZER_BAND_Q, 7, |
931 | UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, | 934 | "eq band 0 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, |
932 | eq_q_format, NULL, NULL), | 935 | eq_q_format, NULL, NULL), |
933 | INT_SETTING_NOWRAP(0, eq_band1_q, LANG_EQUALIZER_BAND_Q, 10, "eq band 1 q", | 936 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band1_q, LANG_EQUALIZER_BAND_Q, 10, |
934 | UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, | 937 | "eq band 1 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, |
935 | eq_q_format, NULL, NULL), | 938 | eq_q_format, NULL, NULL), |
936 | INT_SETTING_NOWRAP(0, eq_band2_q, LANG_EQUALIZER_BAND_Q, 10, "eq band 2 q", | 939 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band2_q, LANG_EQUALIZER_BAND_Q, 10, |
937 | UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, | 940 | "eq band 2 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, |
938 | eq_q_format, NULL, NULL), | 941 | eq_q_format, NULL, NULL), |
939 | INT_SETTING_NOWRAP(0, eq_band3_q, LANG_EQUALIZER_BAND_Q, 10, "eq band 3 q", | 942 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band3_q, LANG_EQUALIZER_BAND_Q, 10, |
940 | UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, | 943 | "eq band 3 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, |
941 | eq_q_format, NULL, NULL), | 944 | eq_q_format, NULL, NULL), |
942 | INT_SETTING_NOWRAP(0, eq_band4_q, LANG_EQUALIZER_BAND_Q, 7, "eq band 4 q", | 945 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band4_q, LANG_EQUALIZER_BAND_Q, 7, |
943 | UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, | 946 | "eq band 4 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, |
944 | eq_q_format, NULL, NULL), | 947 | eq_q_format, NULL, NULL), |
945 | /* -240..240 (or -24db to +24db) */ | 948 | /* -240..240 (or -24db to +24db) */ |
946 | INT_SETTING_NOWRAP(0, eq_band0_gain, LANG_GAIN, 0, "eq band 0 gain", | 949 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band0_gain, LANG_GAIN, 0, |
947 | UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, EQ_GAIN_STEP, | 950 | "eq band 0 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, |
948 | eq_gain_format, NULL, NULL), | 951 | EQ_GAIN_STEP, eq_gain_format, NULL, NULL), |
949 | INT_SETTING_NOWRAP(0, eq_band1_gain, LANG_GAIN, 0, "eq band 1 gain", | 952 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band1_gain, LANG_GAIN, 0, |
950 | UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, EQ_GAIN_STEP, | 953 | "eq band 1 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, |
951 | eq_gain_format, NULL, NULL), | 954 | EQ_GAIN_STEP, eq_gain_format, NULL, NULL), |
952 | INT_SETTING_NOWRAP(0, eq_band2_gain, LANG_GAIN, 0, "eq band 2 gain", | 955 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band2_gain, LANG_GAIN, 0, |
953 | UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, EQ_GAIN_STEP, | 956 | "eq band 2 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, |
954 | eq_gain_format, NULL, NULL), | 957 | EQ_GAIN_STEP, eq_gain_format, NULL, NULL), |
955 | INT_SETTING_NOWRAP(0, eq_band3_gain, LANG_GAIN, 0, "eq band 3 gain", | 958 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band3_gain, LANG_GAIN, 0, |
956 | UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, EQ_GAIN_STEP, | 959 | "eq band 3 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, |
957 | eq_gain_format, NULL, NULL), | 960 | EQ_GAIN_STEP, eq_gain_format, NULL, NULL), |
958 | INT_SETTING_NOWRAP(0, eq_band4_gain, LANG_GAIN, 0, "eq band 4 gain", | 961 | INT_SETTING_NOWRAP(F_EQSETTING, eq_band4_gain, LANG_GAIN, 0, |
959 | UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, EQ_GAIN_STEP, | 962 | "eq band 4 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, |
960 | eq_gain_format, NULL, NULL), | 963 | EQ_GAIN_STEP, eq_gain_format, NULL, NULL), |
961 | 964 | ||
962 | /* dithering */ | 965 | /* dithering */ |
963 | OFFON_SETTING(0, dithering_enabled, LANG_DITHERING, | 966 | OFFON_SETTING(0, dithering_enabled, LANG_DITHERING, |
diff --git a/apps/settings_list.h b/apps/settings_list.h index 75768fea55..b959789dfe 100644 --- a/apps/settings_list.h +++ b/apps/settings_list.h | |||
@@ -104,6 +104,7 @@ struct table_setting { | |||
104 | 104 | ||
105 | #define F_THEMESETTING 0x0800000 | 105 | #define F_THEMESETTING 0x0800000 |
106 | #define F_RECSETTING 0x1000000 | 106 | #define F_RECSETTING 0x1000000 |
107 | #define F_EQSETTING 0x2000000 | ||
107 | 108 | ||
108 | #define F_NVRAM_BYTES_MASK 0xE0000 /*0-4 bytes can be stored */ | 109 | #define F_NVRAM_BYTES_MASK 0xE0000 /*0-4 bytes can be stored */ |
109 | #define F_NVRAM_MASK_SHIFT 17 | 110 | #define F_NVRAM_MASK_SHIFT 17 |