Только я никому не скажу, что сделано внутри И не просите. Это для чистоты эксперимента, ну и я немого порадуюсь, и вы скачать не будете
---------- Добавлено в 10:21 ---------- Предыдущее сообщение было размещено в 10:18 ----------
Собственно вот, ловите! Единственно, проверить работоспособность не могу, т.к. плеера такого у меня нету, тут вы уж сами. Если вдруг не заработает, будем разбираться...
P.S. Сборка сделана для SansaClip+
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
25.10.2013 10:21ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
Следующие 6 пользователей сказали Спасибо за этот полезный пост
Dolpfin1979 (25.10.2013), KlinKen (25.10.2013), Reinehande (25.10.2013), romario92 (25.10.2013), taltgreen (25.10.2013), winD616 (25.10.2013)
-
- Адрес
- планета Юпитер
- Сообщений
- 11,159
- Репутация
- 400354 (0)
25.10.2013 10:49iFi iDSD Diablo/xDSD gryphon/Lotoo PAW Gold/QLS QA-361/iBasso DX300/MAX/64 audio A18,A12t/FIR XE6/M5/Vision Ears VE8/VE7/VE4.2/EVE20/AA AM5LAM/InEar PP8/SD-2/Jomo Haka/Softears RS10, RSX, Cerberus //MyST1866OCU v.2/Hifiman HE-4/6/PHONON SMB-02/4400, HEDDphone One, Beyerdynamic dt 250/250
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
-
- Адрес
- планета Юпитер
- Сообщений
- 11,159
- Репутация
- 400354 (0)
25.10.2013 11:03Последний раз редактировалось Zowie; 25.10.2013 в 11:05.
iFi iDSD Diablo/xDSD gryphon/Lotoo PAW Gold/QLS QA-361/iBasso DX300/MAX/64 audio A18,A12t/FIR XE6/M5/Vision Ears VE8/VE7/VE4.2/EVE20/AA AM5LAM/InEar PP8/SD-2/Jomo Haka/Softears RS10, RSX, Cerberus //MyST1866OCU v.2/Hifiman HE-4/6/PHONON SMB-02/4400, HEDDphone One, Beyerdynamic dt 250/250
-
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
-
-
25.10.2013 13:25
gemzza
Видимо обычный dev скомпилировал.
Я раньше компилировал, но не звучали они, плоско, сухо, неинтересно.
Послушаю...
Можно перегрузить прошивку прямо из Рокбокса без пререзагрузки плеера, для этого надо выбрать в менеджере файлов файл rockbox.sansa и запустить его. Я так прошивки между собой сравниваю иногда.
Спасибо.Последний раз редактировалось mindwin; 25.10.2013 в 13:28.
Источник: Sandisk Sansa Clip+, XDuoo X2 - 1000 mAh Edition, Topping NX1, Sandisk Sansa Clip+, Fiio BTR-3K, eSynic DAC.
Наушники: Brainwavz M1, M2, Sony MH1C, LG SGEY0003741 (вкладыши), Vsonic VSD1S, Artiste DC1, HifiBoy os v3.
-
- Адрес
- Новосибирск
- Возраст
- 50
- Сообщений
- 9,004
- Репутация
- 95465 (0)
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
25.10.2013 14:21Все может быть...
Я считаю, что лучше все же переименовывать ,а затем перегружать. Просто перегружать из рокбокса можно лишь в том случае, когда ТОЧНО уверены, что все изменения касаются лишь файла rockbox.sansa, чего вы, как пользователи, ТОЧНО знать не можете. Ну а помимо файла, ответсвенного за работу прошивки, есть так же файлы локализации, музыкальных кодеков, всяких плагинов, шрифтов, тем, .... И браться они будут только из папки .rockbox. Лично у меня на плеере (на всякий случай) штук 5 разных папок с разными версиямиПоследний раз редактировалось gemzza; 25.10.2013 в 14:24.
ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
-
- Адрес
- Москва
- Сообщений
- 2,449
- Репутация
- 56840 (0)
25.10.2013 14:33gemzza, если вдруг будешь ещё чего компилировать, интегрируешь context sensitive backlight патч, позязя?
Код:From c9be3fee3ba44646f842b514611491802eca2872 Mon Sep 17 00:00:00 2001 From: Vladyslav Shtabovenko <dfew.entwickler@gmail.com> Date: Sun, 15 Sep 2013 18:34:54 +0200 Subject: [PATCH] updated backlight patch --- apps/action.c | 59 ++++++++++++++++++--- apps/lang/deutsch.lang | 14 +++++ apps/lang/english.lang | 14 +++++ apps/menus/display_menu.c | 4 ++ apps/settings.h | 2 + apps/settings_list.c | 3 ++ firmware/drivers/button.c | 60 ++++++++++++++++++---- firmware/export/button.h | 17 ++++++ .../target/arm/as3525/sansa-fuzev2/button-fuzev2.c | 2 +- firmware/target/arm/ipod/button-1g-3g.c | 14 ++--- firmware/target/arm/ipod/button-clickwheel.c | 6 ++- firmware/target/arm/ipod/button-mini1g.c | 14 ++--- .../target/arm/sandisk/sansa-e200/button-e200.c | 2 +- 13 files changed, 177 insertions(+), 34 deletions(-) diff --git a/apps/action.c b/apps/action.c index 2492a7d..435a705 100644 --- a/apps/action.c +++ b/apps/action.c @@ -150,6 +150,41 @@ static inline int get_next_context(const struct button_mapping *items, int i) items[i].action_code; } +static bool backlight_on_action(int action) +{ + /* no backlight on volume change and pause/play */ + return (action != ACTION_WPS_VOLUP) + && (action != ACTION_WPS_VOLDOWN) + && (action != ACTION_WPS_PLAY) + && (action != ACTION_WPS_STOP) + && (action != ACTION_WPS_SEEKBACK) + && (action != ACTION_WPS_SEEKFWD) + && (action != ACTION_WPS_STOPSEEK) + && (action != ACTION_WPS_SKIPNEXT) + && (action != ACTION_WPS_SKIPPREV); +} + +static bool backlight_on_keypress_oracle(int btn) +{ + /* check whether the button would fire an action */ + /* If yes, check whether that action should turn on the backlight */ + /* Keep this function fast! It's called from the button ticktask */ + /* or the scrollwheel interrupt handler! */ + + const struct button_mapping *items = NULL; + int i = 0; + + if (!global_settings.backlight_on_volume_change) + { + items = get_context_mapping(CONTEXT_WPS); + /* also check action for button release */ + return backlight_on_action(do_button_check(items, btn, BUTTON_NONE, &i)) + && backlight_on_action(do_button_check(items, btn | BUTTON_REL, btn, &i)); + } + else + return true; +} + #if defined(HAVE_GUI_BOOST) && defined(HAVE_ADJUSTABLE_CPU_FREQ) /* Timeout for gui boost in seconds. */ @@ -160,7 +195,7 @@ static inline int get_next_context(const struct button_mapping *items, int i) static void gui_boost(bool want_to_boost) { static bool boosted = false; - + if (want_to_boost && !boosted) { cpu_boost(true); @@ -173,7 +208,7 @@ static void gui_boost(bool want_to_boost) } } -/* gui_unboost_callback() is called GUI_BOOST_TIMEOUT seconds after the +/* gui_unboost_callback() is called GUI_BOOST_TIMEOUT seconds after the * last wheel scrolling event. */ static int gui_unboost_callback(struct timeout *tmo) { @@ -206,9 +241,19 @@ static int get_action_worker(int context, int timeout, int i=0; int ret = ACTION_UNKNOWN; static int last_context = CONTEXT_STD; - + send_event(GUI_EVENT_ACTIONUPDATE, NULL); + /* In CONTEXT_WPS or CONTEXT_FM we may want to keep the backlight off */ + /* on certain actions. */ + /* Thus, a callback function is used to check if it should turn on. */ + /* See also button.c */ + if ( (context & ~ALLOW_SOFTLOCK) == CONTEXT_WPS + || (context & ~ALLOW_SOFTLOCK) == CONTEXT_FM ) + set_backlight_on_keypress_oracle(backlight_on_keypress_oracle); + else + set_backlight_on_keypress_oracle(NULL); + if (timeout == TIMEOUT_NOBLOCK) button = button_get(false); else if (timeout == TIMEOUT_BLOCK) @@ -218,9 +263,9 @@ static int get_action_worker(int context, int timeout, #if defined(HAVE_GUI_BOOST) && defined(HAVE_ADJUSTABLE_CPU_FREQ) static struct timeout gui_unboost; - /* Boost the CPU in case of wheel scrolling activity in the defined contexts. + /* Boost the CPU in case of wheel scrolling activity in the defined contexts. * Call unboost with a timeout of GUI_BOOST_TIMEOUT. */ - if ((button&(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD)) && + if ((button&(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD)) && (context == CONTEXT_STD || context == CONTEXT_LIST || context == CONTEXT_MAINMENU || context == CONTEXT_TREE)) { @@ -268,7 +313,7 @@ static int get_action_worker(int context, int timeout, } return ACTION_NONE; } - + if ((context != last_context) && ((last_button & BUTTON_REL) == 0) #ifdef HAVE_SCROLLWHEEL /* Scrollwheel doesn't generate release events */ @@ -516,4 +561,4 @@ void action_wait_for_release(void) { wait_for_release = true; } - + diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang index 02c37e8..09c9014 100644 --- a/apps/lang/deutsch.lang +++ b/apps/lang/deutsch.lang @@ -2595,6 +2595,20 @@ </voice> </phrase> <phrase> + id: LANG_BACKLIGHT_ON_VOLUME_CHANGE + desc: Backlight on volume change and on pause/play + user: core + <source> + *: "Backlight On Volume Change" + </source> + <dest> + *: "Beleuchtung bei Änderung der Lautstärke" + </dest> + <voice> + *: "Beleuchtung bei Änderung der Lautstärke" + </voice> +</phrase> +<phrase> id: LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF desc: In display settings, time to switch LCD chip into power saving state user: core diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 26c0051..92b055e 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -2678,6 +2678,20 @@ </voice> </phrase> <phrase> + id: LANG_BACKLIGHT_ON_VOLUME_CHANGE + desc: Backlight on volume change and on pause/play + user: core + <source> + *: "Backlight on Volume Change" + </source> + <dest> + *: "Backlight on Volume Change" + </dest> + <voice> + *: "Backlight on Volume Change" + </voice> +</phrase> +<phrase> id: LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF desc: In display settings, time to switch LCD chip into power saving state user: core diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c index 3e1443d..664752d 100644 --- a/apps/menus/display_menu.c +++ b/apps/menus/display_menu.c @@ -103,6 +103,9 @@ MENUITEM_SETTING(backlight_fade_out, &global_settings.backlight_fade_out, NULL); MENUITEM_SETTING(bl_filter_first_keypress, &global_settings.bl_filter_first_keypress, filterfirstkeypress_callback); +MENUITEM_SETTING(backlight_on_volume_change, + &global_settings.backlight_on_volume_change, + NULL); #ifdef HAVE_LCD_SLEEP_SETTING MENUITEM_SETTING(lcd_sleep_after_backlight_off, &global_settings.lcd_sleep_after_backlight_off, NULL); @@ -140,6 +143,7 @@ MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MENU), ,&backlight_fade_in, &backlight_fade_out #endif ,&bl_filter_first_keypress + ,&backlight_on_volume_change # ifdef HAVE_LCD_SLEEP_SETTING ,&lcd_sleep_after_backlight_off # endif diff --git a/apps/settings.h b/apps/settings.h index 53ad70b..ccdea38 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -654,6 +654,8 @@ struct user_settings then according to timeout_values[] */ bool caption_backlight; /* turn on backlight at end and start of track */ bool bl_filter_first_keypress; /* filter first keypress when dark? */ + bool backlight_on_volume_change; /* turn on the backlight on volume change + and on pause/play? */ #if CONFIG_CHARGING int backlight_timeout_plugged; #endif diff --git a/apps/settings_list.c b/apps/settings_list.c index cc4012e..52f5b51 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -998,6 +998,9 @@ const struct settings_list settings[] = { OFFON_SETTING(0, bl_filter_first_keypress, LANG_BACKLIGHT_FILTER_FIRST_KEYPRESS, false, "backlight filters first keypress", NULL), + OFFON_SETTING(0, backlight_on_volume_change, + LANG_BACKLIGHT_ON_VOLUME_CHANGE, true, + "backlight on volume change", NULL), #ifdef HAVE_REMOTE_LCD OFFON_SETTING(0, remote_bl_filter_first_keypress, LANG_BACKLIGHT_FILTER_FIRST_KEYPRESS, false, diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index c165e8f..4b9cb7a 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c @@ -41,6 +41,7 @@ #ifdef HAVE_REMOTE_LCD #include "lcd-remote.h" #endif +#include "debug.h" struct event_queue button_queue SHAREDBSS_ATTR; @@ -52,6 +53,7 @@ static bool flipped; /* buttons can be flipped to match the LCD flip */ #endif #ifdef HAVE_BACKLIGHT static bool filter_first_keypress; +static backlight_on_keypress_oracle_func backlight_on_keypress_oracle = NULL; #ifdef HAVE_REMOTE_LCD static bool remote_filter_first_keypress; #endif @@ -138,6 +140,41 @@ static bool button_try_post(int button, int data) return ret; } +#ifdef HAVE_BACKLIGHT +void backlight_on_by_button(int btn) +{ + bool bl_on; + if (backlight_on_keypress_oracle != NULL) + { + bl_on = (*backlight_on_keypress_oracle)(btn); + DEBUGF("BL oracle (%d) returned: %d\n", btn, bl_on); + /* We just pressed a button - if the screen is on, + restart the timer to keep it on */ + if (!bl_on && is_backlight_on(false)) { + DEBUGF("timer: BL is on - restarting timeout\n"); + bl_on = true; + } else { + DEBUGF("timer: BL is off\n"); + } + } + else + { + bl_on = true; + DEBUGF("BL callback is NULL -> bl ON\n"); + } + if (bl_on) + { + backlight_on(); +#ifdef HAVE_REMOTE_LCD + remote_backlight_on(); +#endif +#ifdef HAVE_BUTTON_LIGHT + buttonlight_on(); +#endif + } +} +#endif /* ifdef HAVE_BACKLIGHT */ + static void button_tick(void) { static int count = 0; @@ -308,10 +345,13 @@ static void button_tick(void) skip_remote_release = true; } else -#endif - if (!filter_first_keypress || is_backlight_on(false) +#endif /* HAVE_REMOTE_LCD */ + if (!filter_first_keypress + || is_backlight_on(false) + || ((backlight_on_keypress_oracle != NULL) + && !(*backlight_on_keypress_oracle)(btn)) #if BUTTON_REMOTE - || (btn & BUTTON_REMOTE) + || (btn & BUTTON_REMOTE) #endif ) button_try_post(btn, data); @@ -327,12 +367,7 @@ static void button_tick(void) remote_backlight_on(); else #endif - { - backlight_on(); -#ifdef HAVE_BUTTON_LIGHT - buttonlight_on(); -#endif - } + backlight_on_by_button(btn); reset_poweroff_timer(); } @@ -447,6 +482,7 @@ void button_init(void) #endif #ifdef HAVE_BACKLIGHT filter_first_keypress = false; + set_backlight_on_keypress_oracle(NULL); #ifdef HAVE_REMOTE_LCD remote_filter_first_keypress = false; #endif @@ -560,6 +596,12 @@ void set_backlight_filter_keypress(bool value) { filter_first_keypress = value; } + +void set_backlight_on_keypress_oracle(backlight_on_keypress_oracle_func new_value) +{ + backlight_on_keypress_oracle = new_value; +} + #ifdef HAVE_REMOTE_LCD void set_remote_backlight_filter_keypress(bool value) { diff --git a/firmware/export/button.h b/firmware/export/button.h index 6276a03..0429294 100644 --- a/firmware/export/button.h +++ b/firmware/export/button.h @@ -64,6 +64,23 @@ void button_set_flip(bool flip); /* turn 180 degrees */ #endif #ifdef HAVE_BACKLIGHT void set_backlight_filter_keypress(bool value); + +/* Callback function to tell whether the backlight should be turned on + * when a key is pressed. Called just after a key press. + * + * @param btn The button that was pressed + * + * Returns true iff the backlight should be turned on on key press. + */ +typedef bool (*backlight_on_keypress_oracle_func)(int btn); + +/* Sets the new 'oracle' to tell whether the backlight should be turned + * on when a key is pressed. Passing NULL as parameter will turn on the BL + * on every key press. + */ +void set_backlight_on_keypress_oracle(backlight_on_keypress_oracle_func func); +void backlight_on_by_button(int btn); + #ifdef HAVE_REMOTE_LCD void set_remote_backlight_filter_keypress(bool value); #endif diff --git a/firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c b/firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c index 8244c47..0f7d16c 100644 --- a/firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c +++ b/firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c @@ -168,7 +168,7 @@ static void scrollwheel(unsigned int wheel_value) (wheel_delta << 24) | wheel_velocity*360/WHEELCLICKS_PER_ROTATION); /* message posted - reset delta and poke backlight on*/ wheel_delta = 1; - backlight_on(); + backlight_on_by_button(btn); buttonlight_on(); } else diff --git a/firmware/target/arm/ipod/button-1g-3g.c b/firmware/target/arm/ipod/button-1g-3g.c index 045a0f6..790ed24 100644 --- a/firmware/target/arm/ipod/button-1g-3g.c +++ b/firmware/target/arm/ipod/button-1g-3g.c @@ -95,13 +95,6 @@ static void handle_scroll_wheel(int new_scroll) count = 0; } - /* poke backlight every 1/4s of activity */ - if (TIME_AFTER(current_tick, next_backlight_on)) { - backlight_on(); - reset_poweroff_timer(); - next_backlight_on = current_tick + HZ/4; - } - /* has wheel travelled far enough? */ if (++count < WHEEL_BASE_SENSITIVITY) { return; @@ -126,6 +119,13 @@ static void handle_scroll_wheel(int new_scroll) /* have a keycode */ + /* poke backlight every 1/4s of activity */ + if (TIME_AFTER(current_tick, next_backlight_on)) { + backlight_on_by_button(wheel_keycode); + reset_poweroff_timer(); + next_backlight_on = current_tick + HZ/4; + } + usec = USEC_TIMER; v = usec - last_wheel_usec; diff --git a/firmware/target/arm/ipod/button-clickwheel.c b/firmware/target/arm/ipod/button-clickwheel.c index 13c765c..54c4205 100644 --- a/firmware/target/arm/ipod/button-clickwheel.c +++ b/firmware/target/arm/ipod/button-clickwheel.c @@ -132,8 +132,7 @@ static inline int ipod_4g_button_read(void) new_wheel_value = (status >> 16) & 0x7f; whl = new_wheel_value; - /* switch on backlight (again), reset power-off timer */ - backlight_on(); + /* reset power-off timer */ reset_poweroff_timer(); /* Check whether the scrollwheel was untouched by accident or by will. */ @@ -176,6 +175,9 @@ static inline int ipod_4g_button_read(void) if (wheel_keycode != BUTTON_NONE) { + /* switch on backlight (again) */ + backlight_on_by_button(wheel_keycode); + long v = (usec - last_wheel_usec) & 0x7fffffff; /* undo signedness */ diff --git a/firmware/target/arm/ipod/button-mini1g.c b/firmware/target/arm/ipod/button-mini1g.c index d4a75c9..d30e1e0 100644 --- a/firmware/target/arm/ipod/button-mini1g.c +++ b/firmware/target/arm/ipod/button-mini1g.c @@ -91,13 +91,6 @@ static void handle_scroll_wheel(int new_scroll) return; } - /* poke backlight every 1/4s of activity */ - if (TIME_AFTER(current_tick, next_backlight_on)) { - backlight_on(); - reset_poweroff_timer(); - next_backlight_on = current_tick + HZ/4; - } - if (++count < WHEEL_BASE_SENSITIVITY) return; @@ -118,6 +111,13 @@ static void handle_scroll_wheel(int new_scroll) /* have a keycode */ + /* poke backlight every 1/4s of activity */ + if (TIME_AFTER(current_tick, next_backlight_on)) { + backlight_on_by_button(wheel_keycode); + reset_poweroff_timer(); + next_backlight_on = current_tick + HZ/4; + } + usec = USEC_TIMER; v = usec - last_wheel_usec; diff --git a/firmware/target/arm/sandisk/sansa-e200/button-e200.c b/firmware/target/arm/sandisk/sansa-e200/button-e200.c index 1e952b3..cd79023 100644 --- a/firmware/target/arm/sandisk/sansa-e200/button-e200.c +++ b/firmware/target/arm/sandisk/sansa-e200/button-e200.c @@ -170,7 +170,7 @@ void clickwheel_int(void) /* Poke backlight to turn it on or maintain it no more often * than every 1/4 second */ next_backlight_on = current_tick + HZ/4; - backlight_on(); + backlight_on_by_button(keycode); #ifdef HAVE_BUTTON_LIGHT buttonlight_on(); #endif -- 1.8.1.2
Все, кроме пользователей плеерру, — здоровы (в медицинском смысле данного термина).
Подпись заапрувлена лично Муркой, а также двуличным Хардкористом.
-
-
- Адрес
- Новосибирск
- Возраст
- 50
- Сообщений
- 9,004
- Репутация
- 95465 (0)
25.10.2013 14:43gemzza, На вашей сборке услышал довольно много сибов на вокале.
Второе объемность звука, кажется даже больше у Роланда, хотя это на 100 % не утверждаю, состояние может не восприимчивое.Спойлер:
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
25.10.2013 14:46Roland.msv, ты лучше прямую ссылку кинь сайт рокбокса, мне так проще будет. А так, будет скучно, сделаю... Судя по diff, патч достаточно новый, это хорошо.
ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
- Адрес
- Самара
- Сообщений
- 982
- Репутация
- 8225 (0)
25.10.2013 14:48Источники: HiBy R5 Saber
Наушники: Magaosi K3-BA, Fischer Amps FA-4E XB, AA AM5LE
Полезное: Shanling M1 (FW 4.6, USB Cloner Tool), HiBy R3 (FW 3.4, Theme Tool)
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
25.10.2013 14:50Ок, вы (хозяева клипов) между собой тут договоритесь, что вам больше понравилось, а потом мы решим, что со всем этим делать.
---------- Добавлено в 14:50 ---------- Предыдущее сообщение было размещено в 14:49 ----------
А чем она отличается от того самого dev-билда, на основе которого была сделана?ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
- Адрес
- Новосибирск
- Возраст
- 50
- Сообщений
- 9,004
- Репутация
- 95465 (0)
-
- Адрес
- Самара
- Сообщений
- 982
- Репутация
- 8225 (0)
25.10.2013 14:57Источники: HiBy R5 Saber
Наушники: Magaosi K3-BA, Fischer Amps FA-4E XB, AA AM5LE
Полезное: Shanling M1 (FW 4.6, USB Cloner Tool), HiBy R3 (FW 3.4, Theme Tool)
-
- Адрес
- Москва
- Сообщений
- 2,449
- Репутация
- 56840 (0)
Все, кроме пользователей плеерру, — здоровы (в медицинском смысле данного термина).
Подпись заапрувлена лично Муркой, а также двуличным Хардкористом.
-
- Адрес
- Новосибирск
- Возраст
- 50
- Сообщений
- 9,004
- Репутация
- 95465 (0)
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
-
- Адрес
- Самара
- Сообщений
- 982
- Репутация
- 8225 (0)
25.10.2013 16:17Источники: HiBy R5 Saber
Наушники: Magaosi K3-BA, Fischer Amps FA-4E XB, AA AM5LE
Полезное: Shanling M1 (FW 4.6, USB Cloner Tool), HiBy R3 (FW 3.4, Theme Tool)
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
25.10.2013 16:29snoopy112, вам сюда. Все описано просто и доступно. Если есть навык общения с linux-подобными системами, вообще замечательно, если нет, никогда не поздно его приобрести. Вы же никуда не торопитесь? Как ковориться: "Лучше день потерять, зато потом..."
---------- Добавлено в 16:29 ---------- Предыдущее сообщение было размещено в 16:27 ----------
Для определенности предлагаю называть билды следующим образом:
- билд Роланда, dev-билд и билд Гемззы, так понятнее будет (мне, по крайней мере)ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
Информация о теме
Пользователи, просматривающие эту тему
Эту тему просматривают: 10 (пользователей: 0 , гостей: 10)
Похожие темы
-
Куплю Sandisk Sansa Clip+ или Sansa Clip Zip
от ZodiakRus в разделе АрхивОтветов: 1Последнее сообщение: 09.04.2016, 10:12 -
Sandisk Sansa Clip+ vs Sansa Clip Zip vs Transcend T.Sonic 870 помогите выбрать
от pupkin313 в разделе Выбор плеераОтветов: 1Последнее сообщение: 23.01.2013, 20:21 -
Ожидание Sandisk Sansa Clip+ и обсуждение продукции Sandisk
от ILAR в разделе Flash-плеерыОтветов: 133Последнее сообщение: 24.09.2009, 01:55