summaryrefslogtreecommitdiffstats
path: root/utils/nwztools
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2017-02-23 11:33:19 +0100
committerAmaury Pouly <amaury.pouly@gmail.com>2017-09-05 21:42:12 +0200
commit1d121e8c082fe67757cf0d4df7b9e6ca1e26f755 (patch)
tree1c93842d99bb8e4a5f3ed5bca38c05e7f17894fa /utils/nwztools
parent142f80f07d96305f1618c99c28c13319b1b279e6 (diff)
downloadrockbox-1d121e8c082fe67757cf0d4df7b9e6ca1e26f755.tar.gz
rockbox-1d121e8c082fe67757cf0d4df7b9e6ca1e26f755.tar.bz2
rockbox-1d121e8c082fe67757cf0d4df7b9e6ca1e26f755.zip
Initial commit for the Sony NWZ linux port
SUPPORTED SERIES: - NWZ-E450 - NWZ-E460 - NWZ-E470 - NWZ-E580 - NWZ-A10 NOTES: - bootloader makefile convert an extra font to be installed alongside the bootloader since sysfont is way too small - the toolsicon bitmap comes from the Oxygen iconset - touchscreen driver is untested TODO: - implement audio routing driver (pcm is handled by pcm-alsa) - fix playback: it crashes on illegal instruction in DEBUG builds - find out why the browser starts at / instead of /contents - implement radio support - implement return to OF for usb handling - calibrate battery curve (NB: of can report a battery level on a 0-5 scale but probabl don't want to use that ?) - implement simulator build (we need a nice image of the player) - figure out if we can detect jack removal POTENTIAL TODOS: - try to build a usb serial gadget and gdbserver Change-Id: Ic77d71e0651355d47cc4e423a40fb64a60c69a80
Diffstat (limited to 'utils/nwztools')
-rwxr-xr-xutils/nwztools/database/gen_db.py6
-rw-r--r--utils/nwztools/database/nwz_db.c1337
-rw-r--r--utils/nwztools/database/nwz_db.h193
-rw-r--r--utils/nwztools/plattools/Makefile31
-rw-r--r--utils/nwztools/plattools/README27
-rw-r--r--utils/nwztools/plattools/all_tools.c133
-rw-r--r--utils/nwztools/plattools/data/Makefile8
-rw-r--r--utils/nwztools/plattools/data/Oxygen480-categories-preferences-system.svg334
-rwxr-xr-xutils/nwztools/plattools/data/make_images.sh53
-rw-r--r--utils/nwztools/plattools/data/rockbox_icon.bmpbin51014 -> 0 bytes
-rw-r--r--utils/nwztools/plattools/data/tools_icon.bmpbin51014 -> 0 bytes
-rw-r--r--utils/nwztools/plattools/dest_tool.c192
-rw-r--r--utils/nwztools/plattools/dualboot.c302
-rw-r--r--utils/nwztools/plattools/nwz_adc.h42
-rw-r--r--utils/nwztools/plattools/nwz_fb.h139
-rw-r--r--utils/nwztools/plattools/nwz_keys.h62
-rw-r--r--utils/nwztools/plattools/nwz_lib.c777
-rw-r--r--utils/nwztools/plattools/nwz_lib.h220
-rw-r--r--utils/nwztools/plattools/nwz_plattools.h37
-rw-r--r--utils/nwztools/plattools/nwz_power.h115
-rw-r--r--utils/nwztools/plattools/nwz_ts.h35
-rw-r--r--utils/nwztools/plattools/test_adc.c67
-rw-r--r--utils/nwztools/plattools/test_bl.c112
-rw-r--r--utils/nwztools/plattools/test_display.c67
-rw-r--r--utils/nwztools/plattools/test_fb.c152
-rw-r--r--utils/nwztools/plattools/test_keys.c105
-rw-r--r--utils/nwztools/plattools/test_power.c152
-rw-r--r--utils/nwztools/plattools/test_ts.c98
-rw-r--r--utils/nwztools/scripts/install_dualboot.sh6
-rw-r--r--utils/nwztools/scsitools/Makefile4
-rw-r--r--utils/nwztools/scsitools/scsitool.c2
31 files changed, 10 insertions, 4798 deletions
diff --git a/utils/nwztools/database/gen_db.py b/utils/nwztools/database/gen_db.py
index de78d05cab..be4cc34db0 100755
--- a/utils/nwztools/database/gen_db.py
+++ b/utils/nwztools/database/gen_db.py
@@ -200,7 +200,7 @@ extern struct nwz_series_info_t nwz_series[NWZ_SERIES_COUNT];
#endif /* __NWZ_DB_H__ */
"""
-with open("nwz_db.h", "w") as fp:
+with open("nwz-db.h", "w") as fp:
fp.write(header_begin)
# generate list of all nvp nodes
for name in sorted(g_nvp_names):
@@ -241,7 +241,7 @@ impl_begin = \
/** /!\ This file was automatically generated, DO NOT MODIFY IT DIRECTLY /!\ */
-#include "nwz_db.h"
+#include "nwz-db.h"
struct nwz_model_info_t nwz_model[NWZ_MODEL_COUNT] =
{
@@ -256,7 +256,7 @@ def by_name(nvp_entry):
def codename_to_c(codename):
return re.sub('[^a-zA-Z0-9]', '_', codename, 0)
-with open("nwz_db.c", "w") as fp:
+with open("nwz-db.c", "w") as fp:
fp.write(impl_begin)
# generate model list (sort by mid)
for model in sorted(g_models, key = by_mid):
diff --git a/utils/nwztools/database/nwz_db.c b/utils/nwztools/database/nwz_db.c
deleted file mode 100644
index b65b49d191..0000000000
--- a/utils/nwztools/database/nwz_db.c
+++ /dev/null
@@ -1,1337 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-/** /!\ This file was automatically generated, DO NOT MODIFY IT DIRECTLY /!\ */
-
-#include "nwz_db.h"
-
-struct nwz_model_info_t nwz_model[NWZ_MODEL_COUNT] =
-{
- { 0x10000, "NWZ-A815" },
- { 0x10001, "NWZ-A816" },
- { 0x10002, "NWZ-A818" },
- { 0x1000000, "NW-S615F" },
- { 0x1000001, "NW-S616F" },
- { 0x1010000, "NW-S715F" },
- { 0x1010001, "NW-S716F" },
- { 0x1010002, "NW-S718F" },
- { 0x1020000, "NWZ-S615F" },
- { 0x1020001, "NWZ-S616F" },
- { 0x1020002, "NWZ-S618F" },
- { 0x1030000, "NWZ-S515" },
- { 0x1030001, "NWZ-S516" },
- { 0x1040000, "NWZ-S715F" },
- { 0x1040001, "NWZ-S716F" },
- { 0x1040002, "NWZ-S718F" },
- { 0x2000001, "NW-A916" },
- { 0x2000002, "NW-A918" },
- { 0x2000004, "NW-A919" },
- { 0x3000001, "NWZ-A826" },
- { 0x3000002, "NWZ-A828" },
- { 0x3000004, "NWZ-A829" },
- { 0x3010001, "NW-A826" },
- { 0x3010002, "NW-A828" },
- { 0x3010004, "NW-A829" },
- { 0x3020001, "NWZ-A726B" },
- { 0x3020002, "NWZ-A728B" },
- { 0x3020004, "NWZ-A729B" },
- { 0x3030001, "NWZ-A726" },
- { 0x3030002, "NWZ-A728" },
- { 0x3030004, "NWZ-A729" },
- { 0x4000001, "NW-S636F" },
- { 0x4000002, "NW-S638F" },
- { 0x4000004, "NW-S639F" },
- { 0x4010001, "NW-S736F" },
- { 0x4010002, "NW-S738F" },
- { 0x4010004, "NW-S739F" },
- { 0x4020001, "NWZ-S636F" },
- { 0x4020002, "NWZ-S638F" },
- { 0x4020004, "NWZ-S639F" },
- { 0x4030001, "NWZ-S736F" },
- { 0x4030002, "NWZ-S738F" },
- { 0x4030004, "NWZ-S739F" },
- { 0x5000002, "NW-X1040" },
- { 0x5000004, "NW-X1050" },
- { 0x5000005, "NW-X1060" },
- { 0x5010002, "NWZ-NONAME" },
- { 0x5010004, "NWZ-NONAME" },
- { 0x5010005, "NWZ-NONAME" },
- { 0x5020002, "NWZ-X1040" },
- { 0x5020004, "NWZ-X1050" },
- { 0x5020005, "NWZ-X1060" },
- { 0x5040002, "NWZ-X1041" },
- { 0x5040004, "NWZ-X1051" },
- { 0x5040005, "NWZ-X1061" },
- { 0x6010002, "NW-S644" },
- { 0x6010004, "NW-S645" },
- { 0x6010005, "NW-S646" },
- { 0x6020002, "NWZ-S744" },
- { 0x6020004, "NWZ-S745" },
- { 0x6020005, "NWZ-S746" },
- { 0x6030002, "NW-S744" },
- { 0x6030004, "NW-S745" },
- { 0x6030005, "NW-S746" },
- { 0x7000004, "NWZ-A845" },
- { 0x7000005, "NWZ-A846" },
- { 0x7000006, "NWZ-A847" },
- { 0x7010004, "NW-A845" },
- { 0x7010005, "NW-A846" },
- { 0x7010006, "NW-A847" },
- { 0x8000000, "NW-E052" },
- { 0x8000001, "NW-E053" },
- { 0x8000002, "NW-E054" },
- { 0x9000002, "NW-S754" },
- { 0x9000004, "NW-S755" },
- { 0x9000005, "NW-S756" },
- { 0xb000001, "NWZ-E453" },
- { 0xb000002, "NWZ-E454" },
- { 0xb000004, "NWZ-E455" },
- { 0xc000001, "NWZ-E353" },
- { 0xc000002, "NWZ-E354" },
- { 0xc000004, "NWZ-E355" },
- { 0xd000001, "NWZ-E553" },
- { 0xd000002, "NWZ-E554" },
- { 0xd000004, "NWZ-E555" },
- { 0xd000005, "NWZ-E556" },
- { 0xe000004, "NWZ-A855" },
- { 0xe000005, "NWZ-A856" },
- { 0xe000006, "NWZ-A857" },
- { 0xf000002, "NWZ-S754" },
- { 0xf000004, "NWZ-S755" },
- { 0x10000000, "NWZ-E052" },
- { 0x10000001, "NWZ-E053" },
- { 0x11000001, "NW-A863" },
- { 0x11000002, "NW-A864" },
- { 0x11000004, "NW-A865" },
- { 0x11000005, "NW-A866" },
- { 0x11000006, "NW-A867" },
- { 0x11010001, "NWZ-A863" },
- { 0x11010002, "NWZ-A864" },
- { 0x11010004, "NWZ-A865" },
- { 0x11010005, "NWZ-A866" },
- { 0x11010006, "NWZ-A867" },
- { 0x11020001, "NWZ-A863" },
- { 0x11020002, "NWZ-A864" },
- { 0x11020004, "NWZ-A865" },
- { 0x11020005, "NWZ-A866" },
- { 0x11020006, "NWZ-A867" },
- { 0x12000001, "NW-S763" },
- { 0x12000002, "NW-S764" },
- { 0x12000004, "NW-S765" },
- { 0x12000005, "NW-S766" },
- { 0x12000006, "NW-S767" },
- { 0x12010001, "NWZ-S763" },
- { 0x12010002, "NWZ-S764" },
- { 0x12010004, "NWZ-S765" },
- { 0x12010005, "NWZ-S766" },
- { 0x12010006, "NWZ-S767" },
- { 0x13000001, "NWZ-E463" },
- { 0x13000002, "NWZ-E464" },
- { 0x13000004, "NWZ-E465" },
- { 0x14000000, "NW-E062" },
- { 0x14000001, "NW-E063" },
- { 0x14000002, "NW-E064" },
- { 0x14000004, "NW-E065" },
- { 0x14000005, "NW-E066" },
- { 0x15000001, "NWZ-E473" },
- { 0x15000002, "NWZ-E474" },
- { 0x15000004, "NWZ-E475" },
- { 0x15000005, "NWZ-E476" },
- { 0x15010001, "NWZ-E573" },
- { 0x15010002, "NWZ-E574" },
- { 0x15010004, "NWZ-E575" },
- { 0x15010005, "NWZ-E576" },
- { 0x16000001, "NW-S773" },
- { 0x16000002, "NW-S774" },
- { 0x16000004, "NW-S775" },
- { 0x16000005, "NW-S776" },
- { 0x16010001, "NWZ-S773" },
- { 0x16010002, "NWZ-S774" },
- { 0x16010004, "NWZ-S775" },
- { 0x16010005, "NWZ-S776" },
- { 0x19000001, "NW-S783" },
- { 0x19000002, "NW-S784" },
- { 0x19000004, "NW-S785" },
- { 0x19000005, "NW-S786" },
- { 0x19010001, "NW-E083" },
- { 0x19010002, "NW-E084" },
- { 0x19010004, "NW-E085" },
- { 0x19010005, "NW-E086" },
- { 0x19020001, "NWZ-E583" },
- { 0x19020002, "NWZ-E584" },
- { 0x19020004, "NWZ-E585" },
- { 0x19020005, "NWZ-E586" },
- { 0x1a000001, "NW-A13" },
- { 0x1a000002, "NW-A14" },
- { 0x1a000004, "NW-A15" },
- { 0x1a000005, "NW-A16" },
- { 0x1a000006, "NW-A17" },
- { 0x1a010001, "NWZ-A13" },
- { 0x1a010002, "NWZ-A14" },
- { 0x1a010004, "NWZ-A15" },
- { 0x1a010005, "NWZ-A16" },
- { 0x1a010006, "NWZ-A17" },
- { 0x1b000001, "NW-S13" },
- { 0x1b000002, "NW-S14" },
- { 0x1b000004, "NW-S15" },
- { 0x1b000005, "NW-S16" },
- { 0x1b000006, "NW-S17" },
- { 0x1c000001, "NW-ZX103" },
- { 0x1c000002, "NW-ZX104" },
- { 0x1c000004, "NW-ZX105" },
- { 0x1c000005, "NW-ZX106" },
- { 0x1c000006, "NW-ZX107" },
- { 0x1c000007, "NW-ZX100" },
- { 0x1d000001, "NW-A23" },
- { 0x1d000002, "NW-A24" },
- { 0x1d000004, "NW-A25" },
- { 0x1d000005, "NW-A26" },
- { 0x1d000006, "NW-A27" },
- { 0x1d000007, "NW-A28" },
- { 0x20000007, "NW-WM1A" },
- { 0x21000008, "NW-WM1Z" },
- { 0x22000004, "NW-A35" },
- { 0x22000005, "NW-A36" },
- { 0x22000006, "NW-A37" },
-};
-
-static int nvp_index_0ac81d[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = 78,
- [NWZ_NVP_APP] = 5,
- [NWZ_NVP_BFD] = NWZ_NVP_INVALID,
- [NWZ_NVP_BFP] = NWZ_NVP_INVALID,
- [NWZ_NVP_BLF] = 79,
- [NWZ_NVP_BML] = NWZ_NVP_INVALID,
- [NWZ_NVP_BOK] = 10,
- [NWZ_NVP_BPR] = 35,
- [NWZ_NVP_BTC] = NWZ_NVP_INVALID,
- [NWZ_NVP_BTI] = 1,
- [NWZ_NVP_CLV] = 68,
- [NWZ_NVP_CNG] = 3,
- [NWZ_NVP_CTR] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBA] = 12,
- [NWZ_NVP_DBG] = 0,
- [NWZ_NVP_DBI] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBS] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBV] = 13,
- [NWZ_NVP_DCC] = 7,
- [NWZ_NVP_DG0] = NWZ_NVP_INVALID,
- [NWZ_NVP_DG1] = NWZ_NVP_INVALID,
- [NWZ_NVP_DOR] = 21,
- [NWZ_NVP_E00] = 36,
- [NWZ_NVP_E01] = 37,
- [NWZ_NVP_E02] = 38,
- [NWZ_NVP_E03] = 39,
- [NWZ_NVP_E04] = 40,
- [NWZ_NVP_E05] = 41,
- [NWZ_NVP_E06] = 42,
- [NWZ_NVP_E07] = 43,
- [NWZ_NVP_E08] = 44,
- [NWZ_NVP_E09] = 45,
- [NWZ_NVP_E10] = 46,
- [NWZ_NVP_E11] = 47,
- [NWZ_NVP_E12] = 48,
- [NWZ_NVP_E13] = 49,
- [NWZ_NVP_E14] = 50,
- [NWZ_NVP_E15] = 51,
- [NWZ_NVP_E16] = 52,
- [NWZ_NVP_E17] = 53,
- [NWZ_NVP_E18] = 54,
- [NWZ_NVP_E19] = 55,
- [NWZ_NVP_E20] = 56,
- [NWZ_NVP_E21] = 57,
- [NWZ_NVP_E22] = 58,
- [NWZ_NVP_E23] = 59,
- [NWZ_NVP_E24] = 60,
- [NWZ_NVP_E25] = 61,
- [NWZ_NVP_E26] = 62,
- [NWZ_NVP_E27] = 63,
- [NWZ_NVP_E28] = 64,
- [NWZ_NVP_E29] = 65,
- [NWZ_NVP_E30] = 66,
- [NWZ_NVP_E31] = 67,
- [NWZ_NVP_EDW] = 22,
- [NWZ_NVP_EP0] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP1] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP2] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP3] = NWZ_NVP_INVALID,
- [NWZ_NVP_ERI] = 6,
- [NWZ_NVP_EXM] = 25,
- [NWZ_NVP_FMP] = 82,
- [NWZ_NVP_FNI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FPI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FUI] = 19,
- [NWZ_NVP_FUP] = 9,
- [NWZ_NVP_FUR] = NWZ_NVP_INVALID,
- [NWZ_NVP_FVI] = NWZ_NVP_INVALID,
- [NWZ_NVP_GTY] = 18,
- [NWZ_NVP_HDI] = 2,
- [NWZ_NVP_HLD] = 80,
- [NWZ_NVP_INS] = NWZ_NVP_INVALID,
- [NWZ_NVP_IPT] = 70,
- [NWZ_NVP_KAS] = 32,
- [NWZ_NVP_LBI] = 20,
- [NWZ_NVP_LYR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MAC] = 77,
- [NWZ_NVP_MCR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDK] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDL] = 8,
- [NWZ_NVP_MID] = 16,
- [NWZ_NVP_MLK] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSC] = 84,
- [NWZ_NVP_MSO] = NWZ_NVP_INVALID,
- [NWZ_NVP_MTM] = NWZ_NVP_INVALID,
- [NWZ_NVP_MUK] = NWZ_NVP_INVALID,
- [NWZ_NVP_NCP] = 31,
- [NWZ_NVP_NVR] = NWZ_NVP_INVALID,
- [NWZ_NVP_PCD] = 26,
- [NWZ_NVP_PCI] = NWZ_NVP_INVALID,
- [NWZ_NVP_PNC] = NWZ_NVP_INVALID,
- [NWZ_NVP_PRK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PSK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PTS] = 75,
- [NWZ_NVP_RBT] = NWZ_NVP_INVALID,
- [NWZ_NVP_RND] = 28,
- [NWZ_NVP_RTC] = 34,
- [NWZ_NVP_SDC] = NWZ_NVP_INVALID,
- [NWZ_NVP_SDP] = 30,
- [NWZ_NVP_SER] = 4,
- [NWZ_NVP_SFI] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHE] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHP] = 11,
- [NWZ_NVP_SID] = NWZ_NVP_INVALID,
- [NWZ_NVP_SKD] = 81,
- [NWZ_NVP_SKT] = 76,
- [NWZ_NVP_SKU] = NWZ_NVP_INVALID,
- [NWZ_NVP_SLP] = 69,
- [NWZ_NVP_SPS] = 83,
- [NWZ_NVP_SYI] = 24,
- [NWZ_NVP_TR0] = 14,
- [NWZ_NVP_TR1] = 15,
- [NWZ_NVP_TST] = 17,
- [NWZ_NVP_UBP] = 23,
- [NWZ_NVP_UFN] = 29,
- [NWZ_NVP_UMS] = NWZ_NVP_INVALID,
- [NWZ_NVP_UPS] = NWZ_NVP_INVALID,
- [NWZ_NVP_VAR] = NWZ_NVP_INVALID,
- [NWZ_NVP_VRT] = NWZ_NVP_INVALID,
-};
-
-static int nvp_index_28dc2c[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = 78,
- [NWZ_NVP_APP] = NWZ_NVP_INVALID,
- [NWZ_NVP_BFD] = 21,
- [NWZ_NVP_BFP] = 20,
- [NWZ_NVP_BLF] = 79,
- [NWZ_NVP_BML] = 22,
- [NWZ_NVP_BOK] = 4,
- [NWZ_NVP_BPR] = 19,
- [NWZ_NVP_BTC] = 85,
- [NWZ_NVP_BTI] = 72,
- [NWZ_NVP_CLV] = 68,
- [NWZ_NVP_CNG] = 23,
- [NWZ_NVP_CTR] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBA] = 24,
- [NWZ_NVP_DBG] = 0,
- [NWZ_NVP_DBI] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBS] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBV] = 25,
- [NWZ_NVP_DCC] = 31,
- [NWZ_NVP_DG0] = NWZ_NVP_INVALID,
- [NWZ_NVP_DG1] = NWZ_NVP_INVALID,
- [NWZ_NVP_DOR] = 26,
- [NWZ_NVP_E00] = 36,
- [NWZ_NVP_E01] = 37,
- [NWZ_NVP_E02] = 38,
- [NWZ_NVP_E03] = 39,
- [NWZ_NVP_E04] = 40,
- [NWZ_NVP_E05] = 41,
- [NWZ_NVP_E06] = 42,
- [NWZ_NVP_E07] = 43,
- [NWZ_NVP_E08] = 44,
- [NWZ_NVP_E09] = 45,
- [NWZ_NVP_E10] = 46,
- [NWZ_NVP_E11] = 47,
- [NWZ_NVP_E12] = 48,
- [NWZ_NVP_E13] = 49,
- [NWZ_NVP_E14] = 50,
- [NWZ_NVP_E15] = 51,
- [NWZ_NVP_E16] = 52,
- [NWZ_NVP_E17] = 53,
- [NWZ_NVP_E18] = 54,
- [NWZ_NVP_E19] = 55,
- [NWZ_NVP_E20] = 56,
- [NWZ_NVP_E21] = 57,
- [NWZ_NVP_E22] = 58,
- [NWZ_NVP_E23] = 59,
- [NWZ_NVP_E24] = 60,
- [NWZ_NVP_E25] = 61,
- [NWZ_NVP_E26] = 62,
- [NWZ_NVP_E27] = 63,
- [NWZ_NVP_E28] = 64,
- [NWZ_NVP_E29] = 65,
- [NWZ_NVP_E30] = 66,
- [NWZ_NVP_E31] = 67,
- [NWZ_NVP_EDW] = 71,
- [NWZ_NVP_EP0] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP1] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP2] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP3] = NWZ_NVP_INVALID,
- [NWZ_NVP_ERI] = 76,
- [NWZ_NVP_EXM] = NWZ_NVP_INVALID,
- [NWZ_NVP_FMP] = 15,
- [NWZ_NVP_FNI] = 82,
- [NWZ_NVP_FPI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FUI] = 75,
- [NWZ_NVP_FUP] = 3,
- [NWZ_NVP_FUR] = NWZ_NVP_INVALID,
- [NWZ_NVP_FVI] = NWZ_NVP_INVALID,
- [NWZ_NVP_GTY] = 14,
- [NWZ_NVP_HDI] = 73,
- [NWZ_NVP_HLD] = 5,
- [NWZ_NVP_INS] = NWZ_NVP_INVALID,
- [NWZ_NVP_IPT] = NWZ_NVP_INVALID,
- [NWZ_NVP_KAS] = 11,
- [NWZ_NVP_LBI] = 74,
- [NWZ_NVP_LYR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MAC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MCR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDK] = 30,
- [NWZ_NVP_MDL] = 70,
- [NWZ_NVP_MID] = 7,
- [NWZ_NVP_MLK] = 84,
- [NWZ_NVP_MSC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSO] = 86,
- [NWZ_NVP_MTM] = 33,
- [NWZ_NVP_MUK] = NWZ_NVP_INVALID,
- [NWZ_NVP_NCP] = 17,
- [NWZ_NVP_NVR] = NWZ_NVP_INVALID,
- [NWZ_NVP_PCD] = 8,
- [NWZ_NVP_PCI] = NWZ_NVP_INVALID,
- [NWZ_NVP_PNC] = NWZ_NVP_INVALID,
- [NWZ_NVP_PRK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PSK] = 18,
- [NWZ_NVP_PTS] = 77,
- [NWZ_NVP_RBT] = NWZ_NVP_INVALID,
- [NWZ_NVP_RND] = 27,
- [NWZ_NVP_RTC] = 6,
- [NWZ_NVP_SDC] = NWZ_NVP_INVALID,
- [NWZ_NVP_SDP] = 16,
- [NWZ_NVP_SER] = 9,
- [NWZ_NVP_SFI] = 29,
- [NWZ_NVP_SHE] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHP] = 12,
- [NWZ_NVP_SID] = 83,
- [NWZ_NVP_SKD] = 28,
- [NWZ_NVP_SKT] = 32,
- [NWZ_NVP_SKU] = NWZ_NVP_INVALID,
- [NWZ_NVP_SLP] = 80,
- [NWZ_NVP_SPS] = 69,
- [NWZ_NVP_SYI] = 1,
- [NWZ_NVP_TR0] = 34,
- [NWZ_NVP_TR1] = 35,
- [NWZ_NVP_TST] = 13,
- [NWZ_NVP_UBP] = 2,
- [NWZ_NVP_UFN] = 10,
- [NWZ_NVP_UMS] = NWZ_NVP_INVALID,
- [NWZ_NVP_UPS] = NWZ_NVP_INVALID,
- [NWZ_NVP_VAR] = NWZ_NVP_INVALID,
- [NWZ_NVP_VRT] = 81,
-};
-
-static int nvp_index_398250[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = 78,
- [NWZ_NVP_APP] = NWZ_NVP_INVALID,
- [NWZ_NVP_BFD] = 21,
- [NWZ_NVP_BFP] = 20,
- [NWZ_NVP_BLF] = 79,
- [NWZ_NVP_BML] = 22,
- [NWZ_NVP_BOK] = NWZ_NVP_INVALID,
- [NWZ_NVP_BPR] = 19,
- [NWZ_NVP_BTC] = 85,
- [NWZ_NVP_BTI] = 72,
- [NWZ_NVP_CLV] = 68,
- [NWZ_NVP_CNG] = 23,
- [NWZ_NVP_CTR] = 90,
- [NWZ_NVP_DBA] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBG] = 0,
- [NWZ_NVP_DBI] = 88,
- [NWZ_NVP_DBS] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBV] = 25,
- [NWZ_NVP_DCC] = NWZ_NVP_INVALID,
- [NWZ_NVP_DG0] = NWZ_NVP_INVALID,
- [NWZ_NVP_DG1] = NWZ_NVP_INVALID,
- [NWZ_NVP_DOR] = NWZ_NVP_INVALID,
- [NWZ_NVP_E00] = 36,
- [NWZ_NVP_E01] = 37,
- [NWZ_NVP_E02] = 38,
- [NWZ_NVP_E03] = 39,
- [NWZ_NVP_E04] = 40,
- [NWZ_NVP_E05] = 41,
- [NWZ_NVP_E06] = 42,
- [NWZ_NVP_E07] = 43,
- [NWZ_NVP_E08] = 44,
- [NWZ_NVP_E09] = 45,
- [NWZ_NVP_E10] = 46,
- [NWZ_NVP_E11] = 47,
- [NWZ_NVP_E12] = 48,
- [NWZ_NVP_E13] = 49,
- [NWZ_NVP_E14] = 50,
- [NWZ_NVP_E15] = 51,
- [NWZ_NVP_E16] = 52,
- [NWZ_NVP_E17] = 53,
- [NWZ_NVP_E18] = 54,
- [NWZ_NVP_E19] = 55,
- [NWZ_NVP_E20] = 56,
- [NWZ_NVP_E21] = 57,
- [NWZ_NVP_E22] = 58,
- [NWZ_NVP_E23] = 59,
- [NWZ_NVP_E24] = 60,
- [NWZ_NVP_E25] = 61,
- [NWZ_NVP_E26] = 62,
- [NWZ_NVP_E27] = 63,
- [NWZ_NVP_E28] = 64,
- [NWZ_NVP_E29] = 65,
- [NWZ_NVP_E30] = 66,
- [NWZ_NVP_E31] = 67,
- [NWZ_NVP_EDW] = 71,
- [NWZ_NVP_EP0] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP1] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP2] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP3] = NWZ_NVP_INVALID,
- [NWZ_NVP_ERI] = 76,
- [NWZ_NVP_EXM] = NWZ_NVP_INVALID,
- [NWZ_NVP_FMP] = 15,
- [NWZ_NVP_FNI] = 82,
- [NWZ_NVP_FPI] = 33,
- [NWZ_NVP_FUI] = 75,
- [NWZ_NVP_FUP] = 3,
- [NWZ_NVP_FUR] = 26,
- [NWZ_NVP_FVI] = 31,
- [NWZ_NVP_GTY] = 14,
- [NWZ_NVP_HDI] = 73,
- [NWZ_NVP_HLD] = 5,
- [NWZ_NVP_INS] = 89,
- [NWZ_NVP_IPT] = NWZ_NVP_INVALID,
- [NWZ_NVP_KAS] = 11,
- [NWZ_NVP_LBI] = 74,
- [NWZ_NVP_LYR] = 24,
- [NWZ_NVP_MAC] = 32,
- [NWZ_NVP_MCR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDK] = 30,
- [NWZ_NVP_MDL] = NWZ_NVP_INVALID,
- [NWZ_NVP_MID] = 7,
- [NWZ_NVP_MLK] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSO] = 86,
- [NWZ_NVP_MTM] = NWZ_NVP_INVALID,
- [NWZ_NVP_MUK] = NWZ_NVP_INVALID,
- [NWZ_NVP_NCP] = 17,
- [NWZ_NVP_NVR] = 77,
- [NWZ_NVP_PCD] = 8,
- [NWZ_NVP_PCI] = 87,
- [NWZ_NVP_PNC] = NWZ_NVP_INVALID,
- [NWZ_NVP_PRK] = 4,
- [NWZ_NVP_PSK] = 18,
- [NWZ_NVP_PTS] = NWZ_NVP_INVALID,
- [NWZ_NVP_RBT] = 70,
- [NWZ_NVP_RND] = NWZ_NVP_INVALID,
- [NWZ_NVP_RTC] = 6,
- [NWZ_NVP_SDC] = NWZ_NVP_INVALID,
- [NWZ_NVP_SDP] = 16,
- [NWZ_NVP_SER] = 9,
- [NWZ_NVP_SFI] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHE] = 84,
- [NWZ_NVP_SHP] = 12,
- [NWZ_NVP_SID] = 83,
- [NWZ_NVP_SKD] = 28,
- [NWZ_NVP_SKT] = NWZ_NVP_INVALID,
- [NWZ_NVP_SKU] = 91,
- [NWZ_NVP_SLP] = 80,
- [NWZ_NVP_SPS] = 69,
- [NWZ_NVP_SYI] = 1,
- [NWZ_NVP_TR0] = 34,
- [NWZ_NVP_TR1] = 35,
- [NWZ_NVP_TST] = 13,
- [NWZ_NVP_UBP] = 2,
- [NWZ_NVP_UFN] = 10,
- [NWZ_NVP_UMS] = 27,
- [NWZ_NVP_UPS] = 29,
- [NWZ_NVP_VAR] = NWZ_NVP_INVALID,
- [NWZ_NVP_VRT] = 81,
-};
-
-static int nvp_index_4edba7[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = 78,
- [NWZ_NVP_APP] = 0,
- [NWZ_NVP_BFD] = NWZ_NVP_INVALID,
- [NWZ_NVP_BFP] = NWZ_NVP_INVALID,
- [NWZ_NVP_BLF] = 79,
- [NWZ_NVP_BML] = NWZ_NVP_INVALID,
- [NWZ_NVP_BOK] = 10,
- [NWZ_NVP_BPR] = 35,
- [NWZ_NVP_BTC] = NWZ_NVP_INVALID,
- [NWZ_NVP_BTI] = 1,
- [NWZ_NVP_CLV] = 68,
- [NWZ_NVP_CNG] = 3,
- [NWZ_NVP_CTR] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBA] = 12,
- [NWZ_NVP_DBG] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBI] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBS] = 27,
- [NWZ_NVP_DBV] = 13,
- [NWZ_NVP_DCC] = 7,
- [NWZ_NVP_DG0] = 5,
- [NWZ_NVP_DG1] = 6,
- [NWZ_NVP_DOR] = 21,
- [NWZ_NVP_E00] = 36,
- [NWZ_NVP_E01] = 37,
- [NWZ_NVP_E02] = 38,
- [NWZ_NVP_E03] = 39,
- [NWZ_NVP_E04] = 40,
- [NWZ_NVP_E05] = 41,
- [NWZ_NVP_E06] = 42,
- [NWZ_NVP_E07] = 43,
- [NWZ_NVP_E08] = 44,
- [NWZ_NVP_E09] = 45,
- [NWZ_NVP_E10] = 46,
- [NWZ_NVP_E11] = 47,
- [NWZ_NVP_E12] = 48,
- [NWZ_NVP_E13] = 49,
- [NWZ_NVP_E14] = 50,
- [NWZ_NVP_E15] = 51,
- [NWZ_NVP_E16] = 52,
- [NWZ_NVP_E17] = 53,
- [NWZ_NVP_E18] = 54,
- [NWZ_NVP_E19] = 55,
- [NWZ_NVP_E20] = 56,
- [NWZ_NVP_E21] = 57,
- [NWZ_NVP_E22] = 58,
- [NWZ_NVP_E23] = 59,
- [NWZ_NVP_E24] = 60,
- [NWZ_NVP_E25] = 61,
- [NWZ_NVP_E26] = 62,
- [NWZ_NVP_E27] = 63,
- [NWZ_NVP_E28] = 64,
- [NWZ_NVP_E29] = 65,
- [NWZ_NVP_E30] = 66,
- [NWZ_NVP_E31] = 67,
- [NWZ_NVP_EDW] = 22,
- [NWZ_NVP_EP0] = 71,
- [NWZ_NVP_EP1] = 72,
- [NWZ_NVP_EP2] = 73,
- [NWZ_NVP_EP3] = 74,
- [NWZ_NVP_ERI] = NWZ_NVP_INVALID,
- [NWZ_NVP_EXM] = NWZ_NVP_INVALID,
- [NWZ_NVP_FMP] = NWZ_NVP_INVALID,
- [NWZ_NVP_FNI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FPI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FUI] = 19,
- [NWZ_NVP_FUP] = 9,
- [NWZ_NVP_FUR] = NWZ_NVP_INVALID,
- [NWZ_NVP_FVI] = NWZ_NVP_INVALID,
- [NWZ_NVP_GTY] = 18,
- [NWZ_NVP_HDI] = 2,
- [NWZ_NVP_HLD] = 80,
- [NWZ_NVP_INS] = NWZ_NVP_INVALID,
- [NWZ_NVP_IPT] = 70,
- [NWZ_NVP_KAS] = 32,
- [NWZ_NVP_LBI] = 20,
- [NWZ_NVP_LYR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MAC] = 77,
- [NWZ_NVP_MCR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDK] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDL] = 8,
- [NWZ_NVP_MID] = 16,
- [NWZ_NVP_MLK] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSO] = NWZ_NVP_INVALID,
- [NWZ_NVP_MTM] = NWZ_NVP_INVALID,
- [NWZ_NVP_MUK] = NWZ_NVP_INVALID,
- [NWZ_NVP_NCP] = 31,
- [NWZ_NVP_NVR] = NWZ_NVP_INVALID,
- [NWZ_NVP_PCD] = 26,
- [NWZ_NVP_PCI] = NWZ_NVP_INVALID,
- [NWZ_NVP_PNC] = 33,
- [NWZ_NVP_PRK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PSK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PTS] = 75,
- [NWZ_NVP_RBT] = NWZ_NVP_INVALID,
- [NWZ_NVP_RND] = 28,
- [NWZ_NVP_RTC] = 34,
- [NWZ_NVP_SDC] = NWZ_NVP_INVALID,
- [NWZ_NVP_SDP] = 30,
- [NWZ_NVP_SER] = 4,
- [NWZ_NVP_SFI] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHE] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHP] = 11,
- [NWZ_NVP_SID] = NWZ_NVP_INVALID,
- [NWZ_NVP_SKD] = 81,
- [NWZ_NVP_SKT] = 76,
- [NWZ_NVP_SKU] = NWZ_NVP_INVALID,
- [NWZ_NVP_SLP] = 69,
- [NWZ_NVP_SPS] = NWZ_NVP_INVALID,
- [NWZ_NVP_SYI] = 24,
- [NWZ_NVP_TR0] = 14,
- [NWZ_NVP_TR1] = 15,
- [NWZ_NVP_TST] = 17,
- [NWZ_NVP_UBP] = 23,
- [NWZ_NVP_UFN] = 29,
- [NWZ_NVP_UMS] = NWZ_NVP_INVALID,
- [NWZ_NVP_UPS] = NWZ_NVP_INVALID,
- [NWZ_NVP_VAR] = 25,
- [NWZ_NVP_VRT] = NWZ_NVP_INVALID,
-};
-
-static int nvp_index_6485c8[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = 78,
- [NWZ_NVP_APP] = NWZ_NVP_INVALID,
- [NWZ_NVP_BFD] = 21,
- [NWZ_NVP_BFP] = 20,
- [NWZ_NVP_BLF] = 79,
- [NWZ_NVP_BML] = 22,
- [NWZ_NVP_BOK] = 4,
- [NWZ_NVP_BPR] = 19,
- [NWZ_NVP_BTC] = 85,
- [NWZ_NVP_BTI] = 72,
- [NWZ_NVP_CLV] = 68,
- [NWZ_NVP_CNG] = 23,
- [NWZ_NVP_CTR] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBA] = 24,
- [NWZ_NVP_DBG] = 0,
- [NWZ_NVP_DBI] = 88,
- [NWZ_NVP_DBS] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBV] = 25,
- [NWZ_NVP_DCC] = 31,
- [NWZ_NVP_DG0] = NWZ_NVP_INVALID,
- [NWZ_NVP_DG1] = NWZ_NVP_INVALID,
- [NWZ_NVP_DOR] = 26,
- [NWZ_NVP_E00] = 36,
- [NWZ_NVP_E01] = 37,
- [NWZ_NVP_E02] = 38,
- [NWZ_NVP_E03] = 39,
- [NWZ_NVP_E04] = 40,
- [NWZ_NVP_E05] = 41,
- [NWZ_NVP_E06] = 42,
- [NWZ_NVP_E07] = 43,
- [NWZ_NVP_E08] = 44,
- [NWZ_NVP_E09] = 45,
- [NWZ_NVP_E10] = 46,
- [NWZ_NVP_E11] = 47,
- [NWZ_NVP_E12] = 48,
- [NWZ_NVP_E13] = 49,
- [NWZ_NVP_E14] = 50,
- [NWZ_NVP_E15] = 51,
- [NWZ_NVP_E16] = 52,
- [NWZ_NVP_E17] = 53,
- [NWZ_NVP_E18] = 54,
- [NWZ_NVP_E19] = 55,
- [NWZ_NVP_E20] = 56,
- [NWZ_NVP_E21] = 57,
- [NWZ_NVP_E22] = 58,
- [NWZ_NVP_E23] = 59,
- [NWZ_NVP_E24] = 60,
- [NWZ_NVP_E25] = 61,
- [NWZ_NVP_E26] = 62,
- [NWZ_NVP_E27] = 63,
- [NWZ_NVP_E28] = 64,
- [NWZ_NVP_E29] = 65,
- [NWZ_NVP_E30] = 66,
- [NWZ_NVP_E31] = 67,
- [NWZ_NVP_EDW] = 71,
- [NWZ_NVP_EP0] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP1] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP2] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP3] = NWZ_NVP_INVALID,
- [NWZ_NVP_ERI] = 76,
- [NWZ_NVP_EXM] = NWZ_NVP_INVALID,
- [NWZ_NVP_FMP] = 15,
- [NWZ_NVP_FNI] = 82,
- [NWZ_NVP_FPI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FUI] = 75,
- [NWZ_NVP_FUP] = 3,
- [NWZ_NVP_FUR] = NWZ_NVP_INVALID,
- [NWZ_NVP_FVI] = NWZ_NVP_INVALID,
- [NWZ_NVP_GTY] = 14,
- [NWZ_NVP_HDI] = 73,
- [NWZ_NVP_HLD] = 5,
- [NWZ_NVP_INS] = NWZ_NVP_INVALID,
- [NWZ_NVP_IPT] = NWZ_NVP_INVALID,
- [NWZ_NVP_KAS] = 11,
- [NWZ_NVP_LBI] = 74,
- [NWZ_NVP_LYR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MAC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MCR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDK] = 30,
- [NWZ_NVP_MDL] = 70,
- [NWZ_NVP_MID] = 7,
- [NWZ_NVP_MLK] = 84,
- [NWZ_NVP_MSC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSO] = 86,
- [NWZ_NVP_MTM] = 33,
- [NWZ_NVP_MUK] = NWZ_NVP_INVALID,
- [NWZ_NVP_NCP] = 17,
- [NWZ_NVP_NVR] = NWZ_NVP_INVALID,
- [NWZ_NVP_PCD] = 8,
- [NWZ_NVP_PCI] = 87,
- [NWZ_NVP_PNC] = NWZ_NVP_INVALID,
- [NWZ_NVP_PRK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PSK] = 18,
- [NWZ_NVP_PTS] = 77,
- [NWZ_NVP_RBT] = NWZ_NVP_INVALID,
- [NWZ_NVP_RND] = 27,
- [NWZ_NVP_RTC] = 6,
- [NWZ_NVP_SDC] = NWZ_NVP_INVALID,
- [NWZ_NVP_SDP] = 16,
- [NWZ_NVP_SER] = 9,
- [NWZ_NVP_SFI] = 29,
- [NWZ_NVP_SHE] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHP] = 12,
- [NWZ_NVP_SID] = 83,
- [NWZ_NVP_SKD] = 28,
- [NWZ_NVP_SKT] = 32,
- [NWZ_NVP_SKU] = NWZ_NVP_INVALID,
- [NWZ_NVP_SLP] = 80,
- [NWZ_NVP_SPS] = 69,
- [NWZ_NVP_SYI] = 1,
- [NWZ_NVP_TR0] = 34,
- [NWZ_NVP_TR1] = 35,
- [NWZ_NVP_TST] = 13,
- [NWZ_NVP_UBP] = 2,
- [NWZ_NVP_UFN] = 10,
- [NWZ_NVP_UMS] = NWZ_NVP_INVALID,
- [NWZ_NVP_UPS] = NWZ_NVP_INVALID,
- [NWZ_NVP_VAR] = NWZ_NVP_INVALID,
- [NWZ_NVP_VRT] = 81,
-};
-
-static int nvp_index_92faee[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = 78,
- [NWZ_NVP_APP] = NWZ_NVP_INVALID,
- [NWZ_NVP_BFD] = 21,
- [NWZ_NVP_BFP] = 20,
- [NWZ_NVP_BLF] = 79,
- [NWZ_NVP_BML] = 22,
- [NWZ_NVP_BOK] = 4,
- [NWZ_NVP_BPR] = 19,
- [NWZ_NVP_BTC] = 85,
- [NWZ_NVP_BTI] = 72,
- [NWZ_NVP_CLV] = 68,
- [NWZ_NVP_CNG] = 23,
- [NWZ_NVP_CTR] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBA] = 24,
- [NWZ_NVP_DBG] = 0,
- [NWZ_NVP_DBI] = 88,
- [NWZ_NVP_DBS] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBV] = 25,
- [NWZ_NVP_DCC] = 31,
- [NWZ_NVP_DG0] = NWZ_NVP_INVALID,
- [NWZ_NVP_DG1] = NWZ_NVP_INVALID,
- [NWZ_NVP_DOR] = 26,
- [NWZ_NVP_E00] = 36,
- [NWZ_NVP_E01] = 37,
- [NWZ_NVP_E02] = 38,
- [NWZ_NVP_E03] = 39,
- [NWZ_NVP_E04] = 40,
- [NWZ_NVP_E05] = 41,
- [NWZ_NVP_E06] = 42,
- [NWZ_NVP_E07] = 43,
- [NWZ_NVP_E08] = 44,
- [NWZ_NVP_E09] = 45,
- [NWZ_NVP_E10] = 46,
- [NWZ_NVP_E11] = 47,
- [NWZ_NVP_E12] = 48,
- [NWZ_NVP_E13] = 49,
- [NWZ_NVP_E14] = 50,
- [NWZ_NVP_E15] = 51,
- [NWZ_NVP_E16] = 52,
- [NWZ_NVP_E17] = 53,
- [NWZ_NVP_E18] = 54,
- [NWZ_NVP_E19] = 55,
- [NWZ_NVP_E20] = 56,
- [NWZ_NVP_E21] = 57,
- [NWZ_NVP_E22] = 58,
- [NWZ_NVP_E23] = 59,
- [NWZ_NVP_E24] = 60,
- [NWZ_NVP_E25] = 61,
- [NWZ_NVP_E26] = 62,
- [NWZ_NVP_E27] = 63,
- [NWZ_NVP_E28] = 64,
- [NWZ_NVP_E29] = 65,
- [NWZ_NVP_E30] = 66,
- [NWZ_NVP_E31] = 67,
- [NWZ_NVP_EDW] = 71,
- [NWZ_NVP_EP0] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP1] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP2] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP3] = NWZ_NVP_INVALID,
- [NWZ_NVP_ERI] = 76,
- [NWZ_NVP_EXM] = NWZ_NVP_INVALID,
- [NWZ_NVP_FMP] = 15,
- [NWZ_NVP_FNI] = 82,
- [NWZ_NVP_FPI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FUI] = 75,
- [NWZ_NVP_FUP] = 3,
- [NWZ_NVP_FUR] = NWZ_NVP_INVALID,
- [NWZ_NVP_FVI] = NWZ_NVP_INVALID,
- [NWZ_NVP_GTY] = 14,
- [NWZ_NVP_HDI] = 73,
- [NWZ_NVP_HLD] = 5,
- [NWZ_NVP_INS] = NWZ_NVP_INVALID,
- [NWZ_NVP_IPT] = NWZ_NVP_INVALID,
- [NWZ_NVP_KAS] = 11,
- [NWZ_NVP_LBI] = 74,
- [NWZ_NVP_LYR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MAC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MCR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MDK] = 30,
- [NWZ_NVP_MDL] = 70,
- [NWZ_NVP_MID] = 7,
- [NWZ_NVP_MLK] = 84,
- [NWZ_NVP_MSC] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSO] = 86,
- [NWZ_NVP_MTM] = 33,
- [NWZ_NVP_MUK] = NWZ_NVP_INVALID,
- [NWZ_NVP_NCP] = 17,
- [NWZ_NVP_NVR] = NWZ_NVP_INVALID,
- [NWZ_NVP_PCD] = 8,
- [NWZ_NVP_PCI] = 87,
- [NWZ_NVP_PNC] = NWZ_NVP_INVALID,
- [NWZ_NVP_PRK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PSK] = 18,
- [NWZ_NVP_PTS] = 77,
- [NWZ_NVP_RBT] = NWZ_NVP_INVALID,
- [NWZ_NVP_RND] = 27,
- [NWZ_NVP_RTC] = 6,
- [NWZ_NVP_SDC] = 89,
- [NWZ_NVP_SDP] = 16,
- [NWZ_NVP_SER] = 9,
- [NWZ_NVP_SFI] = 29,
- [NWZ_NVP_SHE] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHP] = 12,
- [NWZ_NVP_SID] = 83,
- [NWZ_NVP_SKD] = 28,
- [NWZ_NVP_SKT] = 32,
- [NWZ_NVP_SKU] = NWZ_NVP_INVALID,
- [NWZ_NVP_SLP] = 80,
- [NWZ_NVP_SPS] = 69,
- [NWZ_NVP_SYI] = 1,
- [NWZ_NVP_TR0] = 34,
- [NWZ_NVP_TR1] = 35,
- [NWZ_NVP_TST] = 13,
- [NWZ_NVP_UBP] = 2,
- [NWZ_NVP_UFN] = 10,
- [NWZ_NVP_UMS] = NWZ_NVP_INVALID,
- [NWZ_NVP_UPS] = NWZ_NVP_INVALID,
- [NWZ_NVP_VAR] = NWZ_NVP_INVALID,
- [NWZ_NVP_VRT] = 81,
-};
-
-static int nvp_index_f505c8[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = 78,
- [NWZ_NVP_APP] = 5,
- [NWZ_NVP_BFD] = 88,
- [NWZ_NVP_BFP] = 89,
- [NWZ_NVP_BLF] = 79,
- [NWZ_NVP_BML] = 87,
- [NWZ_NVP_BOK] = 10,
- [NWZ_NVP_BPR] = 35,
- [NWZ_NVP_BTC] = 27,
- [NWZ_NVP_BTI] = 1,
- [NWZ_NVP_CLV] = 68,
- [NWZ_NVP_CNG] = 3,
- [NWZ_NVP_CTR] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBA] = 12,
- [NWZ_NVP_DBG] = 0,
- [NWZ_NVP_DBI] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBS] = NWZ_NVP_INVALID,
- [NWZ_NVP_DBV] = 13,
- [NWZ_NVP_DCC] = 7,
- [NWZ_NVP_DG0] = NWZ_NVP_INVALID,
- [NWZ_NVP_DG1] = NWZ_NVP_INVALID,
- [NWZ_NVP_DOR] = 21,
- [NWZ_NVP_E00] = 36,
- [NWZ_NVP_E01] = 37,
- [NWZ_NVP_E02] = 38,
- [NWZ_NVP_E03] = 39,
- [NWZ_NVP_E04] = 40,
- [NWZ_NVP_E05] = 41,
- [NWZ_NVP_E06] = 42,
- [NWZ_NVP_E07] = 43,
- [NWZ_NVP_E08] = 44,
- [NWZ_NVP_E09] = 45,
- [NWZ_NVP_E10] = 46,
- [NWZ_NVP_E11] = 47,
- [NWZ_NVP_E12] = 48,
- [NWZ_NVP_E13] = 49,
- [NWZ_NVP_E14] = 50,
- [NWZ_NVP_E15] = 51,
- [NWZ_NVP_E16] = 52,
- [NWZ_NVP_E17] = 53,
- [NWZ_NVP_E18] = 54,
- [NWZ_NVP_E19] = 55,
- [NWZ_NVP_E20] = 56,
- [NWZ_NVP_E21] = 57,
- [NWZ_NVP_E22] = 58,
- [NWZ_NVP_E23] = 59,
- [NWZ_NVP_E24] = 60,
- [NWZ_NVP_E25] = 61,
- [NWZ_NVP_E26] = 62,
- [NWZ_NVP_E27] = 63,
- [NWZ_NVP_E28] = 64,
- [NWZ_NVP_E29] = 65,
- [NWZ_NVP_E30] = 66,
- [NWZ_NVP_E31] = 67,
- [NWZ_NVP_EDW] = 22,
- [NWZ_NVP_EP0] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP1] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP2] = NWZ_NVP_INVALID,
- [NWZ_NVP_EP3] = NWZ_NVP_INVALID,
- [NWZ_NVP_ERI] = 6,
- [NWZ_NVP_EXM] = 25,
- [NWZ_NVP_FMP] = 82,
- [NWZ_NVP_FNI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FPI] = NWZ_NVP_INVALID,
- [NWZ_NVP_FUI] = 19,
- [NWZ_NVP_FUP] = 9,
- [NWZ_NVP_FUR] = NWZ_NVP_INVALID,
- [NWZ_NVP_FVI] = NWZ_NVP_INVALID,
- [NWZ_NVP_GTY] = 18,
- [NWZ_NVP_HDI] = 2,
- [NWZ_NVP_HLD] = 80,
- [NWZ_NVP_INS] = NWZ_NVP_INVALID,
- [NWZ_NVP_IPT] = 70,
- [NWZ_NVP_KAS] = 32,
- [NWZ_NVP_LBI] = 20,
- [NWZ_NVP_LYR] = NWZ_NVP_INVALID,
- [NWZ_NVP_MAC] = 77,
- [NWZ_NVP_MCR] = 72,
- [NWZ_NVP_MDK] = 73,
- [NWZ_NVP_MDL] = 8,
- [NWZ_NVP_MID] = 16,
- [NWZ_NVP_MLK] = NWZ_NVP_INVALID,
- [NWZ_NVP_MSC] = 84,
- [NWZ_NVP_MSO] = NWZ_NVP_INVALID,
- [NWZ_NVP_MTM] = 71,
- [NWZ_NVP_MUK] = 74,
- [NWZ_NVP_NCP] = 31,
- [NWZ_NVP_NVR] = NWZ_NVP_INVALID,
- [NWZ_NVP_PCD] = 26,
- [NWZ_NVP_PCI] = NWZ_NVP_INVALID,
- [NWZ_NVP_PNC] = NWZ_NVP_INVALID,
- [NWZ_NVP_PRK] = NWZ_NVP_INVALID,
- [NWZ_NVP_PSK] = 86,
- [NWZ_NVP_PTS] = 75,
- [NWZ_NVP_RBT] = NWZ_NVP_INVALID,
- [NWZ_NVP_RND] = 28,
- [NWZ_NVP_RTC] = 34,
- [NWZ_NVP_SDC] = NWZ_NVP_INVALID,
- [NWZ_NVP_SDP] = 30,
- [NWZ_NVP_SER] = 4,
- [NWZ_NVP_SFI] = 33,
- [NWZ_NVP_SHE] = NWZ_NVP_INVALID,
- [NWZ_NVP_SHP] = 11,
- [NWZ_NVP_SID] = NWZ_NVP_INVALID,
- [NWZ_NVP_SKD] = 81,
- [NWZ_NVP_SKT] = 76,
- [NWZ_NVP_SKU] = NWZ_NVP_INVALID,
- [NWZ_NVP_SLP] = 69,
- [NWZ_NVP_SPS] = 83,
- [NWZ_NVP_SYI] = 24,
- [NWZ_NVP_TR0] = 14,
- [NWZ_NVP_TR1] = 15,
- [NWZ_NVP_TST] = 17,
- [NWZ_NVP_UBP] = 23,
- [NWZ_NVP_UFN] = 29,
- [NWZ_NVP_UMS] = NWZ_NVP_INVALID,
- [NWZ_NVP_UPS] = NWZ_NVP_INVALID,
- [NWZ_NVP_VAR] = NWZ_NVP_INVALID,
- [NWZ_NVP_VRT] = 85,
-};
-
-struct nwz_nvp_info_t nwz_nvp[NWZ_NVP_COUNT] =
-{
- [NWZ_NVP_APD] = { "apd", 4, "application debug mode flag" },
- [NWZ_NVP_APP] = { "app", 4096, "application parameter" },
- [NWZ_NVP_BFD] = { "bfd", 512, "btmw factory scdb" },
- [NWZ_NVP_BFP] = { "bfp", 512, "btmw factory pair info" },
- [NWZ_NVP_BLF] = { "blf", 4, "browser log mode flag" },
- [NWZ_NVP_BML] = { "bml", 4, "btmw log mode flag" },
- [NWZ_NVP_BOK] = { "bok", 4, "beep ok flag" },
- [NWZ_NVP_BPR] = { "bpr", 2048, "bluetooth address | bluetooth parameter" },
- [NWZ_NVP_BTC] = { "btc", 4, "battery calibration" },
- [NWZ_NVP_BTI] = { "bti", 262144, "boot image" },
- [NWZ_NVP_CLV] = { "clv", 4, "color variation" },
- [NWZ_NVP_CNG] = { "cng", 704, "aad key | aad/empr key" },
- [NWZ_NVP_CTR] = { "ctr", 0, "" },
- [NWZ_NVP_DBA] = { "dba", 160, "aad icv" },
- [NWZ_NVP_DBG] = { "dbg", 0, "" },
- [NWZ_NVP_DBI] = { "dbi", 262144, "dead battery image" },
- [NWZ_NVP_DBS] = { "dbs", 0, "" },
- [NWZ_NVP_DBV] = { "dbv", 520, "empr icv | empr key" },
- [NWZ_NVP_DCC] = { "dcc", 20, "secure clock" },
- [NWZ_NVP_DG0] = { "dg0", 0, "" },
- [NWZ_NVP_DG1] = { "dg1", 0, "" },
- [NWZ_NVP_DOR] = { "dor", 4, "key mode (debug/release)" },
- [NWZ_NVP_E00] = { "e00", 1024, "EMPR 0" },
- [NWZ_NVP_E01] = { "e01", 1024, "EMPR 1" },
- [NWZ_NVP_E02] = { "e02", 1024, "EMPR 2" },
- [NWZ_NVP_E03] = { "e03", 1024, "EMPR 3" },
- [NWZ_NVP_E04] = { "e04", 1024, "EMPR 4" },
- [NWZ_NVP_E05] = { "e05", 1024, "EMPR 5" },
- [NWZ_NVP_E06] = { "e06", 1024, "EMPR 6" },
- [NWZ_NVP_E07] = { "e07", 1024, "EMPR 7" },
- [NWZ_NVP_E08] = { "e08", 1024, "EMPR 8" },
- [NWZ_NVP_E09] = { "e09", 1024, "EMPR 9" },
- [NWZ_NVP_E10] = { "e10", 1024, "EMPR 10" },
- [NWZ_NVP_E11] = { "e11", 1024, "EMPR 11" },
- [NWZ_NVP_E12] = { "e12", 1024, "EMPR 12" },
- [NWZ_NVP_E13] = { "e13", 1024, "EMPR 13" },
- [NWZ_NVP_E14] = { "e14", 1024, "EMPR 14" },
- [NWZ_NVP_E15] = { "e15", 1024, "EMPR 15" },
- [NWZ_NVP_E16] = { "e16", 1024, "EMPR 16" },
- [NWZ_NVP_E17] = { "e17", 1024, "EMPR 17" },
- [NWZ_NVP_E18] = { "e18", 1024, "EMPR 18" },
- [NWZ_NVP_E19] = { "e19", 1024, "EMPR 19" },
- [NWZ_NVP_E20] = { "e20", 1024, "EMPR 20" },
- [NWZ_NVP_E21] = { "e21", 1024, "EMPR 21" },
- [NWZ_NVP_E22] = { "e22", 1024, "EMPR 22" },
- [NWZ_NVP_E23] = { "e23", 1024, "EMPR 23" },
- [NWZ_NVP_E24] = { "e24", 1024, "EMPR 24" },
- [NWZ_NVP_E25] = { "e25", 1024, "EMPR 25" },
- [NWZ_NVP_E26] = { "e26", 1024, "EMPR 26" },
- [NWZ_NVP_E27] = { "e27", 1024, "EMPR 27" },
- [NWZ_NVP_E28] = { "e28", 1024, "EMPR 28" },
- [NWZ_NVP_E29] = { "e29", 1024, "EMPR 29" },
- [NWZ_NVP_E30] = { "e30", 1024, "EMPR 30" },
- [NWZ_NVP_E31] = { "e31", 1024, "EMPR 31" },
- [NWZ_NVP_EDW] = { "edw", 4, "quick shutdown flag" },
- [NWZ_NVP_EP0] = { "ep0", 0, "" },
- [NWZ_NVP_EP1] = { "ep1", 0, "" },
- [NWZ_NVP_EP2] = { "ep2", 0, "" },
- [NWZ_NVP_EP3] = { "ep3", 0, "" },
- [NWZ_NVP_ERI] = { "eri", 262144, "update error image" },
- [NWZ_NVP_EXM] = { "exm", 4, "exception monitor mode" },
- [NWZ_NVP_FMP] = { "fmp", 16, "fm parameter" },
- [NWZ_NVP_FNI] = { "fni", 4, "function information" },
- [NWZ_NVP_FPI] = { "fpi", 0, "" },
- [NWZ_NVP_FUI] = { "fui", 262144, "update image" },
- [NWZ_NVP_FUP] = { "fup", 4, "firmware update flag" },
- [NWZ_NVP_FUR] = { "fur", 0, "" },
- [NWZ_NVP_FVI] = { "fvi", 0, "" },
- [NWZ_NVP_GTY] = { "gty", 4, "getty mode flag" },
- [NWZ_NVP_HDI] = { "hdi", 262144, "hold image" },
- [NWZ_NVP_HLD] = { "hld", 4, "hold mode" },
- [NWZ_NVP_INS] = { "ins", 0, "" },
- [NWZ_NVP_IPT] = { "ipt", 4, "disable iptable flag" },
- [NWZ_NVP_KAS] = { "kas", 64, "key and signature" },
- [NWZ_NVP_LBI] = { "lbi", 262144, "low battery image" },
- [NWZ_NVP_LYR] = { "lyr", 0, "" },
- [NWZ_NVP_MAC] = { "mac", 6, "wifi mac address" },
- [NWZ_NVP_MCR] = { "mcr", 16384, "marlin crl" },
- [NWZ_NVP_MDK] = { "mdk", 33024, "marlin device key" },
- [NWZ_NVP_MDL] = { "mdl", 8, "middleware parameter" },
- [NWZ_NVP_MID] = { "mid", 64, "model id" },
- [NWZ_NVP_MLK] = { "mlk", 4, "marlin key" },
- [NWZ_NVP_MSC] = { "msc", 4, "mass storage class mode" },
- [NWZ_NVP_MSO] = { "mso", 4, "MSC only mode flag" },
- [NWZ_NVP_MTM] = { "mtm", 64, "marlin time" },
- [NWZ_NVP_MUK] = { "muk", 24576, "marlin user key" },
- [NWZ_NVP_NCP] = { "ncp", 64, "noise cancel driver parameter" },
- [NWZ_NVP_NVR] = { "nvr", 0, "" },
- [NWZ_NVP_PCD] = { "pcd", 5, "product code" },
- [NWZ_NVP_PCI] = { "pci", 262144, "precharge image" },
- [NWZ_NVP_PNC] = { "pnc", 0, "" },
- [NWZ_NVP_PRK] = { "prk", 0, "" },
- [NWZ_NVP_PSK] = { "psk", 512, "bluetooth pskey" },
- [NWZ_NVP_PTS] = { "pts", 4, "wifi protected setup" },
- [NWZ_NVP_RBT] = { "rbt", 0, "" },
- [NWZ_NVP_RND] = { "rnd", 64, "random data | wmt key" },
- [NWZ_NVP_RTC] = { "rtc", 16, "rtc alarm" },
- [NWZ_NVP_SDC] = { "sdc", 4, "SD Card export flag" },
- [NWZ_NVP_SDP] = { "sdp", 64, "sound driver parameter" },
- [NWZ_NVP_SER] = { "ser", 16, "serial number" },
- [NWZ_NVP_SFI] = { "sfi", 64, "starfish id" },
- [NWZ_NVP_SHE] = { "she", 0, "" },
- [NWZ_NVP_SHP] = { "shp", 32, "ship information" },
- [NWZ_NVP_SID] = { "sid", 4, "service id" },
- [NWZ_NVP_SKD] = { "skd", 8224, "slacker id file" },
- [NWZ_NVP_SKT] = { "skt", 16, "slacker time" },
- [NWZ_NVP_SKU] = { "sku", 0, "" },
- [NWZ_NVP_SLP] = { "slp", 4, "time out to sleep" },
- [NWZ_NVP_SPS] = { "sps", 4, "speaker ship info" },
- [NWZ_NVP_SYI] = { "syi", 4, "system information" },
- [NWZ_NVP_TR0] = { "tr0", 16384, "EKB 0" },
- [NWZ_NVP_TR1] = { "tr1", 16384, "EKB 1" },
- [NWZ_NVP_TST] = { "tst", 4, "test mode flag" },
- [NWZ_NVP_UBP] = { "ubp", 32, "u-boot password" },
- [NWZ_NVP_UFN] = { "ufn", 8, "update file name" },
- [NWZ_NVP_UMS] = { "ums", 0, "" },
- [NWZ_NVP_UPS] = { "ups", 0, "" },
- [NWZ_NVP_VAR] = { "var", 0, "" },
- [NWZ_NVP_VRT] = { "vrt", 4, "europe vol regulation flag" },
-};
-
-static unsigned long models_nwz_a10[] = { 0x1a000001, 0x1a000002, 0x1a000004,
- 0x1a000005, 0x1a000006, 0x1a010001, 0x1a010002, 0x1a010004, 0x1a010005,
- 0x1a010006 };
-
-static unsigned long models_nw_a20[] = { 0x1d000001, 0x1d000002, 0x1d000004,
- 0x1d000005, 0x1d000006, 0x1d000007 };
-
-static unsigned long models_nw_a30[] = { 0x22000004, 0x22000005, 0x22000006 };
-
-static unsigned long models_nwz_a720[] = { 0x3030001, 0x3030002, 0x3030004,
- 0x3020001, 0x3020002, 0x3020004 };
-
-static unsigned long models_nwz_a810[] = { 0x10000, 0x10001, 0x10002 };
-
-static unsigned long models_nwz_a820[] = { 0x3010001, 0x3010002, 0x3010004,
- 0x3000001, 0x3000002, 0x3000004 };
-
-static unsigned long models_nwz_a840[] = { 0x7010004, 0x7010005, 0x7010006,
- 0x7000004, 0x7000005, 0x7000006 };
-
-static unsigned long models_nwz_a850[] = { 0xe000004, 0xe000005, 0xe000006 };
-
-static unsigned long models_nwz_a860[] = { 0x11000001, 0x11000002, 0x11000004,
- 0x11000005, 0x11000006, 0x11010001, 0x11010002, 0x11010004, 0x11010005,
- 0x11010006, 0x11020001, 0x11020002, 0x11020004, 0x11020005, 0x11020006 };
-
-static unsigned long models_nw_a910[] = { 0x2000001, 0x2000002, 0x2000004 };
-
-static unsigned long models_nwz_e050[] = { 0x8000000, 0x8000001, 0x8000002,
- 0x10000000, 0x10000001 };
-
-static unsigned long models_nw_e060[] = { 0x14000000, 0x14000001, 0x14000002,
- 0x14000004, 0x14000005 };
-
-static unsigned long models_nw_e080[] = { 0x19010001, 0x19010002, 0x19010004,
- 0x19010005 };
-
-static unsigned long models_nwz_e350[] = { 0xc000001, 0xc000002, 0xc000004 };
-
-static unsigned long models_nwz_e450[] = { 0xb000001, 0xb000002, 0xb000004 };
-
-static unsigned long models_nwz_e460[] = { 0x13000001, 0x13000002, 0x13000004 };
-
-static unsigned long models_nwz_e470[] = { 0x15000001, 0x15000002, 0x15000004,
- 0x15000005 };
-
-static unsigned long models_nwz_e550[] = { 0xd000001, 0xd000002, 0xd000004,
- 0xd000005 };
-
-static unsigned long models_nwz_e570[] = { 0x15010001, 0x15010002, 0x15010004,
- 0x15010005 };
-
-static unsigned long models_nwz_e580[] = { 0x19020001, 0x19020002, 0x19020004,
- 0x19020005 };
-
-static unsigned long models_nw_s10[] = { 0x1b000001, 0x1b000002, 0x1b000004,
- 0x1b000005, 0x1b000006 };
-
-static unsigned long models_nwz_s510[] = { 0x1030000, 0x1030001 };
-
-static unsigned long models_nwz_s610[] = { 0x1000000, 0x1000001, 0x1020000,
- 0x1020001, 0x1020002 };
-
-static unsigned long models_nwz_s630[] = { 0x4000001, 0x4000002, 0x4000004,
- 0x4020001, 0x4020002, 0x4020004 };
-
-static unsigned long models_nw_s640[] = { 0x6010002, 0x6010004, 0x6010005 };
-
-static unsigned long models_nwz_s710[] = { 0x1010000, 0x1010001, 0x1010002,
- 0x1040000, 0x1040001, 0x1040002 };
-
-static unsigned long models_nwz_s730[] = { 0x4010001, 0x4010002, 0x4010004,
- 0x4030001, 0x4030002, 0x4030004 };
-
-static unsigned long models_nwz_s740[] = { 0x6030002, 0x6030004, 0x6030005,
- 0x6020002, 0x6020004, 0x6020005 };
-
-static unsigned long models_nwz_s750[] = { 0x9000002, 0x9000004, 0x9000005,
- 0xf000002, 0xf000004 };
-
-static unsigned long models_nwz_s760[] = { 0x12000001, 0x12000002, 0x12000004,
- 0x12000005, 0x12000006, 0x12010001, 0x12010002, 0x12010004, 0x12010005,
- 0x12010006 };
-
-static unsigned long models_nwz_s770[] = { 0x16000001, 0x16000002, 0x16000004,
- 0x16000005, 0x16010001, 0x16010002, 0x16010004, 0x16010005 };
-
-static unsigned long models_nw_s780[] = { 0x19000001, 0x19000002, 0x19000004,
- 0x19000005 };
-
-static unsigned long models_nw_wm1[] = { 0x20000007, 0x21000008 };
-
-static unsigned long models_nwz_x1000[] = { 0x5000002, 0x5000004, 0x5000005,
- 0x5020002, 0x5040002, 0x5020004, 0x5040004, 0x5020005, 0x5040005 };
-
-static unsigned long models_nw_zx100[] = { 0x1c000007, 0x1c000001, 0x1c000002,
- 0x1c000004, 0x1c000005, 0x1c000006 };
-
-static unsigned long models_nwz_noname[] = { 0x5010002, 0x5010004, 0x5010005 };
-
-struct nwz_series_info_t nwz_series[NWZ_SERIES_COUNT] =
-{
- { "nwz-a10", "NWZ-A10 Series", 10, models_nwz_a10, &nvp_index_92faee },
- { "nw-a20", "NW-A20 Series", 6, models_nw_a20, &nvp_index_92faee },
- { "nw-a30", "NW-A30 Series", 3, models_nw_a30, &nvp_index_398250 },
- { "nwz-a720", "NWZ-A720 Series", 6, models_nwz_a720, 0 },
- { "nwz-a810", "NWZ-A810 Series", 3, models_nwz_a810, 0 },
- { "nwz-a820", "NWZ-A820 Series", 6, models_nwz_a820, 0 },
- { "nwz-a840", "NWZ-A840 Series", 6, models_nwz_a840, &nvp_index_0ac81d },
- { "nwz-a850", "NWZ-A850 Series", 3, models_nwz_a850, &nvp_index_0ac81d },
- { "nwz-a860", "NWZ-A860 Series", 15, models_nwz_a860, &nvp_index_f505c8 },
- { "nw-a910", "NW-A910 Series", 3, models_nw_a910, 0 },
- { "nwz-e050", "NWZ-E050 Series", 5, models_nwz_e050, &nvp_index_0ac81d },
- { "nw-e060", "NW-E060 Series", 5, models_nw_e060, &nvp_index_f505c8 },
- { "nw-e080", "NW-E080 Series", 4, models_nw_e080, &nvp_index_6485c8 },
- { "nwz-e350", "NWZ-E350 Series", 3, models_nwz_e350, &nvp_index_0ac81d },
- { "nwz-e450", "NWZ-E450 Series", 3, models_nwz_e450, &nvp_index_0ac81d },
- { "nwz-e460", "NWZ-E460 Series", 3, models_nwz_e460, &nvp_index_f505c8 },
- { "nwz-e470", "NWZ-E470 Series", 4, models_nwz_e470, &nvp_index_28dc2c },
- { "nwz-e550", "NWZ-E550 Series", 4, models_nwz_e550, 0 },
- { "nwz-e570", "NWZ-E570 Series", 4, models_nwz_e570, 0 },
- { "nwz-e580", "NWZ-E580 Series", 4, models_nwz_e580, &nvp_index_6485c8 },
- { "nw-s10", "NW-S10 Series", 5, models_nw_s10, &nvp_index_6485c8 },
- { "nwz-s510", "NWZ-S510 Series", 2, models_nwz_s510, 0 },
- { "nwz-s610", "NWZ-S610 Series", 5, models_nwz_s610, 0 },
- { "nwz-s630", "NWZ-S630 Series", 6, models_nwz_s630, 0 },
- { "nw-s640", "NW-S640 Series", 3, models_nw_s640, &nvp_index_0ac81d },
- { "nwz-s710", "NWZ-S710 Series", 6, models_nwz_s710, 0 },
- { "nwz-s730", "NWZ-S730 Series", 6, models_nwz_s730, 0 },
- { "nwz-s740", "NWZ-S740 Series", 6, models_nwz_s740, &nvp_index_0ac81d },
- { "nwz-s750", "NWZ-S750 Series", 5, models_nwz_s750, &nvp_index_0ac81d },
- { "nwz-s760", "NWZ-S760 Series", 10, models_nwz_s760, &nvp_index_f505c8 },
- { "nwz-s770", "NWZ-S770 Series", 8, models_nwz_s770, 0 },
- { "nw-s780", "NW-S780 Series", 4, models_nw_s780, &nvp_index_6485c8 },
- { "nw-wm1", "NW-WM1 Series", 2, models_nw_wm1, &nvp_index_398250 },
- { "nwz-x1000", "NWZ-X1000 Series", 9, models_nwz_x1000, &nvp_index_4edba7 },
- { "nw-zx100", "NW-ZX100 Series", 6, models_nw_zx100, &nvp_index_92faee },
- { "nwz-noname", "NONAME", 3, models_nwz_noname, 0 },
-};
diff --git a/utils/nwztools/database/nwz_db.h b/utils/nwztools/database/nwz_db.h
deleted file mode 100644
index cb130f96a2..0000000000
--- a/utils/nwztools/database/nwz_db.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __NWZ_DB_H__
-#define __NWZ_DB_H__
-
-/** /!\ This file was automatically generated, DO NOT MODIFY IT DIRECTLY /!\ */
-
-/* List of all known NVP nodes */
-enum nwz_nvp_node_t
-{
- NWZ_NVP_APD, /* application debug mode flag */
- NWZ_NVP_APP, /* application parameter */
- NWZ_NVP_BFD, /* btmw factory scdb */
- NWZ_NVP_BFP, /* btmw factory pair info */
- NWZ_NVP_BLF, /* browser log mode flag */
- NWZ_NVP_BML, /* btmw log mode flag */
- NWZ_NVP_BOK, /* beep ok flag */
- NWZ_NVP_BPR, /* bluetooth address | bluetooth parameter */
- NWZ_NVP_BTC, /* battery calibration */
- NWZ_NVP_BTI, /* boot image */
- NWZ_NVP_CLV, /* color variation */
- NWZ_NVP_CNG, /* aad key | aad/empr key */
- NWZ_NVP_CTR, /* */
- NWZ_NVP_DBA, /* aad icv */
- NWZ_NVP_DBG, /* */
- NWZ_NVP_DBI, /* dead battery image */
- NWZ_NVP_DBS, /* */
- NWZ_NVP_DBV, /* empr icv | empr key */
- NWZ_NVP_DCC, /* secure clock */
- NWZ_NVP_DG0, /* */
- NWZ_NVP_DG1, /* */
- NWZ_NVP_DOR, /* key mode (debug/release) */
- NWZ_NVP_E00, /* EMPR 0 */
- NWZ_NVP_E01, /* EMPR 1 */
- NWZ_NVP_E02, /* EMPR 2 */
- NWZ_NVP_E03, /* EMPR 3 */
- NWZ_NVP_E04, /* EMPR 4 */
- NWZ_NVP_E05, /* EMPR 5 */
- NWZ_NVP_E06, /* EMPR 6 */
- NWZ_NVP_E07, /* EMPR 7 */
- NWZ_NVP_E08, /* EMPR 8 */
- NWZ_NVP_E09, /* EMPR 9 */
- NWZ_NVP_E10, /* EMPR 10 */
- NWZ_NVP_E11, /* EMPR 11 */
- NWZ_NVP_E12, /* EMPR 12 */
- NWZ_NVP_E13, /* EMPR 13 */
- NWZ_NVP_E14, /* EMPR 14 */
- NWZ_NVP_E15, /* EMPR 15 */
- NWZ_NVP_E16, /* EMPR 16 */
- NWZ_NVP_E17, /* EMPR 17 */
- NWZ_NVP_E18, /* EMPR 18 */
- NWZ_NVP_E19, /* EMPR 19 */
- NWZ_NVP_E20, /* EMPR 20 */
- NWZ_NVP_E21, /* EMPR 21 */
- NWZ_NVP_E22, /* EMPR 22 */
- NWZ_NVP_E23, /* EMPR 23 */
- NWZ_NVP_E24, /* EMPR 24 */
- NWZ_NVP_E25, /* EMPR 25 */
- NWZ_NVP_E26, /* EMPR 26 */
- NWZ_NVP_E27, /* EMPR 27 */
- NWZ_NVP_E28, /* EMPR 28 */
- NWZ_NVP_E29, /* EMPR 29 */
- NWZ_NVP_E30, /* EMPR 30 */
- NWZ_NVP_E31, /* EMPR 31 */
- NWZ_NVP_EDW, /* quick shutdown flag */
- NWZ_NVP_EP0, /* */
- NWZ_NVP_EP1, /* */
- NWZ_NVP_EP2, /* */
- NWZ_NVP_EP3, /* */
- NWZ_NVP_ERI, /* update error image */
- NWZ_NVP_EXM, /* exception monitor mode */
- NWZ_NVP_FMP, /* fm parameter */
- NWZ_NVP_FNI, /* function information */
- NWZ_NVP_FPI, /* */
- NWZ_NVP_FUI, /* update image */
- NWZ_NVP_FUP, /* firmware update flag */
- NWZ_NVP_FUR, /* */
- NWZ_NVP_FVI, /* */
- NWZ_NVP_GTY, /* getty mode flag */
- NWZ_NVP_HDI, /* hold image */
- NWZ_NVP_HLD, /* hold mode */
- NWZ_NVP_INS, /* */
- NWZ_NVP_IPT, /* disable iptable flag */
- NWZ_NVP_KAS, /* key and signature */
- NWZ_NVP_LBI, /* low battery image */
- NWZ_NVP_LYR, /* */
- NWZ_NVP_MAC, /* wifi mac address */
- NWZ_NVP_MCR, /* marlin crl */
- NWZ_NVP_MDK, /* marlin device key */
- NWZ_NVP_MDL, /* middleware parameter */
- NWZ_NVP_MID, /* model id */
- NWZ_NVP_MLK, /* marlin key */
- NWZ_NVP_MSC, /* mass storage class mode */
- NWZ_NVP_MSO, /* MSC only mode flag */
- NWZ_NVP_MTM, /* marlin time */
- NWZ_NVP_MUK, /* marlin user key */
- NWZ_NVP_NCP, /* noise cancel driver parameter */
- NWZ_NVP_NVR, /* */
- NWZ_NVP_PCD, /* product code */
- NWZ_NVP_PCI, /* precharge image */
- NWZ_NVP_PNC, /* */
- NWZ_NVP_PRK, /* */
- NWZ_NVP_PSK, /* bluetooth pskey */
- NWZ_NVP_PTS, /* wifi protected setup */
- NWZ_NVP_RBT, /* */
- NWZ_NVP_RND, /* random data | wmt key */
- NWZ_NVP_RTC, /* rtc alarm */
- NWZ_NVP_SDC, /* SD Card export flag */
- NWZ_NVP_SDP, /* sound driver parameter */
- NWZ_NVP_SER, /* serial number */
- NWZ_NVP_SFI, /* starfish id */
- NWZ_NVP_SHE, /* */
- NWZ_NVP_SHP, /* ship information */
- NWZ_NVP_SID, /* service id */
- NWZ_NVP_SKD, /* slacker id file */
- NWZ_NVP_SKT, /* slacker time */
- NWZ_NVP_SKU, /* */
- NWZ_NVP_SLP, /* time out to sleep */
- NWZ_NVP_SPS, /* speaker ship info */
- NWZ_NVP_SYI, /* system information */
- NWZ_NVP_TR0, /* EKB 0 */
- NWZ_NVP_TR1, /* EKB 1 */
- NWZ_NVP_TST, /* test mode flag */
- NWZ_NVP_UBP, /* u-boot password */
- NWZ_NVP_UFN, /* update file name */
- NWZ_NVP_UMS, /* */
- NWZ_NVP_UPS, /* */
- NWZ_NVP_VAR, /* */
- NWZ_NVP_VRT, /* europe vol regulation flag */
- NWZ_NVP_COUNT /* Number of nvp nodes */
-};
-
-/* Invalid NVP index */
-#define NWZ_NVP_INVALID -1 /* Non-existent entry */
-/* Number of models */
-#define NWZ_MODEL_COUNT 186
-/* Number of series */
-#define NWZ_SERIES_COUNT 36
-
-/* NVP node info */
-struct nwz_nvp_info_t
-{
- const char *name; /* Sony's name: "bti" */
- unsigned long size; /* Size in bytes */
- const char *desc; /* Description: "bootloader image" */
-};
-
-/* NVP index map (nwz_nvp_node_t -> index) */
-typedef int nwz_nvp_index_t[NWZ_NVP_COUNT];
-
-/* Model info */
-struct nwz_model_info_t
-{
- unsigned long mid; /* Model ID: first 4 bytes of the NVP mid entry */
- const char *name; /* Human name: "NWZ-E463" */
-};
-
-/* Series info */
-struct nwz_series_info_t
-{
- const char *codename; /* Rockbox codename: nwz-e460 */
- const char *name; /* Human name: "NWZ-E460 Series" */
- int mid_count; /* number of entries in mid_list */
- unsigned long *mid; /* List of model IDs */
- /* Pointer to a name -> index map, nonexistent entries map to NWZ_NVP_INVALID */
- nwz_nvp_index_t *nvp_index;
-};
-
-/* List of all NVP entries, indexed by nwz_nvp_node_t */
-extern struct nwz_nvp_info_t nwz_nvp[NWZ_NVP_COUNT];
-/* List of all models, sorted by increasing values of model ID */
-extern struct nwz_model_info_t nwz_model[NWZ_MODEL_COUNT];
-/* List of all series */
-extern struct nwz_series_info_t nwz_series[NWZ_SERIES_COUNT];
-
-#endif /* __NWZ_DB_H__ */
diff --git a/utils/nwztools/plattools/Makefile b/utils/nwztools/plattools/Makefile
deleted file mode 100644
index 71188ba11a..0000000000
--- a/utils/nwztools/plattools/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-PREFIX?=arm-sony-linux-gnueabi-
-CC=$(PREFIX)gcc
-LD=$(PREFIX)gcc
-CFLAGS=-std=gnu99 -Wall -O2
-NWZ_DB_DIR=../database
-INCLUDES=-I. -I$(NWZ_DB_DIR)
-
-LIB_FILES=nwz_lib.c $(NWZ_DB_DIR)/nwz_db.c
-TOOL_FILES=dest_tool.c test_adc.c test_adc.c test_bl.c test_display.c \
- test_keys.c test_power.c test_ts.c test_fb.c
-ALL_ELF=$(patsubst %.c,%.elf,$(TOOL_FILES)) all_tools.elf dualboot.elf
-
-all: $(ALL_ELF)
-
-# image dependency
-data/rockbox_icon.h data/tools_icon.h:
- make -C data
-
-dualboot.elf: data/rockbox_icon.h data/tools_icon.h
-
-%.elf: %.c $(LIB_FILES)
- $(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
-
-all_tools.elf: all_tools.c $(TOOL_FILES) $(LIB_FILES)
- $(CC) $(CFLAGS) -DNWZ_EMBED_TOOLS $(INCLUDES) -o $@ $^
-
-dualboot.elf: dualboot.c all_tools.c $(TOOL_FILES) $(LIB_FILES)
- $(CC) $(CFLAGS) -DNWZ_DUALBOOT -DNWZ_EMBED_TOOLS $(INCLUDES) -o $@ $^
-
-clean:
- rm -rf $(ALL_ELF)
diff --git a/utils/nwztools/plattools/README b/utils/nwztools/plattools/README
deleted file mode 100644
index e33dfeb354..0000000000
--- a/utils/nwztools/plattools/README
+++ /dev/null
@@ -1,27 +0,0 @@
-Platform tools
---------------
-
-Those tools are designed to run on the devices. They are mostly tests that can
-be run in firmware upgrade mode (using exec_file in utils/nwztools/scripts/). To
-compile those, you will need the sony nwz cross compiler. The canonical way to
-run them is as follows:
-
-1) Build the tools:
- cd /path/to/utils/nwztools/plattools
- make
-Note that the default cross compiler prefix is arm-sony-linux-gnueabi- but it
-can be changed using PREFIX:
-PREFIX="sony-nwz-linux-gnueabi-" make
-
-2) Embed the wanted excutable in a firmware upgrade for your device. The README
-in utils/nwztools/scripts contains more documentation on how to select the right
-target. For example if you want to embed test_display for the NWZ-E460 series,
-you should run:
- cd /path/to/utils/nwztools/scripts
- make exec_file UPG=test_display_nwze46x.upg NWZ_TARGET=nwz-e46x EXEC=../plattools/test_display.elf
-
-3) Put the upgrade file on the device and trigger a firmware upgrade. Assuming
-your NWZ device is /dev/sdb1 and is mounted at /media/pamaury/WALKMAN, run:
- cd /path/to/utils/nwztools/scripts
- make copy_fw_upgrade UPG=test_display_nwze46x.upg NWZ_MOUNT=/media/pamaury/WALKMAN/
- sudo make do_fw_upgrade NWZ_DEV=/dev/sdb1
diff --git a/utils/nwztools/plattools/all_tools.c b/utils/nwztools/plattools/all_tools.c
deleted file mode 100644
index c93e26b36e..0000000000
--- a/utils/nwztools/plattools/all_tools.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2011 by Amaury Pouly
- *
- * Based on Rockbox iriver bootloader by Linus Nielsen Feltzing
- * and the ipodlinux bootloader by Daniel Palffy and Bernard Leach
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-
-#define TOOL_LIST \
- TOOL(dest_tool) \
- TOOL(test_adc) \
- TOOL(test_bl) \
- TOOL(test_display) \
- TOOL(test_keys) \
- TOOL(test_power) \
- TOOL(test_ts) \
- TOOL(test_fb) \
-
-typedef int (*nwz_tool_main_t)(int argc, char **argv);
-
-struct nwz_tool_t
-{
- const char *name;
- nwz_tool_main_t main;
-};
-
-/* create list of extern definition */
-#define TOOL(name) extern int NWZ_TOOL_MAIN(name)(int argc, char **argv);
-TOOL_LIST
-#undef TOOL
-
-/* create actual list */
-#define TOOL(name) { #name, NWZ_TOOL_MAIN(name) },
-static struct nwz_tool_t g_tools[] =
-{
- TOOL_LIST
-};
-#undef TOOL
-
-#define NR_TOOLS (sizeof(g_tools) / sizeof(g_tools[0]))
-
-static void hello(void)
-{
- /* clear screen and display welcome message */
- nwz_lcdmsg(true, 0, 0, "all_tools");
- nwz_lcdmsg(false, 0, 1, "BACK: quit");
- nwz_lcdmsg(false, 0, 2, "LEFT/RIGHT: change tool");
- nwz_lcdmsg(false, 0, 3, "PLAY: run tool");
-}
-
-/* this tool itself can be embedded in the dualboot */
-#ifdef NWZ_DUALBOOT
-int NWZ_TOOL_MAIN(all_tools)(int argc, char **argv)
-#else
-int main(int argc, char **argv)
-#endif
-{
- hello();
- /* open input device */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- nwz_lcdmsg(false, 3, 5, "Cannot open input device");
- sleep(2);
- return 1;
- }
- /* main loop */
- int cur_tool = 0;
- while(true)
- {
- /* print tools */
- int line = 5;
- for(size_t i = 0; i < NR_TOOLS; i++)
- {
- nwz_lcdmsgf(false, 0, line++, "%c %s", (i == cur_tool) ? '>' : ' ',
- g_tools[i].name);
- }
- /* wait for event (1000ms) */
- int ret = nwz_key_wait_event(input_fd, 1000000);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- /* only act on key release */
- if(nwz_key_event_is_press(&evt))
- continue;
- int keycode = nwz_key_event_get_keycode(&evt);
- if(keycode == NWZ_KEY_LEFT)
- {
- cur_tool--;
- if(cur_tool == -1)
- cur_tool += NR_TOOLS;
- }
- else if(keycode == NWZ_KEY_RIGHT)
- {
- cur_tool++;
- if(cur_tool == NR_TOOLS)
- cur_tool = 0;
- }
- else if(keycode == NWZ_KEY_PLAY)
- {
- /* close input */
- nwz_key_close(input_fd);
- g_tools[cur_tool].main(argc, argv);
- /* reopen input and clear the screen */
- input_fd = nwz_key_open();
- hello();
- }
- else if(keycode == NWZ_KEY_BACK)
- break;
- }
- nwz_key_close(input_fd);
- return 0;
-}
diff --git a/utils/nwztools/plattools/data/Makefile b/utils/nwztools/plattools/data/Makefile
deleted file mode 100644
index 86f3bb339c..0000000000
--- a/utils/nwztools/plattools/data/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-TOOLS_DIR=../../../../tools/
-all: rockbox_icon.h tools_icon.h
-
-%.h: %.bmp
- $(TOOLS_DIR)/bmp2rb -f 4 $^ > $@
-
-clean:
- rm -rf *.h
diff --git a/utils/nwztools/plattools/data/Oxygen480-categories-preferences-system.svg b/utils/nwztools/plattools/data/Oxygen480-categories-preferences-system.svg
deleted file mode 100644
index 0835251992..0000000000
--- a/utils/nwztools/plattools/data/Oxygen480-categories-preferences-system.svg
+++ /dev/null
@@ -1,334 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="128" height="128" id="svg5676" sodipodi:version="0.32" inkscape:version="0.45+devel" sodipodi:docname="settings-wip.svgz" inkscape:output_extension="org.inkscape.output.svgz.inkscape" version="1.0">
- <defs id="defs5678">
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4322" id="linearGradient4338" gradientUnits="userSpaceOnUse" gradientTransform="translate(-2.6296821,21.172877)" x1="5.1934605" y1="88.98745" x2="5.1934605" y2="145.64882"/>
- <linearGradient y2="0" x2="28" y1="57.5" x1="28" gradientUnits="userSpaceOnUse" id="linearGradient8081">
- <stop id="stop8083" style="stop-color:#ffd700;stop-opacity:1;" offset="0"/>
- <stop offset="0.25242719" style="stop-color:#ffea00;stop-opacity:1;" id="stop8087"/>
- <stop id="stop8085" style="stop-color:#b06d00;stop-opacity:1;" offset="1"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient8081" id="linearGradient7698" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0872079,0,0,1.0872079,-59.143229,30.210796)" x1="58.557281" y1="107.76735" x2="63.943447" y2="107.76735"/>
- <linearGradient id="linearGradient6924">
- <stop style="stop-color:#ffffff;stop-opacity:0.73885351;" offset="0" id="stop6926"/>
- <stop id="stop10395" offset="0.24999999" style="stop-color:#ffffff;stop-opacity:0;"/>
- <stop id="stop10393" offset="0.5" style="stop-color:#cccccc;stop-opacity:0;"/>
- <stop style="stop-color:#9a9a9a;stop-opacity:1;" offset="1" id="stop6928"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient6924" id="linearGradient6930" x1="8.3827581" y1="8.3199806" x2="15.021504" y2="14.958727" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.2050468,0,0,1.2050468,-2.1016162,-2.0259658)"/>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4529" id="linearGradient4640" gradientUnits="userSpaceOnUse" x1="9.3031492" y1="133.25163" x2="-5.8540711" y2="130.59308"/>
- <filter inkscape:collect="always" x="-0.10337079" width="1.2067416" y="-0.10337079" height="1.2067416" id="filter4626">
- <feGaussianBlur inkscape:collect="always" stdDeviation="0.42488862" id="feGaussianBlur4628"/>
- </filter>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4632">
- <rect style="opacity:0.83895126;fill:url(#linearGradient4636);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter4626)" id="rect4634" width="13.334369" height="3.7415669" x="-2.9263651" y="130.97287" rx="0" ry="0" inkscape:transform-center-x="-16.434708" inkscape:transform-center-y="-5.5242717"/>
- </clipPath>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4529" id="linearGradient4604" gradientUnits="userSpaceOnUse" x1="9.3031492" y1="133.25163" x2="-5.8540711" y2="130.59308"/>
- <radialGradient inkscape:collect="always" xlink:href="#linearGradient4434" id="radialGradient4602" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,0.3939752,0.4817163,48.449986)" cx="4.7494926" cy="132.25244" fx="4.7494926" fy="132.25244" r="5.3222656"/>
- <filter inkscape:collect="always" id="filter4584">
- <feGaussianBlur inkscape:collect="always" stdDeviation="1.0829419" id="feGaussianBlur4586"/>
- </filter>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4588">
- <path sodipodi:nodetypes="ccsccccsccc" id="path4590" d="M 13.037731,82.09273 L 18.342123,87.397123 C 21.331352,87.817882 24.407038,89.18508 26.895219,91.673261 C 29.411177,94.189215 30.893289,97.328601 31.294715,100.34972 L 56.289372,125.34436 C 62.090282,131.14528 77.301422,116.01036 71.462392,110.17133 L 46.467742,85.176682 C 43.446635,84.775254 40.307258,83.29314 37.791293,80.777186 C 35.303111,78.289007 33.935917,75.213314 33.515156,72.22409 L 28.210762,66.919697 L 13.037731,82.09273 z" style="opacity:1;fill:url(#linearGradient4592);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- </clipPath>
- <filter inkscape:collect="always" id="filter4551">
- <feGaussianBlur inkscape:collect="always" stdDeviation="0.15501048" id="feGaussianBlur4553"/>
- </filter>
- <linearGradient inkscape:collect="always" id="linearGradient4529">
- <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" id="stop4531"/>
- <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" id="stop4533"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4529" id="linearGradient4537" x1="9.3031492" y1="133.25163" x2="-5.8540711" y2="130.59308" gradientUnits="userSpaceOnUse"/>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient2575" id="linearGradient4525" x1="58.557281" y1="107.76735" x2="63.943447" y2="107.76735" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0872079,0,0,1.0872079,-71.164046,29.503688)"/>
- <linearGradient inkscape:collect="always" id="linearGradient4509">
- <stop style="stop-color:#ffe900;stop-opacity:1;" offset="0" id="stop4511"/>
- <stop style="stop-color:#ffe900;stop-opacity:0;" offset="1" id="stop4513"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4509" id="linearGradient4515" x1="75.585938" y1="85.083641" x2="89.453125" y2="79.224266" gradientUnits="userSpaceOnUse"/>
- <filter inkscape:collect="always" id="filter4501">
- <feGaussianBlur inkscape:collect="always" stdDeviation="0.48665741" id="feGaussianBlur4503"/>
- </filter>
- <linearGradient inkscape:collect="always" id="linearGradient4465">
- <stop style="stop-color:#ffa300;stop-opacity:1;" offset="0" id="stop4467"/>
- <stop style="stop-color:#ffa300;stop-opacity:0;" offset="1" id="stop4469"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4465" id="linearGradient4471" x1="83.886719" y1="77.661766" x2="86.300743" y2="86.671021" gradientUnits="userSpaceOnUse" gradientTransform="translate(-4,-4)"/>
- <linearGradient inkscape:collect="always" id="linearGradient4434">
- <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" id="stop4436"/>
- <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" id="stop4438"/>
- </linearGradient>
- <radialGradient inkscape:collect="always" xlink:href="#linearGradient4434" id="radialGradient4440" cx="4.7494926" cy="132.25244" fx="4.7494926" fy="132.25244" r="5.3222656" gradientTransform="matrix(1,0,0,0.3939752,-7.0710881e-2,74.137847)" gradientUnits="userSpaceOnUse"/>
- <filter inkscape:collect="always" id="filter4404">
- <feGaussianBlur inkscape:collect="always" stdDeviation="0.15249406" id="feGaussianBlur4406"/>
- </filter>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4322" id="linearGradient4342" gradientUnits="userSpaceOnUse" gradientTransform="translate(1.6836694,24.213436)" x1="3.5450988" y1="107.64014" x2="3.190912" y2="104.64899"/>
- <linearGradient inkscape:collect="always" id="linearGradient4322">
- <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" id="stop4324"/>
- <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" id="stop4326"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4322" id="linearGradient4346" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,-2.6879854,-4.0690534)" x1="5.1934605" y1="103.9544" x2="5.1348171" y2="115.65614"/>
- <filter inkscape:collect="always" x="-0.074906364" width="1.1498127" y="-0.11235955" height="1.224719" id="filter4238">
- <feGaussianBlur inkscape:collect="always" stdDeviation="1.1235955" id="feGaussianBlur4240"/>
- </filter>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4242">
- <path sodipodi:nodetypes="ccsccccsccc" id="path4244" d="M -4,77.788157 L -4,83.381653 C -2.645772,85.179573 -1.744968,87.522089 -1.744968,90.145881 C -1.744968,92.798965 -2.618764,95.23565 -4,97.040192 L -4,123.39712 C -4,129.51419 12,129.55437 12,123.39712 L 12,97.040192 C 10.618764,95.23565 9.744972,92.798965 9.744968,90.145881 C 9.744968,87.522089 10.645776,85.179573 12,83.381653 L 12,77.788157 L -4,77.788157 z" style="opacity:1;fill:url(#linearGradient4247);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- </clipPath>
- <linearGradient id="linearGradient2575" gradientUnits="userSpaceOnUse" x1="28" y1="57.5" x2="28" y2="0">
- <stop offset="0" style="stop-color:#FFEA00" id="stop2577"/>
- <stop offset="1" style="stop-color:#cd8000;stop-opacity:1;" id="stop2579"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient2575" id="linearGradient4190" x1="36" y1="100" x2="28" y2="100" gradientUnits="userSpaceOnUse" spreadMethod="reflect" gradientTransform="matrix(0.9483145,-0.9483145,0.9483145,0.9483145,-36.790528,30.877897)"/>
- <linearGradient id="linearGradient6511">
- <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" id="stop6513"/>
- <stop style="stop-color:#393939;stop-opacity:1;" offset="1" id="stop6515"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient6511" id="linearGradient6517" x1="38.074299" y1="4.2695875" x2="38.074299" y2="-10.42289" gradientUnits="userSpaceOnUse"/>
- <linearGradient id="linearGradient3916">
- <stop style="stop-color:#d3d6d6;stop-opacity:1;" offset="0" id="stop3918"/>
- <stop style="stop-color:#f7f7f7;stop-opacity:1;" offset="1" id="stop3921"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient3916" id="linearGradient3943" gradientUnits="userSpaceOnUse" x1="34.165016" y1="4.863008" x2="34.165016" y2="-14.006344"/>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient3904" id="linearGradient6112" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.1550511,0,0,1.1550511,-41.26484,21.101778)" x1="38.827515" y1="104.49192" x2="36.460194" y2="17.509802"/>
- <filter inkscape:collect="always" x="-0.26177245" width="1.5235449" y="-0.075698018" height="1.151396" id="filter3838">
- <feGaussianBlur inkscape:collect="always" stdDeviation="0.41890191" id="feGaussianBlur3840"/>
- </filter>
- <filter inkscape:collect="always" x="-0.26177242" width="1.5235448" y="-0.075698018" height="1.151396" id="filter3834">
- <feGaussianBlur inkscape:collect="always" stdDeviation="0.41890191" id="feGaussianBlur3836"/>
- </filter>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3850">
- <path id="path3852" d="M 5.6835937,-4 C 6.7672977,-0.13901249 7.6835937,4 7.6835937,8 C 7.6835937,25.92781 15.683594,26.507796 15.683594,8 C 15.683594,4 16.274299,-0.44557713 17.683594,-4 C 16.034701,-11.286281 10.22872,-24.562662 5.6835937,-4 z" style="opacity:1;fill:#b4b4b4;fill-opacity:1;stroke:none;stroke-width:0.47008219;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" sodipodi:nodetypes="ccccc"/>
- </clipPath>
- <linearGradient id="linearGradient3904">
- <stop style="stop-color:#141515;stop-opacity:1;" offset="0" id="stop3906"/>
- <stop style="stop-color:#535557;stop-opacity:0;" offset="1" id="stop3908"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient3904" id="linearGradient6119" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.1550511,0,0,1.1550511,-40.633471,-152.2263)" x1="36.460194" y1="108.28275" x2="39.503891" y2="69.41713"/>
- <linearGradient inkscape:collect="always" id="linearGradient3220">
- <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" id="stop3222"/>
- <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" id="stop3224"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient3220" id="linearGradient6122" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.6737798,0,0,1.4175761,-25.92314,-147.94457)" x1="36.460194" y1="89.611626" x2="36.460194" y2="17.509802"/>
- <radialGradient gradientUnits="userSpaceOnUse" r="139.55859" cy="112.3047" cx="102" id="radialGradient9613">
- <stop id="stop9615" style="stop-color:#535557" offset="0"/>
- <stop id="stop9617" style="stop-color:#898A8C" offset="0.13804179"/>
- <stop id="stop9619" style="stop-color:#ECECEC" offset="0.20296688"/>
- <stop id="stop9621" style="stop-color:#FAFAFA" offset="0.33539036"/>
- <stop id="stop9623" style="stop-color:#FFFFFF" offset="0.39464113"/>
- <stop id="stop9625" style="stop-color:#FAFAFA" offset="0.5313"/>
- <stop id="stop9627" style="stop-color:#EBECEC" offset="0.8449"/>
- <stop id="stop9629" style="stop-color:#E1E2E3" offset="1"/>
- </radialGradient>
- <linearGradient inkscape:collect="always" xlink:href="#radialGradient9613" id="linearGradient6125" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8398488,-0.8398488,0.8167445,0.8167445,-15.712841,44.354581)" spreadMethod="reflect" x1="32.228344" y1="47.999996" x2="35.935673" y2="47.999996"/>
- <filter inkscape:collect="always" id="filter4503">
- <feGaussianBlur inkscape:collect="always" stdDeviation="0.43775175" id="feGaussianBlur4505"/>
- </filter>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4092">
- <path style="fill:#9c0f56" d="M 59.849,42.398 C 57.593,46.987 10.717,106.259 8.774,111.066 C 4.67,121.218 16.431,133.433 25.989,124.269 C 32.291,118.227 66.959,56.111 72.129,51.415 C 75.623,48.241 95.004,41.083 95.004,41.083 L 80.924,18.23 C 80.924,18.23 62.724,36.552 59.849,42.398 z" inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="csssscc" id="path4094"/>
- </clipPath>
- <linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="11.9185" y1="119.0576" x2="98.418404" y2="44.057598">
- <stop offset="0" style="stop-color:#C9C9C9" id="stop49"/>
- <stop offset="0.0229" style="stop-color:#B2B2B2" id="stop51"/>
- <stop offset="0.05" style="stop-color:#9F9F9F" id="stop53"/>
- <stop offset="0.0819" style="stop-color:#929292" id="stop55"/>
- <stop offset="0.1225" style="stop-color:#8A8A8A" id="stop57"/>
- <stop offset="0.2012" style="stop-color:#888888" id="stop59"/>
- <stop offset="1" style="stop-color:#686868;stop-opacity:1;" id="stop63"/>
- </linearGradient>
- <linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="31.4995" y1="80.0439" x2="32.347698" y2="80.671898" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#000000" id="stop183"/>
- <stop offset="1" style="stop-color:#000000;stop-opacity:0;" id="stop185"/>
- </linearGradient>
- <linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="23.9844" y1="120.7646" x2="12.7283" y2="109.8655" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#EEEEEE" id="stop176"/>
- <stop offset="1" style="stop-color:#535353;stop-opacity:1;" id="stop178"/>
- </linearGradient>
- <linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="18.776899" y1="129.5986" x2="18.776899" y2="114.6055" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#000000" id="stop169"/>
- <stop offset="1" style="stop-color:#000000;stop-opacity:0;" id="stop171"/>
- </linearGradient>
- <radialGradient id="XMLID_8_" cx="64.988297" cy="15.9429" r="19.6182" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#FFFFFF" id="stop162"/>
- <stop offset="1" style="stop-color:#888A85" id="stop164"/>
- </radialGradient>
- <linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="40.711899" y1="75.171898" x2="48.5495" y2="80.899803" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0.213" style="stop-color:#555753" id="stop155"/>
- <stop offset="1" style="stop-color:#000000" id="stop157"/>
- </linearGradient>
- <linearGradient id="path30758_1_" gradientUnits="userSpaceOnUse" x1="16.7803" y1="80.697304" x2="67.723602" y2="80.697304" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#888888" id="stop149"/>
- <stop offset="0.8935" style="stop-color:#DDDDDD" id="stop151"/>
- </linearGradient>
- <linearGradient id="path34280_1_" gradientUnits="userSpaceOnUse" x1="93.023399" y1="39.3867" x2="93.023399" y2="25.928699" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#555555" id="stop141"/>
- <stop offset="0.3965" style="stop-color:#888888" id="stop143"/>
- <stop offset="1" style="stop-color:#555555" id="stop145"/>
- </linearGradient>
- <linearGradient id="rect22846_1_" gradientUnits="userSpaceOnUse" x1="247.60249" y1="-288.60791" x2="261.97269" y2="-288.60791" gradientTransform="matrix(0.9428,-0.2511,-0.2421,-0.9089,6.0921912,215.38258)">
- <stop offset="0" style="stop-color:#888888" id="stop135"/>
- <stop offset="1" style="stop-color:#555555" id="stop137"/>
- </linearGradient>
- <radialGradient id="rect14944_1_" cx="274.56641" cy="36.065399" r="6.8733001" gradientTransform="matrix(0.523,-0.2146,-2.627,-7.0521,27.4228,356.0237)" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:#888A85" id="stop127"/>
- <stop offset="0.6213" style="stop-color:#FFFFFF" id="stop129"/>
- <stop offset="1" style="stop-color:#555753" id="stop131"/>
- </radialGradient>
- <radialGradient id="rect14938_1_" cx="290.8428" cy="36.069801" r="6.8736" gradientTransform="matrix(0.4892,-0.2059,-2.5913,-7.0931,29.692,361.6149)" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:#888A85" id="stop119"/>
- <stop offset="0.6213" style="stop-color:#FFFFFF" id="stop121"/>
- <stop offset="1" style="stop-color:#555753" id="stop123"/>
- </radialGradient>
- <radialGradient id="rect10553_1_" cx="292.49219" cy="43.388699" r="6.8727999" gradientTransform="matrix(0.498,-0.2212,-2.9368,-8.3284,56.2613,466.2682)" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:#888A85" id="stop111"/>
- <stop offset="0.6213" style="stop-color:#FFFFFF" id="stop113"/>
- <stop offset="1" style="stop-color:#555753" id="stop115"/>
- </radialGradient>
- <radialGradient id="rect14950_1_" cx="92.734398" cy="20.4307" r="4.1451998" gradientTransform="matrix(0.6131,-0.2916,-5.2659,-7.9645,125.0096,227.992)" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:#FFFFFF" id="stop103"/>
- <stop offset="0.5266" style="stop-color:#BABDB6" id="stop105"/>
- <stop offset="1" style="stop-color:#888A85" id="stop107"/>
- </radialGradient>
- <radialGradient id="rect10551_3_" cx="78.776398" cy="44.608398" r="14.3205" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:#2E3436" id="stop95"/>
- <stop offset="0.72189999" style="stop-color:#000000;stop-opacity:1;" id="stop97"/>
- <stop offset="1" style="stop-color:#2E3436" id="stop99"/>
- </radialGradient>
- <linearGradient id="rect10551_1_" gradientUnits="userSpaceOnUse" x1="77.216797" y1="44.765598" x2="73.449203" y2="30.555201">
- <stop offset="0.7219" style="stop-color:#DDDDDD" id="stop89"/>
- <stop offset="1" style="stop-color:#EEEEEC" id="stop91"/>
- </linearGradient>
- <radialGradient id="XMLID_6_" cx="77.004028" cy="13.140214" r="64.405701" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" fx="77.004028" fy="13.140214">
- <stop offset="0" style="stop-color:#FFFFFF" id="stop82"/>
- <stop id="stop13256" style="stop-color:#c3c4c2;stop-opacity:1;" offset="0.5"/>
- <stop offset="1" style="stop-color:#000000;stop-opacity:1;" id="stop84"/>
- </radialGradient>
- <linearGradient id="XMLID_5_" gradientUnits="userSpaceOnUse" x1="15.7207" y1="125.7861" x2="24.9356" y2="108.3428" gradientTransform="translate(-80,0)">
- <stop offset="0" style="stop-color:#000000" id="stop75"/>
- <stop offset="0.8935" style="stop-color:#FFFFFF" id="stop77"/>
- </linearGradient>
- <linearGradient id="XMLID_4_" gradientUnits="userSpaceOnUse" x1="40.527802" y1="55.75" x2="52.981899" y2="64.646004" gradientTransform="translate(-80,0)">
- <stop offset="0" style="stop-color:#ffffff;stop-opacity:0;" id="stop68"/>
- <stop offset="0.8935" style="stop-color:#FFFFFF" id="stop70"/>
- </linearGradient>
- <linearGradient id="path2388_1_" gradientUnits="userSpaceOnUse" x1="14.9214" y1="124.6768" x2="107.7549" y2="-17.989599" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#DDDDDD" id="stop32"/>
- <stop offset="0.6864" style="stop-color:#888888" id="stop34"/>
- <stop offset="0.8935" style="stop-color:#DDDDDD" id="stop36"/>
- </linearGradient>
- <radialGradient id="path5936_1_" cx="172.123" cy="4.7476001" r="4.6967001" gradientTransform="matrix(6.7917,-1.4855,-1.2014,-5.506,-845.12621,725.19548)" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:#FFFFFF" id="stop26"/>
- <stop offset="1" style="stop-color:#3E3E3E" id="stop28"/>
- </radialGradient>
- <linearGradient id="XMLID_1_" gradientUnits="userSpaceOnUse" x1="92.627899" y1="26.589399" x2="104.5325" y2="31.2349" gradientTransform="translate(229.83849,405.96228)">
- <stop offset="0" style="stop-color:#FFFFFF" id="stop19"/>
- <stop offset="0.6391" style="stop-color:#888888" id="stop21"/>
- </linearGradient>
- <linearGradient id="rect25493_1_" gradientUnits="userSpaceOnUse" x1="258.88379" y1="-326.0903" x2="286.16019" y2="-287.6532" gradientTransform="matrix(0.9065,-0.2414,-0.2421,-0.9089,10.723991,214.40698)">
- <stop offset="0" style="stop-color:#555555" id="stop5"/>
- <stop offset="0.6864" style="stop-color:#888888" id="stop7"/>
- </linearGradient>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_5_" id="linearGradient10549" gradientUnits="userSpaceOnUse" gradientTransform="translate(-80,0)" x1="15.7207" y1="125.7861" x2="24.9356" y2="108.3428"/>
- <mask maskUnits="userSpaceOnUse" id="mask10545">
- <path style="fill:url(#linearGradient10549)" id="path10547" d="M -0.051,18.554 L -0.847,9.66 C -0.847,9.66 8.141,4.482 10.38,3.193 C 3.985,-0.79 -3.654,1.07 -3.741,1.093 C -10.903,2.996 -15.908,8.865 -15.908,15.222 C -15.908,15.461 -15.901,15.701 -15.887,15.94 C -15.887,15.941 -15.887,15.941 -15.887,15.942 C -15.887,16.299 -16.25,36.73 -19.253,42.838 C -20.334,45.036 -30.401,58.18 -42.058,73.4 C -54.195,89.247 -69.3,108.968 -70.298,111.44 C -70.839,112.778 -71.079,114.126 -71.079,115.435 C -71.079,119.221 -69.06,122.663 -66.483,124.621 C -66.083,123.92 -65.655,123.178 -65.197,122.392 C -67.02,121.101 -68.463,119.074 -68.895,116.783 C -69.291,114.687 -68.831,112.48 -67.631,110.726 C -66.46,109.013 -64.659,107.855 -62.561,107.463 C -60.935,107.16 -59.182,107.593 -57.621,108.682 C -57.428,108.817 -57.245,108.966 -57.063,109.118 C -46.315,92.233 -27.938,65.35 3.195,23.824 C 1.323,20.784 -0.051,18.554 -0.051,18.554 z"/>
- </mask>
- <linearGradient inkscape:collect="always" xlink:href="#rect25493_1_" id="linearGradient11382" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9065,-0.2414,-0.2421,-0.9089,10.723991,214.40698)" x1="258.88379" y1="-326.0903" x2="286.16019" y2="-287.6532"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_1_" id="linearGradient11384" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="92.627899" y1="26.589399" x2="104.5325" y2="31.2349"/>
- <radialGradient inkscape:collect="always" xlink:href="#path5936_1_" id="radialGradient11386" gradientUnits="userSpaceOnUse" gradientTransform="matrix(6.7917,-1.4855,-1.2014,-5.506,-845.12621,725.19548)" cx="172.123" cy="4.7476001" r="4.6967001"/>
- <linearGradient inkscape:collect="always" xlink:href="#path2388_1_" id="linearGradient11388" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="14.9214" y1="124.6768" x2="107.7549" y2="-17.989599"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_4_" id="linearGradient11390" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="77.040016" y1="14.124305" x2="92.612343" y2="4.8821697"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_4_" id="linearGradient11392" gradientUnits="userSpaceOnUse" gradientTransform="translate(-80,0)" x1="40.527802" y1="55.75" x2="52.981899" y2="64.646004"/>
- <radialGradient inkscape:collect="always" xlink:href="#XMLID_6_" id="radialGradient11394" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.4337031,0.4442839,-0.7150071,0.6987259,282.84098,375.70944)" cx="77.004028" cy="13.140214" fx="77.004028" fy="13.140214" r="64.405701"/>
- <linearGradient inkscape:collect="always" xlink:href="#rect10551_1_" id="linearGradient11396" gradientUnits="userSpaceOnUse" x1="77.216797" y1="44.765598" x2="73.449203" y2="30.555201"/>
- <radialGradient inkscape:collect="always" xlink:href="#rect10551_3_" id="radialGradient11398" gradientUnits="userSpaceOnUse" cx="78.776398" cy="44.608398" r="14.3205"/>
- <radialGradient inkscape:collect="always" xlink:href="#rect14950_1_" id="radialGradient11400" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.6131,-0.2916,-5.2659,-7.9645,125.0096,227.992)" cx="92.734398" cy="20.4307" r="4.1451998"/>
- <radialGradient inkscape:collect="always" xlink:href="#rect10553_1_" id="radialGradient11402" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.498,-0.2212,-2.9368,-8.3284,56.2613,466.2682)" cx="292.49219" cy="43.388699" r="6.8727999"/>
- <radialGradient inkscape:collect="always" xlink:href="#rect14938_1_" id="radialGradient11404" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.4892,-0.2059,-2.5913,-7.0931,29.692,361.6149)" cx="290.8428" cy="36.069801" r="6.8736"/>
- <radialGradient inkscape:collect="always" xlink:href="#rect14944_1_" id="radialGradient11406" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.523,-0.2146,-2.627,-7.0521,27.4228,356.0237)" cx="274.56641" cy="36.065399" r="6.8733001"/>
- <linearGradient inkscape:collect="always" xlink:href="#rect22846_1_" id="linearGradient11408" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9428,-0.2511,-0.2421,-0.9089,6.0921912,215.38258)" x1="247.60249" y1="-288.60791" x2="261.97269" y2="-288.60791"/>
- <linearGradient inkscape:collect="always" xlink:href="#path34280_1_" id="linearGradient11410" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="93.023399" y1="39.3867" x2="93.023399" y2="25.928699"/>
- <linearGradient inkscape:collect="always" xlink:href="#path30758_1_" id="linearGradient11412" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="16.7803" y1="80.697304" x2="67.723602" y2="80.697304"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_7_" id="linearGradient11414" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="40.711899" y1="75.171898" x2="48.5495" y2="80.899803"/>
- <radialGradient inkscape:collect="always" xlink:href="#XMLID_8_" id="radialGradient11416" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" cx="64.988297" cy="15.9429" r="19.6182"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_9_" id="linearGradient11418" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="18.776899" y1="129.5986" x2="18.776899" y2="114.6055"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_10_" id="linearGradient11420" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="17.509325" y1="123.23078" x2="18.875885" y2="107.20945"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_11_" id="linearGradient11422" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="31.4995" y1="80.0439" x2="32.347698" y2="80.671898"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_3_" id="linearGradient11424" gradientUnits="userSpaceOnUse" x1="11.9185" y1="119.0576" x2="98.418404" y2="44.057598"/>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4529" id="linearGradient11510" gradientUnits="userSpaceOnUse" x1="9.3031492" y1="133.25163" x2="-5.8540711" y2="130.59308"/>
- <linearGradient inkscape:collect="always" xlink:href="#linearGradient4529" id="linearGradient11512" gradientUnits="userSpaceOnUse" x1="9.3031492" y1="133.25163" x2="-5.8540711" y2="130.59308"/>
- <filter inkscape:collect="always" id="filter11957">
- <feGaussianBlur inkscape:collect="always" stdDeviation="2.339831" id="feGaussianBlur11959"/>
- </filter>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_4_" id="linearGradient12019" gradientUnits="userSpaceOnUse" gradientTransform="translate(-80,0)" x1="40.527802" y1="55.75" x2="52.981899" y2="64.646004"/>
- <linearGradient inkscape:collect="always" xlink:href="#path34280_1_" id="linearGradient12037" gradientUnits="userSpaceOnUse" gradientTransform="translate(229.83849,405.96228)" x1="93.023399" y1="39.3867" x2="93.023399" y2="25.928699"/>
- <linearGradient inkscape:collect="always" xlink:href="#XMLID_3_" id="linearGradient12051" gradientUnits="userSpaceOnUse" x1="11.9185" y1="119.0576" x2="98.418404" y2="44.057598"/>
- <filter inkscape:collect="always" id="filter12490">
- <feGaussianBlur inkscape:collect="always" stdDeviation="2.3509538" id="feGaussianBlur12492"/>
- </filter>
- </defs>
- <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1" inkscape:cx="13" inkscape:cy="18.5" inkscape:document-units="px" inkscape:current-layer="g11357" inkscape:window-width="1024" inkscape:window-height="697" inkscape:window-x="0" inkscape:window-y="0" height="128px" width="128px"/>
- <metadata id="metadata5681">
- <rdf:RDF>
- <cc:Work rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1">
- <path style="fill:#000000;fill-opacity:1;filter:url(#filter12490);opacity:0.8" d="M 97.46875,6 C 97.18152,6.0094408 97.00831,6.0304757 97,6.03125 C 88.50154,6.7547259 81.81102,12.649899 80.96875,19.9375 C 80.96299,19.970198 76.86754,40.857308 72.875,46.3125 C 69.74177,50.594872 11.13376,102.7197 8.28125,107.28125 C 6.43475,110.23375 6.09196,113.64754 6.8125,116.75 C 6.81481,116.75995 6.81016,116.77131 6.8125,116.78125 C 7.27817,118.76618 8.16525,120.60725 9.40625,122.125 C 9.47154,122.20534 9.55786,122.26531 9.625,122.34375 C 9.73846,122.47566 9.85017,122.62373 9.96875,122.75 C 10.13123,122.9234 10.29696,123.08786 10.46875,123.25 C 10.78531,123.54834 11.12253,123.83716 11.46875,124.09375 C 11.51009,124.12442 11.55201,124.15746 11.59375,124.1875 C 11.75577,124.30387 11.92581,124.39345 12.09375,124.5 C 12.34901,124.66192 12.60676,124.83089 12.875,124.96875 C 12.90463,124.98396 12.93897,124.98509 12.96875,125 C 13.16389,125.09785 13.36099,125.19684 13.5625,125.28125 C 13.66656,125.32459 13.76932,125.36661 13.875,125.40625 C 13.96058,125.43847 14.03838,125.47026 14.125,125.5 C 14.26755,125.5489 14.41722,125.58297 14.5625,125.625 C 15.11282,125.78408 15.69527,125.91534 16.28125,125.96875 C 16.62585,125.99943 16.98844,126.00883 17.34375,126 C 17.49276,125.99631 17.6305,125.97967 17.78125,125.96875 C 18.30718,125.93117 18.83023,125.84877 19.375,125.71875 C 19.49773,125.68971 19.62642,125.65895 19.75,125.625 C 19.94658,125.5707 20.14518,125.50448 20.34375,125.4375 C 20.68974,125.32116 21.02361,125.18743 21.375,125.03125 C 21.51637,124.96837 21.67036,124.91327 21.8125,124.84375 C 22.01661,124.74364 22.23195,124.64533 22.4375,124.53125 C 22.50876,124.4917 22.58484,124.44751 22.65625,124.40625 C 22.93651,124.24411 23.21755,124.06393 23.5,123.875 C 23.72992,123.72139 24.01123,123.49888 24.3125,123.25 C 24.51715,123.08053 24.76474,122.86659 25,122.65625 C 25.31217,122.37641 25.73134,121.97195 26.09375,121.625 C 26.40496,121.32709 26.7476,121.00087 27.09375,120.65625 C 27.10095,120.64393 27.11785,120.63734 27.125,120.625 C 40.39609,107.39872 78.3196,61.213642 83.8125,57.75 C 87.95646,55.136652 109.0625,51.3125 109.0625,51.3125 C 113.21925,49.41573 118.90506,43.445638 121.3125,34.4375 C 121.72869,32.077134 121.4811,29.596922 121.375,30.03125 L 108.59375,35.78125 L 100.21875,29.0625 L 98.78125,25.40625 L 99.28125,19.21875 L 113.34375,13.96875 L 113.125,12.15625 C 107.67312,6.0868239 99.47934,5.9339145 97.46875,6 z M 17.8125,106.1875 C 21.2472,106.15572 24.40096,109.89596 24.375,114.15625 C 24.3535,117.67982 20.93573,121.18715 17.5,121.21875 C 14.06408,121.25138 10.73518,117.39784 10.6875,113.53125 C 10.68465,113.29896 10.66822,113.04283 10.6875,112.8125 C 10.70682,112.58223 10.74047,112.35167 10.78125,112.125 C 10.90349,111.44483 11.13404,110.80542 11.4375,110.1875 C 11.53867,109.98155 11.63003,109.78948 11.75,109.59375 C 12.94961,107.63625 15.09816,106.21329 17.8125,106.1875 z" id="path11963"/>
- <g id="g11357" transform="matrix(1.0223499,0.1802679,-0.1801715,1.0218034,-142.50883,-466.04399)">
- <path style="fill:url(#linearGradient11382)" d="M 322.52649,444.25728 C 326.15949,443.01428 332.35849,434.45128 332.98149,424.78428 C 333.00949,424.35428 333.65649,426.67828 333.65649,428.98828 C 332.87949,437.94128 328.47049,444.55028 324.84449,447.04628 L 322.52649,444.25728 z" inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="csssc" id="rect25493"/>
- <path style="fill:#888a85" d="M 332.98149,424.78428 L 321.82849,432.38828 L 312.74849,427.41628 C 312.08149,428.88428 315.95449,447.98028 320.22749,446.96228 C 328.04849,445.09828 332.16349,435.78528 332.98149,424.78428 z" inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="cccsc" id="path3285"/>
- <path style="fill:url(#linearGradient11384)" id="path23" d="M 322.07549,432.68428 L 323.06949,441.37828 L 324.97749,444.59028 C 326.91449,443.03428 328.49449,440.87628 329.72849,438.28428 C 331.33649,434.63428 332.30349,430.21428 332.65649,425.47228 L 322.07549,432.68428 z" enable-background="new "/>
- <path style="opacity:0.51380005;fill:url(#radialGradient11386)" d="M 313.59749,428.19228 C 313.59449,428.19728 313.57749,428.21928 313.57649,428.22628 C 313.57149,428.23928 313.56449,428.27228 313.56049,428.28828 C 313.04649,430.36728 316.00549,448.15728 320.19449,447.15928 C 321.12049,446.93828 322.00949,446.60928 322.83249,446.18928 L 320.58049,431.94628 L 313.59749,428.19228 z" enable-background="new " inkscape:r_cy="true" inkscape:r_cx="true" id="path5936"/>
- <path style="fill:url(#linearGradient11388)" d="M 305.84149,406.08928 C 297.90049,408.19828 292.53349,414.90528 292.95349,421.96328 C 292.95349,421.99528 292.56249,442.51428 289.68749,448.36028 C 287.43149,452.94928 240.55549,512.22128 238.61249,517.02828 C 234.50849,527.18028 246.26949,539.39528 255.82749,530.23128 C 262.12949,524.18928 296.79749,462.07328 301.96749,457.37728 C 305.46149,454.20328 324.84249,447.04528 324.84249,447.04528 L 310.76249,424.19228 L 310.04449,416.17028 L 322.15949,409.19128 C 315.08849,403.65028 305.90349,406.07228 305.84149,406.08928 z M 247.46049,514.40928 C 250.71349,513.80428 254.33749,516.82428 255.02549,520.87228 C 255.59449,524.22028 252.93349,528.13028 249.67949,528.73528 C 246.42549,529.34128 242.61749,526.22128 241.92549,522.55928 C 241.26149,519.04028 243.34849,515.17628 247.46049,514.40928 z" inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="cccssssccccssssccssss" id="path2388"/>
- <path transform="translate(309.83849,405.96228)" mask="url(#mask10545)" style="fill:url(#linearGradient11392)" id="path72" d="M -0.051,18.554 L -0.847,9.66 C -0.847,9.66 8.141,4.482 10.38,3.193 C 3.985,-0.79 -3.654,1.07 -3.741,1.093 C -10.903,2.996 -15.908,8.865 -15.908,15.222 C -15.908,15.461 -15.901,15.701 -15.887,15.94 C -15.887,15.941 -15.887,15.941 -15.887,15.942 C -15.887,16.299 -16.25,36.73 -19.253,42.838 C -20.334,45.036 -30.401,58.18 -42.058,73.4 C -54.195,89.247 -69.3,108.968 -70.298,111.44 C -70.839,112.778 -71.079,114.126 -71.079,115.435 C -71.079,119.221 -69.06,122.663 -66.483,124.621 C -66.083,123.92 -65.655,123.178 -65.197,122.392 C -67.02,121.101 -68.463,119.074 -68.895,116.783 C -69.291,114.687 -68.831,112.48 -67.631,110.726 C -66.46,109.013 -64.659,107.855 -62.561,107.463 C -60.935,107.16 -59.182,107.593 -57.621,108.682 C -57.428,108.817 -57.245,108.966 -57.063,109.118 C -46.315,92.233 -27.938,65.35 3.195,23.824 C 1.323,20.784 -0.051,18.554 -0.051,18.554 z"/>
- <path style="fill:url(#radialGradient11394)" id="path86" d="M 310.76249,424.19228 L 310.04449,416.17028 L 322.15949,409.19128 C 320.21949,407.64028 317.84449,406.51628 315.23549,405.92928 C 312.04649,405.90828 308.79349,406.38428 306.47749,407.16528 C 298.74149,409.77428 294.69849,415.49528 294.85149,422.31128 L 303.63249,437.15128 L 306.31749,435.47228 L 312.56749,446.29728 L 310.37649,447.80128 L 313.73849,451.42828 L 324.84249,447.04628 L 310.76249,424.19228 z"/>
- <polygon transform="translate(229.83849,405.96228)" style="fill:url(#linearGradient11396)" points="65.82,36.446 76.487,27.791 85.179,40.128 72.511,46.783 65.82,36.446 " inkscape:r_cy="true" inkscape:r_cx="true" id="rect10551_2_"/>
- <polygon transform="translate(229.83849,405.96228)" style="fill:url(#radialGradient11398)" points="65.82,36.446 76.487,29.791 83.179,40.128 72.511,46.783 65.82,36.446 " inkscape:r_cy="true" inkscape:r_cx="true" id="rect10551"/>
- <polygon transform="translate(229.83849,405.96228)" style="fill:url(#radialGradient11400)" points="68.311,35.653 74.616,32.078 80.237,40.809 73.932,44.384 68.311,35.653 " inkscape:r_cy="true" inkscape:r_cx="true" id="rect14950"/>
- <polygon transform="translate(229.83849,405.96228)" style="fill:url(#radialGradient11402)" points="67.891,36.615 77.497,32.233 77.891,33.323 68.284,37.705 67.891,36.615 " inkscape:r_cy="true" inkscape:r_cx="true" id="rect10553"/>
- <polygon transform="translate(229.83849,405.96228)" style="fill:url(#radialGradient11404)" points="72.212,42.972 81.653,38.899 82.001,39.827 72.56,43.9 72.212,42.972 " inkscape:r_cy="true" inkscape:r_cx="true" id="rect14938"/>
- <polygon transform="translate(229.83849,405.96228)" style="fill:url(#radialGradient11406)" points="69.661,39.991 79.757,35.751 80.11,36.673 70.015,40.914 69.661,39.991 " inkscape:r_cy="true" inkscape:r_cx="true" id="rect14944"/>
- <path style="fill:url(#linearGradient11410)" d="M 320.80249,431.89128 C 320.76149,432.16128 322.10049,439.91928 322.18149,440.18928 C 322.85449,444.45728 323.83149,444.59528 324.03549,445.34928 C 324.76349,444.93528 324.29249,445.39528 324.92349,444.84628 C 324.80849,444.48028 323.48549,441.99528 322.95849,441.11128 C 322.71249,438.97728 321.93149,433.00328 321.86449,432.43528 C 321.45549,432.21328 321.29849,432.12528 320.80249,431.89128 z" inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="ccccccc" id="path34280"/>
- <path style="fill:url(#linearGradient11412)" d="M 246.62049,511.92528 C 251.42949,510.02428 257.88249,515.30428 257.53849,521.11028 C 260.82449,517.31028 296.88449,460.33528 297.44649,457.74428 C 298.30649,453.77728 294.17949,450.82228 290.89849,452.88728 C 288.60949,454.32628 246.30749,512.04828 246.62049,511.92528 z" inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="ccsss" id="path30758"/>
- <path style="fill:url(#linearGradient11414);stroke:#000000" id="path159" d="M 292.02849,454.56028 C 289.53249,456.91828 266.85449,487.60628 250.66249,509.77928 C 252.02149,510.08228 253.37949,510.67028 254.63749,511.58128 C 256.37949,512.84228 257.66849,514.51428 258.50849,516.33428 C 267.27449,503.42428 294.06749,460.80328 295.50149,457.24628 C 295.53749,457.05828 295.56249,456.87128 295.56249,456.69028 C 295.56249,455.85828 295.18949,455.11828 294.50449,454.63828 C 293.74349,454.10528 292.82549,454.08928 292.02849,454.56028 z"/>
- <path style="fill:url(#radialGradient11416)" id="path166" d="M 294.94349,422.46628 C 294.86849,425.66728 294.31649,443.48028 291.48249,449.24328 C 291.40649,449.39728 291.28449,449.60828 291.13649,449.84928 C 291.56049,449.26728 291.86549,448.81828 292.01449,448.54228 C 294.75749,443.48028 297.55549,430.48328 297.76449,427.23428 L 294.94349,422.46628 z"/>
- <path style="opacity:0.5;fill:url(#linearGradient11418)" id="path173" d="M 258.69149,526.59428 C 259.24949,525.08628 259.45349,523.49328 259.17549,521.97428 C 258.59949,518.81928 256.61749,515.87328 253.87449,514.09028 C 251.69549,512.67428 249.24349,512.11128 246.97049,512.50528 C 244.03849,513.01528 241.52249,514.52228 239.88549,516.74928 C 238.45149,518.70028 237.78049,521.08528 237.96049,523.44028 C 239.33149,531.34628 248.26549,537.48228 255.82849,530.23128 C 256.49049,529.59728 257.46949,528.33628 258.69149,526.59428 z M 249.67949,528.73528 C 246.42549,529.34128 242.61749,526.22128 241.92549,522.55928 C 241.26049,519.03928 243.34749,515.17528 247.46049,514.40928 C 250.71349,513.80428 254.33749,516.82428 255.02549,520.87228 C 255.59449,524.22028 252.93349,528.13028 249.67949,528.73528 z"/>
- <path style="fill:url(#linearGradient11420)" id="path180" d="M 256.01149,520.70428 C 255.59949,518.27928 254.18149,516.01528 252.21849,514.64428 C 250.65849,513.55528 248.90449,513.12328 247.27849,513.42528 C 245.18049,513.81728 243.38049,514.97528 242.20849,516.68828 C 241.00949,518.44128 240.54849,520.64928 240.94449,522.74528 C 241.75449,527.03328 246.08849,530.42228 249.86349,529.71928 C 253.62049,529.02028 256.66649,524.55528 256.01149,520.70428 z M 249.67949,528.73528 C 246.42549,529.34128 242.61749,526.22128 241.92549,522.55928 C 241.26049,519.03928 243.34749,515.17528 247.46049,514.40928 C 250.71349,513.80428 254.33749,516.82428 255.02549,520.87228 C 255.59449,524.22028 252.93349,528.13028 249.67949,528.73528 z"/>
- <path style="opacity:0.4;fill:url(#linearGradient11422)" id="path187" d="M 285.39049,455.48028 C 285.64549,454.95828 285.88049,454.31028 286.09549,453.56728 C 274.64749,469.16528 240.27149,512.92628 238.61349,517.02828 C 238.29049,517.82728 238.07649,518.63728 237.94149,519.45128 C 242.96749,511.10428 283.36449,459.62828 285.39049,455.48028 z"/>
- <path transform="translate(229.83849,405.96228)" clip-path="url(#clipPath4092)" style="fill:url(#linearGradient11424);filter:url(#filter4503)" id="path65" d="M 72.13,49.416 C 66.96,54.112 32.292,116.228 25.99,122.27 C 18.09,129.844 8.695,122.813 7.986,114.414 C 7.207,123.618 17.468,132.44 25.99,124.27 C 32.292,118.228 66.96,56.112 72.13,51.416 C 75.624,48.242 95.005,41.084 95.005,41.084 L 94.004,39.459 C 90.005,40.965 75.147,46.674 72.13,49.416 z"/>
- <path style="fill:url(#linearGradient11408)" d="M 310.04449,416.17028 L 322.15949,409.19128 L 322.67749,410.88528 L 310.13349,418.26728 L 310.04449,416.17028 z" inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="ccccc" id="rect22846"/>
- <path style="fill:url(#linearGradient11390);fill-opacity:1" id="path46" d="M 310.21449,416.07228 L 322.15949,409.19128 C 321.63949,408.78428 321.10749,408.43228 320.56949,408.10728 L 310.04449,414.17028 L 310.21449,416.07228 z"/>
- </g>
- <path style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47008219000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998000000000;stroke-opacity:1;filter:url(#filter11957);opacity:0.80000000000000004" d="M 10.375,9 L 4.21875,15.46875 L 9.125,23.1875 C 13.08003,25.264868 17.14186,27.693549 20.375,30.75 L 69.625,77.3125 L 65.5625,81.5625 L 70.8125,86.53125 C 73.7103,86.859904 76.69384,88.078409 79.15625,90.40625 C 81.64614,92.760071 83.16605,95.732279 83.625,98.625 L 108.34375,122.03125 C 114.08456,127.45836 128.43479,112.52526 122.65625,107.0625 L 97.90625,83.6875 C 94.97813,83.378226 91.9274,82.010074 89.4375,79.65625 C 86.9751,77.328414 85.57063,74.424084 85.09375,71.5625 L 79.84375,66.59375 L 75.78125,70.84375 L 26.53125,24.28125 C 23.29811,21.224799 20.16307,17.382339 18.375,13.53125 L 10.375,9 z" id="path11428"/>
- <g id="g10397" transform="matrix(0.9660937,-2.5302336e-2,2.3546854e-2,0.9608617,2.3338765,6.1294086)">
- <path id="rect3006" d="M 1.750754,7.673054 L 6.651221,15.840499 C 10.689771,18.10883 14.818666,20.740966 18.085644,24.007944 L 103.30145,109.22375 L 109.83541,102.68979 L 24.6196,17.473988 C 21.352622,14.20701 18.204176,10.093654 16.452155,6.039565 L 8.28471,1.139098 L 1.750754,7.673054 z" style="fill:url(#linearGradient6125);fill-opacity:1;stroke:none;stroke-width:0.47008219;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" sodipodi:nodetypes="ccccccccc"/>
- <rect transform="matrix(0.7071068,-0.7071068,-0.7071068,-0.7071068,0,0)" style="fill:url(#linearGradient6122);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" id="rect3912" width="1.1166428" height="98.671562" x="-1.357038" y="-123.11634"/>
- <rect style="opacity:0.3857678;fill:url(#linearGradient6119);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" id="rect4944" width="1.6020314" height="63.508739" x="0.89394951" y="-85.707031" transform="matrix(-0.7071068,0.7071068,-0.7071068,-0.7071068,0,0)"/>
- <g transform="matrix(0.8167445,-0.8167445,0.8167445,0.8167445,5.2761549,23.749521)" clip-path="url(#clipPath3850)" id="g3842">
- <path style="fill:#535557;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3834)" d="M 4.296875,-4.12891 L 5.6640625,-4.12891 C 8.3203089,-0.31380448 8.5987355,3.8409896 7.6171875,8.17578 L 4.9804688,9.1523436 L 4.296875,-4.12891 z" id="path3726" sodipodi:nodetypes="ccccc"/>
- <path sodipodi:nodetypes="ccccc" id="path3728" d="M 18.977324,-4.12891 L 17.610137,-4.12891 C 14.95389,-0.31380448 14.675464,3.8409896 15.657012,8.17578 L 18.293731,9.1523436 L 18.977324,-4.12891 z" style="fill:#535557;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3838)"/>
- <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3838)" d="M 18.977324,-4.12891 L 18.231618,-4.0598566 C 16.117808,-1.3279433 15.743286,-1.0597872 15.864172,4.9302704 L 18.293731,9.1523436 L 18.977324,-4.12891 z" id="path3969" sodipodi:nodetypes="ccccc"/>
- </g>
- <rect transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" y="41.331993" x="0.84851468" height="109.04897" width="1.9142449" id="rect3886" style="fill:url(#linearGradient6112);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- <path transform="matrix(0.8167445,-0.8167445,0.8167445,0.8167445,-14.584136,43.609812)" id="path3925" d="M 32,-12 L 30,-4 C 34.143852,8.2009511 38.115959,5.0342786 42,-4 L 40,-12 L 32,-12 z" style="fill:url(#linearGradient3943);fill-opacity:1;stroke:url(#linearGradient6517);stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" sodipodi:nodetypes="ccccc"/>
- <path sodipodi:nodetypes="ccsccccsccc" id="rect3956" d="M 63.529919,78.09273 L 68.834311,83.397123 C 71.82354,83.817882 74.899226,85.18508 77.387407,87.673261 C 79.903365,90.189215 81.385477,93.328601 81.786903,96.34972 L 106.78156,121.34436 C 112.58247,127.14528 127.79361,112.01036 121.95458,106.17133 L 96.95993,81.176682 C 93.938823,80.775254 90.799446,79.29314 88.283481,76.777186 C 85.795299,74.289007 84.428105,71.213314 84.007344,68.22409 L 78.70295,62.919697 L 63.529919,78.09273 z" style="opacity:1;fill:url(#linearGradient4190);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- <path transform="matrix(0.9483145,-0.9483145,0.9483145,0.9483145,-6.4444639,0.531831)" clip-path="url(#clipPath4242)" sodipodi:nodetypes="cccccc" id="path4196" d="M -8,120 C 1.7462188,130.07566 10.00314,126.89342 16,120 L 12,136 L -16,128 L -20,112 L -8,120 z" style="fill:#ffa700;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4238)"/>
- <rect transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" y="100.16766" x="-10.297462" height="1.1132338" width="21.457907" id="rect4249" style="opacity:0.48689138;fill:#ffa500;fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- <path sodipodi:nodetypes="ccccccc" id="rect4320" d="M 72.972033,68.720893 L 75.892922,65.800004 L 81.066844,70.973925 C 80.921148,71.564914 80.822369,72.165286 81.579665,72.936868 L 79.073097,75.857759 C 78.372014,75.392484 77.997186,74.796708 78.21501,73.963871 L 72.972033,68.720893 z" style="opacity:0.83895126;fill:url(#linearGradient4346);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- <path sodipodi:nodetypes="ccccc" id="rect4340" d="M 4.6713727,129.88196 L 7.2816355,129.49996 C 7.2464436,130.37087 7.2584731,130.8014 7.8438776,132.01123 L 5.1273299,132.01123 C 4.7973883,130.83537 4.6035939,130.49599 4.6713727,129.88196 z" style="opacity:0.74531836;fill:url(#linearGradient4342);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter4404)" transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,-4,-4)"/>
- <rect transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" y="126.0467" x="-0.6434837" height="0.390625" width="10.644531" id="rect4432" style="opacity:1;fill:url(#radialGradient4440);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- <path sodipodi:nodetypes="ccc" id="path4454" d="M 83.597656,68.53125 L 68.753906,82.984375 C 84.820174,88.576948 78.33289,74.329762 83.597656,68.53125 z" style="fill:url(#linearGradient4471);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4501)"/>
- <path transform="matrix(-1,0,0,-1,169.63281,168.51104)" style="fill:url(#linearGradient4515);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4501)" d="M 87.597656,72.53125 L 72.753906,86.984375 C 88.820174,92.576948 82.33289,78.329762 87.597656,72.53125 z" id="path4505" sodipodi:nodetypes="ccc"/>
- <rect transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" ry="2.9279406" rx="2.9279406" y="132.02951" x="-7.5001087" height="29.279404" width="5.8558812" id="rect4517" style="opacity:0.83895126;fill:url(#linearGradient4525);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
- <rect inkscape:transform-center-y="-5.5242717" inkscape:transform-center-x="-16.434708" transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,-4,-4)" ry="0.5577029" rx="2.9279406" y="130.97287" x="-1.1929667" height="1.1048541" width="11.60097" id="rect4527" style="opacity:0.83895126;fill:url(#linearGradient4537);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter4551)"/>
- <path transform="translate(50.492188,-4.0046875)" clip-path="url(#clipPath4588)" id="path4559" d="M 13.83125,81.09375 L 12.33125,82.59375 L 17.64375,87.90625 C 20.632979,88.327007 23.718069,89.699319 26.20625,92.1875 C 28.722207,94.703451 30.179824,97.822631 30.58125,100.84375 L 55.58125,125.84375 C 59.791769,130.05428 68.947177,123.22603 71.425,116.9375 C 68.058606,122.54366 60.345306,127.60781 56.58125,123.84375 L 31.58125,98.84375 C 31.179824,95.822631 29.722207,92.703451 27.20625,90.1875 C 24.718069,87.699319 21.632979,86.327007 18.64375,85.90625 L 13.83125,81.09375 z" style="opacity:1;fill:#996100;fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter4584)"/>
- <rect style="opacity:0.576779;fill:url(#radialGradient4602);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" id="rect4596" width="10.644531" height="0.390625" x="-0.091056541" y="100.35886" transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)"/>
- <rect clip-path="url(#clipPath4632)" style="opacity:0.576779;fill:url(#linearGradient4604);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter4626)" id="rect4598" width="12.602244" height="4.0530515" x="-1.1929667" y="129.5918" rx="0" ry="0" transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,-21.221011,-22.313001)" inkscape:transform-center-x="-16.434708" inkscape:transform-center-y="-5.5242717"/>
- <rect inkscape:transform-center-y="-5.5242717" inkscape:transform-center-x="-16.434708" transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,-21.321011,-22.413001)" ry="0" rx="0" y="130.07516" x="3.1573973" height="1.7051741" width="7.9066095" id="rect4638" style="opacity:0.576779;fill:url(#linearGradient4640);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter4626)" clip-path="url(#clipPath4632)"/>
- <path sodipodi:nodetypes="ccccc" style="fill:url(#linearGradient6930);fill-opacity:1;stroke:none;stroke-width:0.30655462;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" d="M 2.9032773,7.9724105 L 7.1391831,15.032254 C 18.678358,20.720438 19.246981,15.680572 15.610994,6.5604419 L 8.5511516,2.3245361 L 2.9032773,7.9724105 z" id="path6537"/>
- <rect style="opacity:0.83895126;fill:url(#linearGradient7698);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" id="rect7696" width="5.8558812" height="29.279404" x="4.5207062" y="132.73663" rx="2.9279406" ry="2.9279406" transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)"/>
- <rect style="opacity:0.95131088;fill:url(#linearGradient4338);fill-opacity:1;stroke:none;stroke-width:0.37;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1" id="rect4336" width="2.5833137" height="38.179485" x="0.94721299" y="126.14276" transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)"/>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/utils/nwztools/plattools/data/make_images.sh b/utils/nwztools/plattools/data/make_images.sh
deleted file mode 100755
index 7ac21dc17a..0000000000
--- a/utils/nwztools/plattools/data/make_images.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-#
-# This script contains the code used to produce all the images.
-# Because of the variety of tools needed to achieve that, the result is also
-# included in the repository but this makes it easier to modify the data
-# to add more content
-#
-
-# path to root of repository
-ROOT_DIR=../../../../
-
-# final resolution
-NWZ_WIDTH=130
-NWZ_HEIGHT=130
-
-# path to rockbox icon
-RB_ICON_PATH=$ROOT_DIR/docs/logo/rockbox-icon.svg
-# path to tools icon (currently stolen from KDE Oxygen icon set)
-TOOL_ICON_PATH=Oxygen480-categories-preferences-system.svg
-
-# convert_svg width height input output
-function convert_svg
-{
- local width="$1"
- local height="$2"
- local input="$3"
- local output="$4"
- TMP=tmp.png
- # convert from SVG to PNG
- inkscape -z -e $TMP -w $width -h $height $input
- if [ "$?" != 0 ]; then
- echo "SVG -> PNG conversion failed"
- exit 1
- fi
- # convert from PNG to BMP, force using "version 3" because the OF don't like
- # "recent" BMP
- convert -channel RGB $TMP -define bmp:format=bmp3 ${output}_icon.bmp
- if [ "$?" != 0 ]; then
- rm -f $TMP
- echo "PNG -> BMP conversion failed"
- exit 1
- fi
- # remove temporary
- rm -f $TMP
-}
-
-# start by creating the bitmap files from rockbox-icon.svg for all resolutions
-# we make a detour by svg because inkscape can only export to SVG
-# NOTE: we use image magick to convert to bmp but the OF tools don't like BMPv5
-# and contrary to what the documentation says, image magick tends to produce
-# those by default unless asked otherwise
-convert_svg $NWZ_WIDTH $NWZ_HEIGHT $RB_ICON_PATH rockbox
-convert_svg $NWZ_WIDTH $NWZ_HEIGHT $TOOL_ICON_PATH tools
diff --git a/utils/nwztools/plattools/data/rockbox_icon.bmp b/utils/nwztools/plattools/data/rockbox_icon.bmp
deleted file mode 100644
index 69e6792e7b..0000000000
--- a/utils/nwztools/plattools/data/rockbox_icon.bmp
+++ /dev/null
Binary files differ
diff --git a/utils/nwztools/plattools/data/tools_icon.bmp b/utils/nwztools/plattools/data/tools_icon.bmp
deleted file mode 100644
index f9fccf0306..0000000000
--- a/utils/nwztools/plattools/data/tools_icon.bmp
+++ /dev/null
Binary files differ
diff --git a/utils/nwztools/plattools/dest_tool.c b/utils/nwztools/plattools/dest_tool.c
deleted file mode 100644
index 9fb075e9b3..0000000000
--- a/utils/nwztools/plattools/dest_tool.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include <string.h>
-#include <stdlib.h>
-#include "nwz_plattools.h"
-
-static unsigned long read32(unsigned char *buf)
-{
- return buf[0] | buf[1] << 8 | buf[2] << 16 | buf[3] << 24;
-}
-
-static void write32(unsigned char *buf, unsigned long value)
-{
- buf[0] = value & 0xff;
- buf[1] = (value >> 8) & 0xff;
- buf[2] = (value >> 16) & 0xff;
- buf[3] = (value >> 24) & 0xff;
-}
-
-static struct
-{
- unsigned long dest;
- const char *name;
-} g_dest_list[] =
-{
- { 0, "J" },
- { 1, "U" },
- { 0x101, "U2" },
- { 0x201, "U3" },
- { 0x301, "CA" },
- { 2, "CEV" },
- { 0x102, "CE7" },
- { 3, "CEW" },
- { 0x103, "CEW2" },
- { 4, "CN" },
- { 5, "KR" },
- { 6, "E" },
- { 0x106, "MX" },
- { 0x206, "E2" },
- { 0x306, "MX3" },
- { 7, "TW" },
-};
-
-#define NR_DEST (sizeof(g_dest_list) / sizeof(g_dest_list[0]))
-
-static int get_dest_index(unsigned long dest)
-{
- for(size_t i = 0; i < NR_DEST; i++)
- if(g_dest_list[i].dest == dest)
- return i;
- return -1;
-}
-
-static const char *get_dest_name(unsigned long dest)
-{
- int index = get_dest_index(dest);
- return index < 0 ? "NG" : g_dest_list[index].name;
-}
-
-int NWZ_TOOL_MAIN(dest_tool)(int argc, char **argv)
-{
- /* clear screen and display welcome message */
- nwz_lcdmsg(true, 0, 0, "dest_tool");
- /* open input device */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- nwz_lcdmsg(false, 3, 4, "Cannot open input device");
- sleep(2);
- return 1;
- }
- unsigned long model_id = nwz_get_model_id();
- if(model_id == 0)
- {
- nwz_key_close(input_fd);
- nwz_lcdmsg(false, 3, 4, "Cannot get model ID");
- sleep(2);
- return 1;
- }
- const char *model_name = nwz_get_model_name();
- if(model_name == NULL)
- model_name = "Unknown";
- const char *series_name = "Unknown";
- bool ok_model = false;
- if(nwz_get_series() != -1)
- {
- series_name = nwz_series[nwz_get_series()].name;
- ok_model = true;
- }
- nwz_lcdmsgf(false, 0, 2, "Model ID: %#x", model_id);
- nwz_lcdmsgf(false, 0, 3, "Model: %s", model_name);
- nwz_lcdmsgf(false, 0, 4, "Series: %s", series_name);
- nwz_lcdmsg(false, 0, 5, "BACK: quit");
- nwz_lcdmsg(false, 0, 6, "LEFT/RIGHT: change dest");
- nwz_lcdmsg(false, 0, 7, "PLAY/PAUSE: change sps");
- /* display input state in a loop */
- while(1)
- {
- unsigned char nvp_buf[32];
- bool ok_nvp = false;
- if(ok_model)
- {
- /* make sure node has the right size... */
- if(nwz_nvp_read(NWZ_NVP_SHP, NULL) == sizeof(nvp_buf))
- {
- if(nwz_nvp_read(NWZ_NVP_SHP, nvp_buf) == sizeof(nvp_buf))
- ok_nvp = true;
- else
- nwz_lcdmsg(false, 1, 9, "Cannot read NVP.\n");
- }
- else
- nwz_lcdmsg(false, 1, 9, "NVP node has the wrong size.\n");
- }
- else
- {
- nwz_lcdmsg(false, 1, 9, "Your model is not supported.\n");
- nwz_lcdmsg(false, 1, 10, "Please contact a developer.\n");
- }
- /* display information */
- if(ok_nvp)
- {
- unsigned long dest = read32(nvp_buf);
- unsigned long sps = read32(nvp_buf + 4);
- const char *dest_name = get_dest_name(dest);
- const char *sps_name = sps ? "ON" : "OFF";
- nwz_lcdmsgf(false, 1, 9, "DEST: %s (%#x) ", dest_name, dest);
- nwz_lcdmsgf(false, 1, 10, "SPS: %s (%d) ", sps_name, sps);
- }
- /* wait for event */
- int ret = nwz_key_wait_event(input_fd, -1);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- /* only act on release */
- if(nwz_key_event_is_press(&evt))
- continue;
- int keycode = nwz_key_event_get_keycode(&evt);
- if(keycode == NWZ_KEY_BACK)
- break;
- bool write_nvp = false;
- if(keycode == NWZ_KEY_LEFT || keycode == NWZ_KEY_RIGHT)
- {
- int dest_idx = get_dest_index(read32(nvp_buf));
- /* if destination is unknown, replace by the first one */
- if(dest_idx == -1)
- dest_idx = 0;
- if(keycode == NWZ_KEY_LEFT)
- dest_idx--;
- else
- dest_idx++;
- dest_idx = (dest_idx + NR_DEST) % NR_DEST;
- write32(nvp_buf, g_dest_list[dest_idx].dest);
- write_nvp = true;
- }
- else if(keycode == NWZ_KEY_PLAY)
- {
- /* change 0 to 1 and anything nonzero to 0 */
- write32(nvp_buf + 4, read32(nvp_buf + 4) == 0 ? 1 : 0);
- write_nvp = true;
- }
- /* write nvp */
- if(ok_nvp && write_nvp)
- {
- if(nwz_nvp_write(NWZ_NVP_SHP, nvp_buf) != 0)
- nwz_lcdmsg(false, 1, 12, "Cannot write NVP.\n");
- }
- }
- /* finish nicely */
- nwz_key_close(input_fd);
- return 0;
-}
diff --git a/utils/nwztools/plattools/dualboot.c b/utils/nwztools/plattools/dualboot.c
deleted file mode 100644
index c6d07c7508..0000000000
--- a/utils/nwztools/plattools/dualboot.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2011 by Amaury Pouly
- *
- * Based on Rockbox iriver bootloader by Linus Nielsen Feltzing
- * and the ipodlinux bootloader by Daniel Palffy and Bernard Leach
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-#include <time.h>
-#include <errno.h>
-
-/* all images must have the following size */
-#define ICON_WIDTH 130
-#define ICON_HEIGHT 130
-
-/* images */
-#include "data/rockbox_icon.h"
-#if BMPWIDTH_rockbox_icon != ICON_WIDTH || BMPHEIGHT_rockbox_icon != ICON_HEIGHT
-#error rockbox_icon has the wrong resolution
-#endif
-#include "data/tools_icon.h"
-#if BMPWIDTH_tools_icon != ICON_WIDTH || BMPHEIGHT_tools_icon != ICON_HEIGHT
-#error tools_icon has the wrong resolution
-#endif
-/* buffer for Sony image, filled from NVP */
-unsigned short sony_icon[ICON_WIDTH * ICON_HEIGHT];
-/* resolution */
-static int width, height, bpp;
-
-/* return icon y position (x is always centered) */
-int get_icon_y(void)
-{
- /* adjust so that this contains the Sony logo and produces a nice logo
- * when used with rockbox */
- if(height == 320)
- return 70;
- else if(height == 320)
- return 100;
- else
- return height / 2 - ICON_HEIGHT + 30; /* guess, probably won't work */
-}
-
-/* Sony logo extraction */
-bool extract_sony_logo(void)
-{
- /* only support bpp of 16 */
- if(bpp != 16)
- return false;
- /* load the entire image from the nvp */
- int bti_size = nwz_nvp_read(NWZ_NVP_BTI, NULL);
- if(bti_size < 0)
- return false;
- unsigned short *bti = malloc(bti_size);
- if(nwz_nvp_read(NWZ_NVP_BTI, bti) != bti_size)
- return false;
- /* compute the offset in the image of the logo itself */
- int x_off = (width - ICON_WIDTH) / 2; /* logo is centered horizontally */
- int y_off = get_icon_y();
- /* extract part of the image */
- for(int y = 0; y < ICON_HEIGHT; y++)
- {
- memcpy(sony_icon + ICON_WIDTH * y,
- bti + width * (y + y_off) + x_off, ICON_WIDTH * sizeof(unsigned short));
- }
- free(bti);
- return true;
-}
-
-/* Important Note: this bootloader is carefully written so that in case of
- * error, the OF is run. This seems like the safest option since the OF is
- * always there and might do magic things. */
-
-enum boot_mode
-{
- BOOT_ROCKBOX,
- BOOT_TOOLS,
- BOOT_OF
-};
-
-void draw_icon(int left, int top, const unsigned short *icon, unsigned short *fb_mmap)
-{
- for(int y = 0; y < ICON_HEIGHT; y++)
- {
- memcpy(fb_mmap + width * (y + top) + left, icon + ICON_WIDTH * y,
- ICON_WIDTH * sizeof(unsigned short));
- }
-}
-
-enum boot_mode get_boot_mode(void)
-{
- if(bpp != 16)
- {
- nwz_lcdmsg(true, 0, 2, "Unsupported bpp");
- sleep(2);
- return BOOT_OF;
- }
- /* open framebuffer */
- int fb_fd = nwz_fb_open(true);
- if(fb_fd < 0)
- {
- nwz_lcdmsg(true, 0, 2, "Cannot open input device");
- sleep(2);
- return BOOT_OF;
- }
- /* open input device */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- nwz_fb_close(fb_fd);
- nwz_lcdmsg(true, 0, 2, "Cannot open input device");
- sleep(2);
- return BOOT_OF;
- }
- int fb_size = width * height * bpp / 2;
- void *fb_mmap = nwz_fb_mmap(fb_fd, 0, fb_size);
- void *fb_mmap_p1 = nwz_fb_mmap(fb_fd, NWZ_FB_LCD_PAGE_OFFSET, fb_size);
- if(fb_mmap == NULL || fb_mmap_p1 == NULL)
- {
- nwz_fb_close(fb_fd);
- nwz_key_close(input_fd);
- nwz_lcdmsg(true, 0, 2, "Cannot map framebuffer");
- sleep(2);
- return BOOT_OF;
- }
- /* wait for user action */
- enum boot_mode mode = BOOT_OF;
- /* NOTE on drawing: since screen is redrawn automatically, and we invoke
- * external programs to draw, we can't hope to fit it in the frame time
- * and it will flicker. To avoid this, we use the fact that all programs
- * only write to page 0. So we setup the lcd to update from page 1. When
- * we need to update the screen, we ask it to draw from page 0, then copy
- * page 0 to page 1 and then switch back to page 1 */
- memset(fb_mmap_p1, 0xff, fb_size); /* clear page 1 */
- nwz_fb_set_page(fb_fd, 1);
- bool redraw = true;
- while(true)
- {
- if(redraw)
- {
- /* redraw screen on page 0: clear screen */
- memset(fb_mmap, 0, fb_size);
- /* display top text */
- nwz_display_text_center(width, 0, true, NWZ_COLOR(255, 201, 0),
- NWZ_COLOR(0, 0, 0), 0, "SELECT PLAYER");
- /* display icon */
- const unsigned short *icon = (mode == BOOT_OF) ? sony_icon :
- (mode == BOOT_ROCKBOX) ? rockbox_icon : tools_icon;
- draw_icon((width - ICON_WIDTH) / 2, get_icon_y(), icon, fb_mmap);
- /* display bottom description */
- const char *desc = (mode == BOOT_OF) ? "SONY" :
- (mode == BOOT_ROCKBOX) ? "ROCKBOX" : "DEBUG TOOLS";
- nwz_display_text_center(width, get_icon_y() + ICON_HEIGHT + 30, true,
- NWZ_COLOR(255, 201, 0), NWZ_COLOR(0, 0, 0), 0, desc);
- /* display arrows */
- int arrow_y = get_icon_y() + ICON_HEIGHT / 2 - NWZ_FONT_H(true) / 2;
- nwz_display_text(NWZ_FONT_W(true) / 2, arrow_y, true,
- NWZ_COLOR(255, 201, 0), NWZ_COLOR(0, 0, 0), 0, "<");
- nwz_display_text(width - 3 * NWZ_FONT_W(true) / 2, arrow_y, true,
- NWZ_COLOR(255, 201, 0), NWZ_COLOR(0, 0, 0), 0, ">");
- /* switch to page 1 */
- nwz_fb_set_page(fb_fd, 0);
- /* copy page 0 to page 1 */
- memcpy(fb_mmap_p1, fb_mmap, fb_size);
- /* switch back to page 1 */
- nwz_fb_set_page(fb_fd, 1);
-
- redraw = false;
- }
-
- /* wait for a key */
- int ret = nwz_key_wait_event(input_fd, -1);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- /* only act on release */
- if(nwz_key_event_is_press(&evt))
- continue;
- int key_code = nwz_key_event_get_keycode(&evt);
- /* play -> stop loop and return mode */
- if(key_code == NWZ_KEY_PLAY)
- break;
- /* left/right/up/down: change mode */
- if(key_code == NWZ_KEY_LEFT || key_code == NWZ_KEY_DOWN)
- {
- if(mode == BOOT_ROCKBOX)
- mode = BOOT_OF;
- else if(mode == BOOT_OF)
- mode = BOOT_TOOLS;
- else
- mode = BOOT_ROCKBOX;
- redraw = true;
- }
- if(key_code == NWZ_KEY_RIGHT || key_code == NWZ_KEY_UP)
- {
- if(mode == BOOT_ROCKBOX)
- mode = BOOT_TOOLS;
- else if(mode == BOOT_OF)
- mode = BOOT_ROCKBOX;
- else
- mode = BOOT_OF;
- redraw = true;
- }
- }
- /* switch back to page 0 */
- nwz_fb_set_page(fb_fd, 0);
- nwz_key_close(input_fd);
- nwz_fb_close(fb_fd);
- return mode;
-}
-
-static char *boot_rb_argv[] =
-{
- "rockbox.sony",
- NULL
-};
-
-int NWZ_TOOL_MAIN(all_tools)(int argc, char **argv);
-
-void error_screen(const char *msg)
-{
- nwz_lcdmsg(true, 0, 0, msg);
- sleep(3);
-}
-
-void create_sony_logo(void)
-{
- for(int y = 0; y < ICON_HEIGHT; y++)
- for(int x = 0; x < ICON_WIDTH; x++)
- sony_icon[y * ICON_WIDTH + x] = 0xf81f;
-}
-
-int main(int argc, char **argv)
-{
- /* make sure backlight is on and we are running the standard lcd mode */
- int fb_fd = nwz_fb_open(true);
- if(fb_fd >= 0)
- {
- struct nwz_fb_brightness bl;
- nwz_fb_get_brightness(fb_fd, &bl);
- bl.level = NWZ_FB_BL_MAX_LEVEL;
- nwz_fb_set_brightness(fb_fd, &bl);
- nwz_fb_set_standard_mode(fb_fd);
- /* get resolution */
- /* we also need to get the native resolution */
- if(nwz_fb_get_resolution(fb_fd, &width, &height, &bpp) != 0)
- {
- /* safe one */
- width = 240;
- height = 320;
- bpp = 16;
- }
- nwz_fb_close(fb_fd);
- }
- /* extract logo */
- if(!extract_sony_logo())
- create_sony_logo();
- /* run all tools menu */
- enum boot_mode mode = get_boot_mode();
- if(mode == BOOT_TOOLS)
- {
- /* run tools and then run OF */
- NWZ_TOOL_MAIN(all_tools)(argc, argv);
- }
- else if(mode == BOOT_ROCKBOX)
- {
- /* Rockbox expects /.rockbox to contain themes, rocks, etc, but we
- * cannot easily create this symlink because the root filesystem is
- * mounted read-only. Although we could remount it read-write temporarily,
- * this is neededlessly complicated and we defer this job to the dualboot
- * install script */
- execvp("/contents/.rockbox/rockbox.sony", boot_rb_argv);
- /* fallback to OF in case of failure */
- error_screen("Cannot boot Rockbox");
- sleep(5);
- }
- /* boot OF */
- execvp("/usr/local/bin/SpiderApp.of", argv);
- error_screen("Cannot boot OF");
- sleep(5);
- /* if we reach this point, everything failed, so return an error so that
- * sysmgrd knows something is wrong */
- return 1;
-}
diff --git a/utils/nwztools/plattools/nwz_adc.h b/utils/nwztools/plattools/nwz_adc.h
deleted file mode 100644
index 86b2dc7595..0000000000
--- a/utils/nwztools/plattools/nwz_adc.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __NWZ_ADC_H__
-#define __NWZ_ADC_H__
-
-#define NWZ_ADC_DEV "/dev/icx_adc"
-
-#define NWZ_ADC_TYPE 'm'
-
-#define NWZ_ADC_MIN_CHAN 0
-#define NWZ_ADC_MAX_CHAN 7
-
-#define NWZ_ADC_VCCBAT 0
-#define NWZ_ADC_VCCVBUS 1
-#define NWZ_ADC_ADIN3 2
-#define NWZ_ADC_ADIN4 3
-#define NWZ_ADC_ADIN5 4
-#define NWZ_ADC_ADIN6 5
-#define NWZ_ADC_ADIN7 6
-#define NWZ_ADC_ADIN8 7
-
-#define NWZ_ADC_GET_VAL(chan) _IOR(NWZ_ADC_TYPE, chan, unsigned char)
-
-#endif /* __NWZ_ADC_H__ */
diff --git a/utils/nwztools/plattools/nwz_fb.h b/utils/nwztools/plattools/nwz_fb.h
deleted file mode 100644
index 9334b625c9..0000000000
--- a/utils/nwztools/plattools/nwz_fb.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __NWZ_FB_H__
-#define __NWZ_FB_H__
-
-#define NWZ_FB_LCD_DEV "/dev/fb/0"
-#define NWZ_FB_TV_DEV "/dev/fb/1"
-
-#define NWZ_FB_TYPE 'N'
-
-/* How backlight works:
- *
- * The brightness interface is a bit strange. There 6 levels: 0 throught 5.
- * Level 0 means backlight off. When changing brightness, one sets level to the
- * target brightness. The driver is gradually change the brightness to reach the
- * target level. The step parameters control how many hardware steps will be done.
- * For example, setting step to 1 will brutally change the level in one step.
- * Setting step to 2 will change brightness in two steps: one intermediate and
- * finally the target one. The more steps, the more gradual the transition. The
- * period parameters controls the speed to changes between steps. Using this
- * interface, one can achieve fade in/out at various speeds. */
-#define NWZ_FB_BL_MIN_LEVEL 0
-#define NWZ_FB_BL_MAX_LEVEL 5
-#define NWZ_FB_BL_MIN_STEP 1
-#define NWZ_FB_BL_MAX_STEP 100
-#define NWZ_FB_BL_MIN_PERIOD 10
-
-struct nwz_fb_brightness
-{
- int level; /* brightness level: 0-5 */
- int step; /* number of hardware steps to do when changing: 1-100 */
- int period; /* period in ms between steps when changing: >=10 */
-};
-
-/* FB extensions:
- *
- * Sony added relatively complicated extensions to the framebuffer. They allow
- * better control of framebuffer refresh, double-buffering and mixing with DSP
- * (v4l2). Each outout (LCD and TV) has two buffers, called page 0 and 1 (or A
- * and B). Each page has its own attributes (image info) that control
- * transparency, rotation and updates. At any point in time, the LCD is drawing
- * a page and one can select the next page to draw. Unless an UPDATE ioctl()
- * is made to change it, the next page will be the same as the one being drawn.
- *
- * FIXME I don't know what the timer is, it seems irrelevant for the LCD but
- * the OF uses it for TV, maybe this controls the refresh rate of the TV output?
- *
- * On a side note, this information only applies to a subset of LCD types (the
- * LCD type can be gathered from icx_sysinfo):
- * - BB(0): AQUILA BB LCD
- * - SW(1): SWAN or FIJI LCD
- * - FC(2): FALCON OLED
- * - GM(3): GUAM and ROTA LCD
- * - FR(5): FURANO LCD ---> /!\ DOES NOT APPLY /!\
- * - SD(6): SPICA_D LCD
- * - AQ(7): AQUILA LCD
- */
-
-/* Image infomation:
- * SET_MODE will change the attributes of the requested page (ie .page)
- * GET_MODE will return the attributes of the currently being displayed page
- * UPDATE will do the same thing as SET_MODE but immediately refreshes the screen */
-struct nwz_fb_image_info
-{
- int tc_enable; /* enable(1)/disable(0) transparent color */
- int t_color; /* transparent color (16bpp RGB565) */
- int alpha; /* alpha ratio (0 - 255) */
- int page; /* 2D framebuffer page(0/1) */
- int rot; /* LCD image rotation(0/1=180deg.) */
- int update; /* only use with NWZ_FB_UPDATE, ignored for others */
-};
-
-/* update type */
-#define NWZ_FB_ONLY_2D_MODE 0
-#define NWZ_FB_DSP_AND_2D_MODE 1
-
-/* frame buffer page infomation: when NWZ_FB_WAIT_REFREHS is called, the driver
- * will wait until the next refresh or the timeout, whichever comes first. It
- * will then fill this structure with the page status. */
-struct nwz_fb_status
-{
- int timeout; /* waiting time for any frame ready (in units of 10 ms) */
- int page0; /* page 0 is out of display or waiting to be displayed */
- int page1; /* page 0 is out of display or waiting to be displayed */
-};
-
-/* frame buffer page status */
-#define NWZ_FB_OUT_OF_DISPLAY 0
-#define NWZ_FB_WAITING_FOR_ON_DISPLAY 1
-
-/* frame buffer update timer infomation (use I/F fb <-> 2D API) */
-struct nwz_fb_update_timer
-{
- int timerflag; /* auto update off(0) / auto update on(1) */
- int timeout; /* timeout timer value (ms) */
-};
-
-/* timer flags */
-#define NWZ_FB_TIMER_ON 1
-#define NWZ_FB_TIMER_OFF 0
-
-/* default and minimum timeout value */
-#define NWZ_FB_DEFAULT_TIMEOUT 60
-#define NWZ_FB_MIN_TIMEOUT 33
-
-/* mmap offsets for page 1 (page 0 is always at address 0) */
-#define NWZ_FB_LCD_PAGE_OFFSET 0x2f000
-
-/* NOTE: I renamed those from Sony's header, because their original names were
- * pure crap */
-/* FIXME: Sony uses _IOR for NWZ_FB_WAIT_REFRESH but it should be _IORW */
-#define NWZ_FB_WAIT_REFRESH _IORW(NWZ_FB_TYPE, 0x00, struct nwz_fb_status)
-#define NWZ_FB_UPDATE _IOW(NWZ_FB_TYPE, 0x01, struct nwz_fb_image_info)
-#define NWZ_FB_SET_MODE _IOW(NWZ_FB_TYPE, 0x02, struct nwz_fb_image_info)
-#define NWZ_FB_GET_MODE _IOR(NWZ_FB_TYPE, 0x03, struct nwz_fb_image_info)
-#define NWZ_FB_UPDATE_TIMER _IOR(NWZ_FB_TYPE, 0x04, struct nwz_fb_update_timer)
-#define NWZ_FB_SET_BRIGHTNESS _IOW(NWZ_FB_TYPE, 0x07, struct nwz_fb_brightness)
-#define NWZ_FB_GET_BRIGHTNESS _IOR(NWZ_FB_TYPE, 0x08, struct nwz_fb_brightness)
-
-
-#endif /* __NWZ_FB_H__ */
diff --git a/utils/nwztools/plattools/nwz_keys.h b/utils/nwztools/plattools/nwz_keys.h
deleted file mode 100644
index 9fc5b4c9fd..0000000000
--- a/utils/nwztools/plattools/nwz_keys.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __NWZ_KEYS_H__
-#define __NWZ_KEYS_H__
-
-#define NWZ_KEY_NAME "icx_key"
-
-/* The Sony icx_key driver reports keys via the /dev/input/event0 device and
- * abuses the standard struct input_event. The input_event.code is split into
- * two parts:
- * - one part giving the code of the key just pressed/released
- * - one part is a bitmap of various keys (such as HOLD)
- * The status of the HOLD can be queried at any time by reading the state of
- * the first LED.
- */
-
-/* key code and mask */
-#define NWZ_KEY_MASK 0x1f
-#define NWZ_KEY_PLAY 0
-#define NWZ_KEY_RIGHT 1
-#define NWZ_KEY_LEFT 2
-#define NWZ_KEY_UP 3
-#define NWZ_KEY_DOWN 4
-#define NWZ_KEY_ZAPPIN 5
-#define NWZ_KEY_AD0_6 6
-#define NWZ_KEY_AD0_7 7
-/* special "key" when event is for bitmap key, like HOLD */
-#define NWZ_KEY_NONE 15
-#define NWZ_KEY_VOL_DOWN 16
-#define NWZ_KEY_VOL_UP 17
-#define NWZ_KEY_BACK 18
-#define NWZ_KEY_OPTION 19
-#define NWZ_KEY_BT 20
-#define NWZ_KEY_AD1_5 21
-#define NWZ_KEY_AD1_6 22
-#define NWZ_KEY_AD1_7 23
-
-/* bitmap of other things */
-#define NWZ_KEY_NMLHP_MASK 0x20
-#define NWZ_KEY_NCHP_MASK 0x40
-#define NWZ_KEY_HOLD_MASK 0x80
-#define NWZ_KEY_NC_MASK 0x100
-
-#endif /* __NWZ_KEYS_H__ */
diff --git a/utils/nwztools/plattools/nwz_lib.c b/utils/nwztools/plattools/nwz_lib.c
deleted file mode 100644
index a81d352ff0..0000000000
--- a/utils/nwztools/plattools/nwz_lib.c
+++ /dev/null
@@ -1,777 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_db.h"
-
-int nwz_run(const char *file, const char *args[], bool wait)
-{
- pid_t child_pid = fork();
- if(child_pid != 0)
- {
- if(wait)
- {
- int status;
- waitpid(child_pid, &status, 0);
- return status;
- }
- else
- return 0;
- }
- else
- {
- execvp(file, (char * const *)args);
- _exit(1);
- }
-}
-
-char *nwz_run_pipe(const char *file, const char *args[], int *status)
-{
- int pipe_fds[2];
- pipe(pipe_fds);
- pid_t child_pid = fork();
- if(child_pid == 0)
- {
- dup2(pipe_fds[1], 1); /* redirect stdout */
- dup2(pipe_fds[1], 2); /* redirect stderr */
- close(pipe_fds[0]); /* close reading */
- close(pipe_fds[1]); /* close writing */
- execvp(file, (char * const *)args);
- _exit(1);
- }
- else
- {
- close(pipe_fds[1]); /* close writing */
- char buffer[1024];
- char *output = malloc(1);
- ssize_t count;
- size_t size = 0;
- while((count = read(pipe_fds[0], buffer, sizeof(buffer))) > 0)
- {
- output = realloc(output, size + count + 1);
- memcpy(output + size, buffer, count);
- size += count;
- }
- close(pipe_fds[0]);
- output[size] = 0;
- waitpid(child_pid, status, 0);
- return output;
- }
-}
-
-void nwz_lcdmsg(bool clear, int x, int y, const char *msg)
-{
- const char *path_lcdmsg = "/usr/local/bin/lcdmsg";
- const char *args[16];
- int index = 0;
- char locate[32];
- args[index++] = "lcdmsg";
- if(clear)
- args[index++] = "-c";
- args[index++] = "-f";
- args[index++] = "/usr/local/bin/font_08x12.bmp";
- args[index++] = "-l";
- sprintf(locate, "%d,%d", x, y);
- args[index++] = locate;
- args[index++] = msg;
- args[index++] = NULL;
- /* wait for lcdmsg to finish to avoid any race conditions in framebuffer
- * accesses */
- nwz_run(path_lcdmsg, args, true);
-}
-
-void nwz_lcdmsgf(bool clear, int x, int y, const char *format, ...)
-{
- char buffer[1024];
- va_list args;
- va_start(args, format);
- vsprintf(buffer, format, args);
- va_end(args);
- nwz_lcdmsg(clear, x, y, buffer);
-}
-
-#define NWZ_COLOR_RGB(col) \
- NWZ_COLOR_RED(col), NWZ_COLOR_GREEN(col), NWZ_COLOR_BLUE(col)
-
-void nwz_display_clear(nwz_color_t color)
-{
- const char *path_display = "/usr/local/bin/display";
- const char *args[16];
- int index = 0;
- char col[32];
- args[index++] = "display";
- args[index++] = "lcd";
- args[index++] = "clear";
- sprintf(col, "%d,%d,%d", NWZ_COLOR_RGB(color));
- args[index++] = col;
- args[index++] = NULL;
- /* wait for lcdmsg to finish to avoid any race conditions in framebuffer
- * accesses */
- nwz_run(path_display, args, true);
-}
-
-void nwz_display_text(int x, int y, bool big_font, nwz_color_t foreground_col,
- nwz_color_t background_col, int alpha, const char *text)
-{
- const char *path_display = "/usr/local/bin/display";
- const char *args[16];
- int index = 0;
- char fg[32],bg[32], pos[32], transp[16];
- args[index++] = "display";
- args[index++] = "lcd";
- args[index++] = "text";
- sprintf(pos, "%d,%d", x, y);
- args[index++] = pos;
- if(big_font)
- args[index++] = "/usr/local/bin/font_14x24.bmp";
- else
- args[index++] = "/usr/local/bin/font_08x12.bmp";
- sprintf(fg, "%d,%d,%d", NWZ_COLOR_RGB(foreground_col));
- args[index++] = fg;
- sprintf(bg, "%d,%d,%d", NWZ_COLOR_RGB(background_col));
- args[index++] = bg;
- sprintf(transp, "%d", alpha);
- args[index++] = transp;
- args[index++] = text;
- args[index++] = NULL;
- /* wait for lcdmsg to finish to avoid any race conditions in framebuffer
- * accesses */
- nwz_run(path_display, args, true);
-}
-
-void nwz_display_text_center(int width, int y, bool big_font, nwz_color_t fg,
- nwz_color_t bg, int alpha, const char *text)
-{
- int txt_w = NWZ_FONT_W(big_font) * strlen(text);
- nwz_display_text((width - txt_w) / 2, y, big_font, fg, bg, alpha, text);
-}
-
-void nwz_display_textf(int x, int y, bool big_font, nwz_color_t foreground_col,
- nwz_color_t background_col, int alpha, const char *fmt, ...)
-{
- char buffer[1024];
- va_list args;
- va_start(args, fmt);
- vsprintf(buffer, fmt, args);
- va_end(args);
- nwz_display_text(x, y, big_font, foreground_col, background_col, alpha, buffer);
-}
-
-void nwz_display_textf_center(int width, int y, bool big_font, nwz_color_t fg,
- nwz_color_t bg, int alpha, const char *fmt, ...)
-{
- char buffer[1024];
- va_list args;
- va_start(args, fmt);
- vsprintf(buffer, fmt, args);
- va_end(args);
- nwz_display_text_center(width, y, big_font, fg, bg, alpha, buffer);
-}
-
-void nwz_display_bitmap(int x, int y, const char *file, int left, int top,
- int width, int height, nwz_color_t key_col, int bmp_alpha)
-{
- const char *path_display = "/usr/local/bin/display";
- const char *args[16];
- int index = 0;
- char pos[32], topleft[32], dim[32], key[32], transp[16];
- args[index++] = "display";
- args[index++] = "lcd";
- args[index++] = "bitmap";
- sprintf(pos, "%d,%d", x, y);
- args[index++] = pos;
- args[index++] = file;
- sprintf(topleft, "%d,%d", left, top);
- args[index++] = topleft;
- sprintf(dim, "%d,%d", width, height);
- args[index++] = dim;
- if(key_col == NWZ_COLOR_NO_KEY)
- sprintf(key, "no");
- else
- sprintf(key, "%d,%d,%d", NWZ_COLOR_RGB(key_col));
- args[index++] = key;
- sprintf(transp, "%d", bmp_alpha);
- args[index++] = transp;
- args[index++] = NULL;
- /* wait for lcdmsg to finish to avoid any race conditions in framebuffer
- * accesses */
- nwz_run(path_display, args, true);
-}
-
-int nwz_input_open(const char *requested_name)
-{
- /* try all /dev/input/eventX, there can't a lot of them */
- for(int index = 0; index < 8; index++)
- {
- char buffer[32];
- sprintf(buffer, "/dev/input/event%d", index);
- int fd = open(buffer, O_RDWR);
- if(fd < 0)
- continue; /* try next one */
- /* query name */
- char name[256];
- if(ioctl(fd, EVIOCGNAME(sizeof(name)), name) >= 0 &&
- strcmp(name, requested_name) == 0)
- return fd;
- close(fd);
- }
- return -1;
-}
-
-int nwz_key_open(void)
-{
- return nwz_input_open(NWZ_KEY_NAME);
-}
-
-void nwz_key_close(int fd)
-{
- close(fd);
-}
-
-int nwz_key_get_hold_status(int fd)
-{
- unsigned long led_hold = 0;
- if(ioctl(fd, EVIOCGLED(sizeof(led_hold)), &led_hold) < 0)
- return -1;
- return led_hold;
-}
-
-int nwz_key_wait_event(int fd, long tmo_us)
-{
- return nwz_wait_fds(&fd, 1, tmo_us);
-}
-
-int nwz_key_read_event(int fd, struct input_event *evt)
-{
- int ret = read(fd, evt, sizeof(struct input_event));
- if(ret != sizeof(struct input_event))
- return -1;
- return 1;
-}
-
-int nwz_key_event_get_keycode(struct input_event *evt)
-{
- return evt->code & NWZ_KEY_MASK;
-}
-
-bool nwz_key_event_is_press(struct input_event *evt)
-{
- return evt->value == 0;
-}
-
-bool nwz_key_event_get_hold_status(struct input_event *evt)
-{
- return !!(evt->code & NWZ_KEY_HOLD_MASK);
-}
-
-static const char *nwz_keyname[NWZ_KEY_MASK + 1] =
-{
- [0 ... NWZ_KEY_MASK] = "unknown",
- [NWZ_KEY_PLAY] = "PLAY",
- [NWZ_KEY_RIGHT] = "RIGHT",
- [NWZ_KEY_LEFT] = "LEFT",
- [NWZ_KEY_UP] = "UP",
- [NWZ_KEY_DOWN] = "DOWN",
- [NWZ_KEY_ZAPPIN] = "ZAPPIN",
- [NWZ_KEY_AD0_6] = "AD0_6",
- [NWZ_KEY_AD0_7] = "AD0_7",
- [NWZ_KEY_NONE] = "NONE",
- [NWZ_KEY_VOL_DOWN] = "VOL DOWN",
- [NWZ_KEY_VOL_UP] = "VOL UP",
- [NWZ_KEY_BACK] = "BACK",
- [NWZ_KEY_OPTION] = "OPTION",
- [NWZ_KEY_BT] = "BT",
- [NWZ_KEY_AD1_5] = "AD1_5",
- [NWZ_KEY_AD1_6] = "AD1_6",
- [NWZ_KEY_AD1_7] = "AD1_7",
-};
-
-const char *nwz_key_get_name(int keycode)
-{
- if(keycode <0 || keycode > NWZ_KEY_MASK)
- return "invalid";
- else
- return nwz_keyname[keycode];
-}
-
-int nwz_fb_open(bool lcd)
-{
- return open(lcd ? NWZ_FB_LCD_DEV : NWZ_FB_TV_DEV, O_RDWR);
-}
-
-void nwz_fb_close(int fd)
-{
- close(fd);
-}
-
-int nwz_fb_get_brightness(int fd, struct nwz_fb_brightness *bl)
-{
- if(ioctl(fd, NWZ_FB_GET_BRIGHTNESS, bl) < 0)
- return -1;
- else
- return 1;
-}
-
-int nwz_fb_set_brightness(int fd, struct nwz_fb_brightness *bl)
-{
- if(ioctl(fd, NWZ_FB_SET_BRIGHTNESS, bl) < 0)
- return -1;
- else
- return 1;
-}
-
-int nwz_fb_set_page(int fd, int page)
-{
- /* set page mode to no transparency and no rotation */
- struct nwz_fb_image_info mode_info;
- mode_info.tc_enable = 0;
- mode_info.t_color = 0;
- mode_info.alpha = 0;
- mode_info.rot = 0;
- mode_info.page = page;
- mode_info.update = NWZ_FB_ONLY_2D_MODE;
- if(ioctl(fd, NWZ_FB_UPDATE, &mode_info) < 0)
- return -2;
- return 0;
-}
-
-int nwz_fb_set_standard_mode(int fd)
-{
- /* disable timer (apparently useless with LCD) */
- struct nwz_fb_update_timer update_timer;
- update_timer.timerflag = NWZ_FB_TIMER_OFF;
- update_timer.timeout = NWZ_FB_DEFAULT_TIMEOUT;
- if(ioctl(fd, NWZ_FB_UPDATE_TIMER, &update_timer) < 0)
- return -1;
- return nwz_fb_set_page(fd, 0);
-}
-
-int nwz_fb_get_resolution(int fd, int *x, int *y, int *bpp)
-{
- struct fb_var_screeninfo vinfo;
- if(ioctl(fd, FBIOGET_VSCREENINFO, &vinfo) < 0)
- return -1;
- if(x)
- *x = vinfo.xres;
- if(y)
- *y = vinfo.yres;
- if(bpp)
- *bpp = vinfo.bits_per_pixel;
- return 0;
-}
-
-void *nwz_fb_mmap(int fd, int offset, int size)
-{
- return mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, (off_t)offset);
-}
-
-int nwz_adc_open(void)
-{
- return open(NWZ_ADC_DEV, O_RDONLY);
-}
-
-void nwz_adc_close(int fd)
-{
- close(fd);
-}
-
-static const char *nwz_adc_name[] =
-{
- [NWZ_ADC_VCCBAT] = "VCCBAT",
- [NWZ_ADC_VCCVBUS] = "VCCVBUS",
- [NWZ_ADC_ADIN3] = "ADIN3",
- [NWZ_ADC_ADIN4] = "ADIN4",
- [NWZ_ADC_ADIN5] = "ADIN5",
- [NWZ_ADC_ADIN6] = "ADIN6",
- [NWZ_ADC_ADIN7] = "ADIN7",
- [NWZ_ADC_ADIN8] = "ADIN8",
-};
-
-const char *nwz_adc_get_name(int ch)
-{
- return nwz_adc_name[ch];
-}
-
-int nwz_adc_get_val(int fd, int ch)
-{
- unsigned char val;
- if(ioctl(fd, NWZ_ADC_GET_VAL(ch), &val) < 0)
- return -1;
- else
- return val;
-}
-
-int nwz_ts_open(void)
-{
- return nwz_input_open(NWZ_TS_NAME);
-}
-
-void nwz_ts_close(int fd)
-{
- close(fd);
-}
-
-int nwz_ts_state_init(int fd, struct nwz_ts_state_t *state)
-{
- memset(state, 0, sizeof(struct nwz_ts_state_t));
- struct input_absinfo info;
- if(ioctl(fd, EVIOCGABS(ABS_X), &info) < 0)
- return -1;
- state->max_x = info.maximum;
- if(ioctl(fd, EVIOCGABS(ABS_Y), &info) < 0)
- return -1;
- state->max_y = info.maximum;
- if(ioctl(fd, EVIOCGABS(ABS_PRESSURE), &info) < 0)
- return -1;
- state->max_pressure = info.maximum;
- if(ioctl(fd, EVIOCGABS(ABS_TOOL_WIDTH), &info) < 0)
- return -1;
- state->max_tool_width = info.maximum;
- return 1;
-}
-
-int nwz_ts_state_update(struct nwz_ts_state_t *state, struct input_event *evt)
-{
- switch(evt->type)
- {
- case EV_SYN:
- return 1;
- case EV_REL:
- if(evt->code == REL_RX)
- state->flick_x = evt->value;
- else if(evt->code == REL_RY)
- state->flick_y = evt->value;
- else
- return -1;
- state->flick = true;
- break;
- case EV_ABS:
- if(evt->code == ABS_X)
- state->x = evt->value;
- else if(evt->code == ABS_Y)
- state->y = evt->value;
- else if(evt->code == ABS_PRESSURE)
- state->pressure = evt->value;
- else if(evt->code == ABS_TOOL_WIDTH)
- state->tool_width = evt->value;
- else
- return -1;
- break;
- case EV_KEY:
- if(evt->code == BTN_TOUCH)
- state->touch = evt->value;
- else
- return -1;
- break;
- default:
- return -1;
- }
- return 0;
-}
-
-int nwz_ts_state_post_syn(struct nwz_ts_state_t *state)
-{
- state->flick = false;
- return 1;
-}
-
-int nwz_ts_read_events(int fd, struct input_event *evts, int nr_evts)
-{
- int ret = read(fd, evts, nr_evts * sizeof(struct input_event));
- if(ret < 0)
- return -1;
- return ret / sizeof(struct input_event);
-}
-
-long nwz_wait_fds(int *fds, int nr_fds, long tmo_us)
-{
- fd_set rfds;
- struct timeval tv;
- struct timeval *tv_ptr = NULL;
- /* watch the input device */
- FD_ZERO(&rfds);
- int max_fd = 0;
- for(int i = 0; i < nr_fds; i++)
- {
- FD_SET(fds[i], &rfds);
- if(fds[i] > max_fd)
- max_fd = fds[i];
- }
- /* setup timeout */
- if(tmo_us >= 0)
- {
- tv.tv_sec = 0;
- tv.tv_usec = tmo_us;
- tv_ptr = &tv;
- }
- int ret = select(max_fd + 1, &rfds, NULL, NULL, tv_ptr);
- if(ret <= 0)
- return ret;
- long bitmap = 0;
- for(int i = 0; i < nr_fds; i++)
- if(FD_ISSET(fds[i], &rfds))
- bitmap |= 1 << i;
- return bitmap;
-}
-
-int nwz_power_open(void)
-{
- return open(NWZ_POWER_DEV, O_RDWR);
-}
-
-void nwz_power_close(int fd)
-{
- close(fd);
-}
-
-int nwz_power_get_status(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_STATUS, &status) < 0)
- return -1;
- return status;
-}
-
-static int nwz_power_adval_to_mv(int adval, int ad_base)
-{
- if(adval == -1)
- return -1;
- /* the AD base corresponds to the millivolt value if adval was 255 */
- return (adval * ad_base) / 255;
-}
-
-int nwz_power_get_vbus_adval(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_VBUS_ADVAL, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_vbus_voltage(int fd)
-{
- return nwz_power_adval_to_mv(nwz_power_get_vbus_adval(fd), NWZ_POWER_AD_BASE_VBUS);
-}
-
-int nwz_power_get_vbus_limit(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_VBUS_LIMIT, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_charge_switch(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_CHARGE_SWITCH, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_charge_current(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_CHARGE_CURRENT, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_battery_gauge(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_BAT_GAUGE, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_battery_adval(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_BAT_ADVAL, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_battery_voltage(int fd)
-{
- return nwz_power_adval_to_mv(nwz_power_get_battery_adval(fd), NWZ_POWER_AD_BASE_VBAT);
-}
-
-int nwz_power_get_vbat_adval(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_VBAT_ADVAL, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_vbat_voltage(int fd)
-{
- return nwz_power_adval_to_mv(nwz_power_get_vbat_adval(fd), NWZ_POWER_AD_BASE_VBAT);
-}
-
-int nwz_power_get_sample_count(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_SAMPLE_COUNT, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_vsys_adval(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_VSYS_ADVAL, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_get_vsys_voltage(int fd)
-{
- return nwz_power_adval_to_mv(nwz_power_get_vsys_adval(fd), NWZ_POWER_AD_BASE_VSYS);
-}
-
-int nwz_power_get_acc_charge_mode(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_GET_ACCESSARY_CHARGE_MODE, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_power_is_fully_charged(int fd)
-{
- int status;
- if(ioctl(fd, NWZ_POWER_IS_FULLY_CHARGED, &status) < 0)
- return -1;
- return status;
-}
-
-int nwz_pminfo_open(void)
-{
- return open(NWZ_PMINFO_DEV, O_RDONLY);
-}
-
-void nwz_pminfo_close(int fd)
-{
- close(fd);
-}
-
-unsigned int nwz_pminfo_get_factor(int fd)
-{
- unsigned int val;
- if(ioctl(fd, NWZ_PMINFO_GET_FACTOR, &val) < 0)
- return 0;
- else
- return val;
-}
-
-static unsigned long find_model_id(void)
-{
- /* try with the environment variable */
- const char *mid = getenv("ICX_MODEL_ID");
- if(mid == NULL)
- return 0;
- char *end;
- unsigned long v = strtoul(mid, &end, 0);
- if(*end)
- return 0;
- else
- return v;
-}
-
-unsigned long nwz_get_model_id(void)
-{
- static unsigned long model_id = 0xffffffff;
- if(model_id == 0xffffffff)
- model_id = find_model_id();
- return model_id;
-}
-
-const char *nwz_get_model_name()
-{
- for(int i = 0; i < NWZ_MODEL_COUNT; i++)
- if(nwz_model[i].mid == nwz_get_model_id())
- return nwz_model[i].name;
- return NULL;
-}
-
-static int find_series(void)
-{
- for(int i = 0; i < NWZ_SERIES_COUNT; i++)
- for(int j = 0; j < nwz_series[i].mid_count; j++)
- if(nwz_series[i].mid[j] == nwz_get_model_id())
- return i;
- return -1;
-}
-
-int nwz_get_series(void)
-{
- static int series = -2;
- if(series == -2)
- series = find_series();
- return series;
-}
-
-static nwz_nvp_index_t *get_nvp_index(void)
-{
- static nwz_nvp_index_t *index = 0;
- if(index == 0)
- {
- int series = nwz_get_series();
- index = series < 0 ? 0 : nwz_series[series].nvp_index;
- }
- return index;
-}
-
-int nwz_nvp_read(enum nwz_nvp_node_t node, void *data)
-{
- int size = nwz_nvp[node].size;
- if(data == 0)
- return size;
- nwz_nvp_index_t *index = get_nvp_index();
- if(index == 0 || (*index)[node] == NWZ_NVP_INVALID)
- return -1;
- char nvp_path[32];
- snprintf(nvp_path, sizeof(nvp_path), "/dev/icx_nvp/%03d", (*index)[node]);
- int fd = open(nvp_path, O_RDONLY);
- if(fd < 0)
- return -1;
- int cnt = read(fd, data, size);
- close(fd);
- return cnt == size ? size : -1;
-}
-
-int nwz_nvp_write(enum nwz_nvp_node_t node, void *data)
-{
- int size = nwz_nvp[node].size;
- nwz_nvp_index_t *index = get_nvp_index();
- if(index == 0 || (*index)[node] == NWZ_NVP_INVALID)
- return -1;
- char nvp_path[32];
- snprintf(nvp_path, sizeof(nvp_path), "/dev/icx_nvp/%03d", (*index)[node]);
- int fd = open(nvp_path, O_WRONLY);
- if(fd < 0)
- return -1;
- int cnt = write(fd, data, size);
- close(fd);
- return cnt == size ? 0 : -1;
-}
diff --git a/utils/nwztools/plattools/nwz_lib.h b/utils/nwztools/plattools/nwz_lib.h
deleted file mode 100644
index 23bb80986d..0000000000
--- a/utils/nwztools/plattools/nwz_lib.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef _NWZLIB_H_
-#define _NWZLIB_H_
-
-#include <stdio.h>
-#include <stdbool.h>
-#include <stdarg.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <linux/input.h>
-#include <linux/fb.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/mman.h>
-
-#include "nwz_keys.h"
-#include "nwz_fb.h"
-#include "nwz_adc.h"
-#include "nwz_ts.h"
-#include "nwz_power.h"
-#include "nwz_db.h"
-
-/* get model ID, either from ICX_MODEL_ID env var or using nvpflag, return 0
- * in case of error; note that the result is cached so this function is only
- * expensive the first time it is called */
-unsigned long nwz_get_model_id(void);
-/* get series (index into nwz_series, or -1 on error) */
-int nwz_get_series(void);
-/* get model name, or null on error */
-const char *nwz_get_model_name(void);
-
-/* run a program and exit with nonzero status in case of error
- * argument list must be NULL terminated */
-int nwz_run(const char *file, const char *args[], bool wait);
-/* run a program and return program output */
-char *nwz_run_pipe(const char *file, const char *args[], int *status);
-
-/* invoke /usr/local/bin/lcdmsg to display a message using the small font, optionally
- * clearing the screen before */
-void nwz_lcdmsg(bool clear, int x, int y, const char *msg);
-void nwz_lcdmsgf(bool clear, int x, int y, const char *format, ...);
-/* invoke /usr/local/bin/display to do various things:
- * - clear screen
- * - display text
- * - display bitmap
- * Currently all operations are performed on the LCD only.
- * The small text font is 8x12 and the big one is 14x24 */
-typedef int nwz_color_t;
-#define NWZ_COLOR(r, g, b) /* each component between 0 and 255 */ \
- ((r) << 16 | (g) << 8 | (b))
-#define NWZ_COLOR_RED(col) ((col) >> 16)
-#define NWZ_COLOR_GREEN(col) (((col) >> 8) & 0xff)
-#define NWZ_COLOR_BLUE(col) ((col) & 0xff)
-#define NWZ_COLOR_NO_KEY (1 << 24)
-
-#define NWZ_FONT_W(big_font) ((big_font) ? 14 : 8)
-#define NWZ_FONT_H(big_font) ((big_font) ? 24 : 14)
-
-void nwz_display_clear(nwz_color_t color);
-void nwz_display_text(int x, int y, bool big_font, nwz_color_t foreground_col,
- nwz_color_t background_col, int background_alpha, const char *text);
-void nwz_display_text_center(int width, int y, bool big_font, nwz_color_t foreground_col,
- nwz_color_t background_col, int background_alpha, const char *text);
-void nwz_display_textf(int x, int y, bool big_font, nwz_color_t foreground_col,
- nwz_color_t background_col, int background_alpha, const char *fmt, ...);
-void nwz_display_textf_center(int width, int y, bool big_font, nwz_color_t foreground_col,
- nwz_color_t background_col, int background_alpha, const char *fmt, ...);
-void nwz_display_bitmap(int x, int y, const char *file, int left, int top,
- int width, int height, nwz_color_t key, int bmp_alpha);
-
-/* open icx_key input device and return file descriptor */
-int nwz_key_open(void);
-void nwz_key_close(int fd);
-/* return HOLD status: 0 or 1, or -1 on error */
-int nwz_key_get_hold_status(int fd);
-/* wait for an input event (and return 1), or a timeout (return 0), or error (-1)
- * set the timeout to -1 to block */
-int nwz_key_wait_event(int fd, long tmo_us);
-/* read an event from the device (may block unless you waited for an event before),
- * return 1 on success, <0 on error */
-int nwz_key_read_event(int fd, struct input_event *evt);
-/* return keycode from event */
-int nwz_key_event_get_keycode(struct input_event *evt);
-/* return press/released status from event */
-bool nwz_key_event_is_press(struct input_event *evt);
-/* return HOLD status from event */
-bool nwz_key_event_get_hold_status(struct input_event *evt);
-/* get keycode name */
-const char *nwz_key_get_name(int keycode);
-
-/* open framebuffer device */
-int nwz_fb_open(bool lcd);
-/* close framebuffer device */
-void nwz_fb_close(int fb);
-/* get screen resolution, parameters are allowed to be NULL */
-int nwz_fb_get_resolution(int fd, int *x, int *y, int *bpp);
-/* get backlight brightness (return -1 on error, 1 on success) */
-int nwz_fb_get_brightness(int fd, struct nwz_fb_brightness *bl);
-/* set backlight brightness (return -1 on error, 1 on success) */
-int nwz_fb_set_brightness(int fd, struct nwz_fb_brightness *bl);
-/* setup framebuffer to its standard mode: LCD output, page 0, no transparency
- * and no rotation, 2D only updates */
-int nwz_fb_set_standard_mode(int fd);
-/* change framebuffer page and update screen */
-int nwz_fb_set_page(int fd, int page);
-/* map framebuffer */
-void *nwz_fb_mmap(int fd, int offset, int size);
-
-/* open adc device */
-int nwz_adc_open(void);
-/* close adc device */
-void nwz_adc_close(int fd);
-/* get channel name */
-const char *nwz_adc_get_name(int ch);
-/* read channel value, return -1 on error */
-int nwz_adc_get_val(int fd, int ch);
-
-/* open touchscreen device */
-int nwz_ts_open(void);
-/* close touchscreen device */
-void nwz_ts_close(int fd);
-/* structure to track touch state */
-struct nwz_ts_state_t
-{
- int x, y; /* current position (valid is touch is true) */
- int max_x, max_y; /* maximum possible values */
- int pressure, tool_width; /* current pressure and tool width */
- int max_pressure, max_tool_width; /* maximum possible values */
- bool touch; /* is the user touching the screen? */
- bool flick; /* was the action a flick? */
- int flick_x, flick_y; /* if so, this is the flick direction */
-};
-/* get touchscreen information and init state, return -1 on error, 1 on success */
-int nwz_ts_state_init(int fd, struct nwz_ts_state_t *state);
-/* update state with an event, return -1 on unhandled event, >=0 on handled:
- * 1 if sync event, 0 otherwise */
-int nwz_ts_state_update(struct nwz_ts_state_t *state, struct input_event *evt);
-/* update state after a sync event to prepare for next round of events */
-int nwz_ts_state_post_syn(struct nwz_ts_state_t *state);
-/* read at most N events from touch screen, and return the number of events */
-int nwz_ts_read_events(int fd, struct input_event *evts, int nr_evts);
-
-/* wait for events on several file descriptors, return a bitmap of active ones
- * or 0 on timeout, the timeout can be -1 to block */
-long nwz_wait_fds(int *fds, int nr_fds, long timeout_us);
-
-/* open power device */
-int nwz_power_open(void);
-/* close power device */
-void nwz_power_close(int fd);
-/* get power status (return -1 on error, bitmap on success) */
-int nwz_power_get_status(int fd);
-/* get vbus adval (or -1 on error) */
-int nwz_power_get_vbus_adval(int fd);
-/* get vbus voltage in mV (or -1 on error) */
-int nwz_power_get_vbus_voltage(int fd);
-/* get vbus current limit (or -1 on error) */
-int nwz_power_get_vbus_limit(int fd);
-/* get charge switch (or -1 on error) */
-int nwz_power_get_charge_switch(int fd);
-/* get charge current (or -1 on error) */
-int nwz_power_get_charge_current(int fd);
-/* get battery gauge (or -1 on error) */
-int nwz_power_get_battery_gauge(int fd);
-/* get battery adval (or -1 on error) */
-int nwz_power_get_battery_adval(int fd);
-/* get battery voltage in mV (or -1 on error) */
-int nwz_power_get_battery_voltage(int fd);
-/* get vbat adval (or -1 on error) */
-int nwz_power_get_vbat_adval(int fd);
-/* get vbat voltage (or -1 on error) */
-int nwz_power_get_vbat_voltage(int fd);
-/* get sample count (or -1 on error) */
-int nwz_power_get_sample_count(int fd);
-/* get vsys adval (or -1 on error) */
-int nwz_power_get_vsys_adval(int fd);
-/* get vsys voltage in mV (or -1 on error) */
-int nwz_power_get_vsys_voltage(int fd);
-/* get accessory charge mode */
-int nwz_power_get_acc_charge_mode(int fd);
-/* is battery fully charged? (or -1 on error) */
-int nwz_power_is_fully_charged(int fd);
-
-/* open pminfo device */
-int nwz_pminfo_open(void);
-/* close pminfo device */
-void nwz_pminfo_close(int fd);
-/* get pminfo factor (or 0 on error) */
-unsigned int nwz_pminfo_get_factor(int fd);
-
-/* read a nvp node and return its size, if the data pointer is null, then simply
- * return the size, return -1 on error */
-int nwz_nvp_read(enum nwz_nvp_node_t node, void *data);
-/* write a nvp node, return 0 on success and -1 on error, the size of the buffer
- * must be the one returned by nwz_nvp_read */
-int nwz_nvp_write(enum nwz_nvp_node_t node, void *data);
-
-
-#endif /* _NWZLIB_H_ */
diff --git a/utils/nwztools/plattools/nwz_plattools.h b/utils/nwztools/plattools/nwz_plattools.h
deleted file mode 100644
index 56d584ce30..0000000000
--- a/utils/nwztools/plattools/nwz_plattools.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2011 by Amaury Pouly
- *
- * Based on Rockbox iriver bootloader by Linus Nielsen Feltzing
- * and the ipodlinux bootloader by Daniel Palffy and Bernard Leach
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __NWZ_PLATTOOLS_H__
-#define __NWZ_PLATTOOLS_H__
-
-/** Platform tools can be either built individually, or be included in a
- * single build (or even dualboot code) for easy testing. Thus, each tool must
- * use the following macros to support all scenarios. */
-
-#ifdef NWZ_EMBED_TOOLS
-#define NWZ_TOOL_MAIN(tool) tool##_main
-#else
-#define NWZ_TOOL_MAIN(tool) main
-#endif
-
-#endif /* __NWZ_PLATTOOLS_H__ */
diff --git a/utils/nwztools/plattools/nwz_power.h b/utils/nwztools/plattools/nwz_power.h
deleted file mode 100644
index 7b325ce047..0000000000
--- a/utils/nwztools/plattools/nwz_power.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __NWZ_POWER_H__
-#define __NWZ_POWER_H__
-
-/** power */
-
-#define NWZ_POWER_DEV "/dev/icx_power"
-
-#define NWZ_POWER_TYPE 'P'
-
-/* ioctl request */
-#define NWZ_POWER_GET_STATUS _IOR(NWZ_POWER_TYPE, 0, int *)
-#define NWZ_POWER_SET_VBUS_LIMIT _IOW(NWZ_POWER_TYPE, 1, int *)
-#define NWZ_POWER_GET_BAT_ADVAL _IOR(NWZ_POWER_TYPE, 2, int *)
-#define NWZ_POWER_GET_BAT_GAUGE _IOR(NWZ_POWER_TYPE, 3, int *)
-#define NWZ_POWER_ENABLE_CHARGER _IOW(NWZ_POWER_TYPE, 4, int *)
-#define NWZ_POWER_ENABLE_DEBUG_PORT _IO (NWZ_POWER_TYPE, 5)
-#define NWZ_POWER_IS_FULLY_CHARGED _IOR(NWZ_POWER_TYPE, 6, int *)
-#define NWZ_POWER_AVG_VALUE _IO (NWZ_POWER_TYPE, 7)
-#define NWZ_POWER_CONSIDERATION_CHARGE _IOW(NWZ_POWER_TYPE, 8, int)
-#define NWZ_POWER_GET_VBUS_LIMIT _IOR(NWZ_POWER_TYPE, 9, int *)
-#define NWZ_POWER_GET_CHARGE_SWITCH _IOR(NWZ_POWER_TYPE,10, int *)
-#define NWZ_POWER_GET_SAMPLE_COUNT _IOR(NWZ_POWER_TYPE,11, int *)
-#define NWZ_POWER_SET_CHARGE_CURRENT _IOW(NWZ_POWER_TYPE,12, int *)
-#define NWZ_POWER_GET_CHARGE_CURRENT _IOR(NWZ_POWER_TYPE,13, int *)
-#define NWZ_POWER_GET_VBUS_ADVAL _IOR(NWZ_POWER_TYPE,14, int *)
-#define NWZ_POWER_GET_VSYS_ADVAL _IOR(NWZ_POWER_TYPE,15, int *)
-#define NWZ_POWER_GET_VBAT_ADVAL _IOR(NWZ_POWER_TYPE,16, int *)
-#define NWZ_POWER_CHG_VBUS_LIMIT _IOW(NWZ_POWER_TYPE,17, int *)
-#define NWZ_POWER_SET_ACCESSARY_CHARGE_MODE _IOW(NWZ_POWER_TYPE,18, int *)
-#define NWZ_POWER_GET_ACCESSARY_CHARGE_MODE _IOR(NWZ_POWER_TYPE,19, int *)
-
-/* NWZ_POWER_GET_STATUS bitmap */
-#define NWZ_POWER_STATUS_CHARGE_INIT 0x100 /* initializing charging */
-#define NWZ_POWER_STATUS_CHARGE_STATUS 0x0c0 /* charging status mask */
-#define NWZ_POWER_STATUS_VBUS_DET 0x020 /* vbus detected */
-#define NWZ_POWER_STATUS_AC_DET 0x010 /* ac adapter detected */
-#define NWZ_POWER_STATUS_CHARGE_LOW 0x001 /* full voltage of 4.1 instead of 4.2 */
-/* NWZ_POWER_STATUS_CHARGING_MASK value */
-#define NWZ_POWER_STATUS_CHARGE_STATUS_CHARGING 0xc0
-#define NWZ_POWER_STATUS_CHARGE_STATUS_SUSPEND 0x80
-#define NWZ_POWER_STATUS_CHARGE_STATUS_TIMEOUT 0x40
-#define NWZ_POWER_STATUS_CHARGE_STATUS_NORMAL 0x00
-
-/* base values to convert from adval to mV (represents mV for adval of 255) */
-#define NWZ_POWER_AD_BASE_VBAT 4664
-#define NWZ_POWER_AD_BASE_VBUS 7254
-#define NWZ_POWER_AD_BASE_VSYS 5700
-
-/* battery gauge */
-#define NWZ_POWER_BAT_NOBAT -100 /* no battery */
-#define NWZ_POWER_BAT_VERYLOW -99 /* very low */
-#define NWZ_POWER_BAT_LOW 0 /* low */
-#define NWZ_POWER_BAT_GAUGE0 1 /* ____ */
-#define NWZ_POWER_BAT_GAUGE1 2 /* O___ */
-#define NWZ_POWER_BAT_GAUGE2 3 /* OO__ */
-#define NWZ_POWER_BAT_GAUGE3 4 /* OOO_ */
-#define NWZ_POWER_BAT_GAUGE4 5 /* OOOO */
-
-/* NWZ_POWER_GET_ACCESSARY_CHARGE_MODE */
-#define NWZ_POWER_ACC_CHARGE_NONE 0
-#define NWZ_POWER_ACC_CHARGE_VBAT 1
-#define NWZ_POWER_ACC_CHARGE_VSYS 2
-
-/** pminfo
- *
- * This driver seems to collect the state of the device on boot. Thus one
- * can know if a key was pressed when booting for example.
- */
-
-#define NWZ_PMINFO_DEV "/dev/icx_pminfo"
-
-#define NWZ_PMINFO_TYPE 'b'
-
-/* ioctl request */
-
-#define NWZ_PMINFO_GET_FACTOR _IOR(NWZ_PMINFO_TYPE, 0, unsigned int *)
-#define NWZ_PMINFO_CLR_DETRSTFLG _IO(NWZ_PMINFO_TYPE, 1)
-
-/* NWZ_PMINFO_GET_FACTOR bitmap
- * WARNING this information may not apply to all players and some bits do not
- * exists on some players */
-#define ICX_PMINFO_FACTOR_RTC_WAL 0x20000000 /* RTC Weekly Alarm */
-#define ICX_PMINFO_FACTOR_RTC_DAL 0x10000000 /* RTC Daily Alarm */
-#define ICX_PMINFO_FACTOR_VBUS 0x08000000 /* VBUS in/out */
-#define ICX_PMINFO_FACTOR_DC_POWER 0x04000000 /* AC Adaptor in/out */
-#define ICX_PMINFO_FACTOR_USB_WAKE 0x01000000 /* USB Wake */
-#define ICX_PMINFO_FACTOR_CHARGE 0x00400000 /* Charge */
-#define ICX_PMINFO_FACTOR_CRADLE 0x00080000 /* Cradle in/out */
-#define ICX_PMINFO_FACTOR_AB_EV 0x00008000 /* ab event */
-#define ICX_PMINFO_FACTOR_NC_SW 0x00004000 /* nc switch */
-#define ICX_PMINFO_FACTOR_HOLD_SW 0x00002000 /* hold switch */
-#define ICX_PMINFO_FACTOR_KEY_PAD 0x00001000 /* keypad */
-#define ICX_PMINFO_FACTOR_KEY_CODE 0x00000FFF /* keycode */
-
-#endif /* __NWZ_POWER_H__ */
diff --git a/utils/nwztools/plattools/nwz_ts.h b/utils/nwztools/plattools/nwz_ts.h
deleted file mode 100644
index 4528609ddc..0000000000
--- a/utils/nwztools/plattools/nwz_ts.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __NWZ_TS_H__
-#define __NWZ_TS_H__
-
-#define NWZ_TS_NAME "icx_touch_screen"
-
-/* How touchscreen works:
- *
- * The touchscreen uses mostly the standard linux protocol, reporting ABS_X,
- * ABS_Y, ABS_PRESSURE, TOOL_WIDTH and BTN_TOUCH with SYN to synchronize. The
- * only nonstandard part is the use of REL_RX and REL_RY to report "flick"
- * detection by the hardware. */
-
-#endif /* __NWZ_TS_H__ */
-
-
diff --git a/utils/nwztools/plattools/test_adc.c b/utils/nwztools/plattools/test_adc.c
deleted file mode 100644
index 31b685c43e..0000000000
--- a/utils/nwztools/plattools/test_adc.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-
-int NWZ_TOOL_MAIN(test_adc)(int argc, char **argv)
-{
- /* clear screen and display welcome message */
- nwz_lcdmsg(true, 0, 0, "test_adc");
- nwz_lcdmsg(false, 0, 2, "BACK: quit");
- /* open input device */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- nwz_lcdmsg(false, 3, 4, "Cannot open input device");
- sleep(2);
- return 1;
- }
- /* open adc device */
- int adc_fd = nwz_adc_open();
- if(adc_fd < 0)
- {
- nwz_key_close(input_fd);
- nwz_lcdmsg(false, 3, 4, "Cannot open adc device");
- sleep(2);
- return 1;
- }
- /* display input state in a loop */
- while(1)
- {
- /* print channels */
- for(int i = NWZ_ADC_MIN_CHAN; i <= NWZ_ADC_MAX_CHAN; i++)
- nwz_lcdmsgf(false, 1, 4 + i, "%s: %d ", nwz_adc_get_name(i),
- nwz_adc_get_val(adc_fd, i));
- /* wait for event (10ms) */
- int ret = nwz_key_wait_event(input_fd, 10000);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- if(nwz_key_event_get_keycode(&evt) == NWZ_KEY_BACK && !nwz_key_event_is_press(&evt))
- break;
- }
- /* finish nicely */
- nwz_key_close(input_fd);
- nwz_adc_close(adc_fd);
- return 0;
-}
diff --git a/utils/nwztools/plattools/test_bl.c b/utils/nwztools/plattools/test_bl.c
deleted file mode 100644
index 594cbbd377..0000000000
--- a/utils/nwztools/plattools/test_bl.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-
-int NWZ_TOOL_MAIN(test_bl)(int argc, char **argv)
-{
- /* clear screen and display welcome message */
- nwz_lcdmsg(true, 0, 0, "test_bl");
- nwz_lcdmsg(false, 0, 2, "LEFT/RIGHT: level");
- nwz_lcdmsg(false, 0, 3, "UP/DOWN: step");
- nwz_lcdmsg(false, 0, 4, "VOL UP/DOWN: period");
- nwz_lcdmsg(false, 0, 5, "BACK: quit");
- /* open input and framebuffer device */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- nwz_lcdmsg(false, 3, 7, "Cannot open input device");
- sleep(2);
- return 1;
- }
- int fb_fd = nwz_fb_open(true);
- if(fb_fd < 0)
- {
- nwz_key_close(input_fd);
- nwz_lcdmsg(false, 3, 7, "Cannot open framebuffer device");
- sleep(2);
- return 1;
- }
- /* display input state in a loop */
- while(1)
- {
- struct nwz_fb_brightness bl;
- if(nwz_fb_get_brightness(fb_fd, &bl) == 1)
- {
- nwz_lcdmsgf(false, 1, 7, "level: %d ", bl.level);
- nwz_lcdmsgf(false, 1, 8, "step: %d ", bl.step);
- nwz_lcdmsgf(false, 1, 9, "period: %d ", bl.period);
- }
- /* wait for event */
- int ret = nwz_key_wait_event(input_fd, -1);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- int code = nwz_key_event_get_keycode(&evt);
- bool press = nwz_key_event_is_press(&evt);
- /* only act on release */
- if(press)
- continue;
- if(code == NWZ_KEY_BACK)
- break; /* quit */
- bool change_bl = false;
- if(code == NWZ_KEY_RIGHT && bl.level < NWZ_FB_BL_MAX_LEVEL)
- {
- change_bl = true;
- bl.level++;
- }
- else if(code == NWZ_KEY_LEFT && bl.level > NWZ_FB_BL_MIN_LEVEL)
- {
- change_bl = true;
- bl.level--;
- }
- else if(code == NWZ_KEY_UP && bl.step < NWZ_FB_BL_MAX_STEP)
- {
- change_bl = true;
- bl.step++;
- }
- else if(code == NWZ_KEY_DOWN && bl.step > NWZ_FB_BL_MIN_STEP)
- {
- change_bl = true;
- bl.step--;
- }
- else if(code == NWZ_KEY_VOL_UP && bl.period < 100) /* artificial bound on period */
- {
- change_bl = true;
- bl.period++;
- }
- else if(code == NWZ_KEY_VOL_DOWN && bl.period > NWZ_FB_BL_MIN_PERIOD)
- {
- change_bl = true;
- bl.period--;
- }
- /* change bl */
- if(change_bl)
- nwz_fb_set_brightness(fb_fd, &bl);
- }
- /* close input device */
- nwz_key_close(input_fd);
- nwz_fb_close(fb_fd);
- /* finish nicely */
- return 0;
-}
diff --git a/utils/nwztools/plattools/test_display.c b/utils/nwztools/plattools/test_display.c
deleted file mode 100644
index b05b246b6f..0000000000
--- a/utils/nwztools/plattools/test_display.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-
-int NWZ_TOOL_MAIN(test_display)(int argc, char **argv)
-{
- /* clear screen and display welcome message */
- nwz_display_clear(NWZ_COLOR(128, 128, 0));
- nwz_display_text(0, 0, true, NWZ_COLOR(255, 0, 0), NWZ_COLOR(0, 0, 255), 0,
- "Hello");
- nwz_display_text(0, 30, false, NWZ_COLOR(255, 0, 0), NWZ_COLOR(0, 0, 255), 128,
- "BACK: quit");
- nwz_display_text(0, 50, false, NWZ_COLOR(255, 0, 0), NWZ_COLOR(0, 0, 255), 255,
- "BACK: quit");
- /* display /contents/display.bmp if any */
- const char *bmp_fname = "/contents/display.bmp";
- if(access(bmp_fname, R_OK) != -1)
- {
- nwz_display_bitmap(10, 70, bmp_fname, 0, 0, 200, 200, NWZ_COLOR_NO_KEY, 255);
- }
- else
- {
- nwz_display_text(0, 70, false, NWZ_COLOR(255, 0, 0), NWZ_COLOR(0, 0, 0), 0,
- "Cannot find display.bmp");
- }
- /* wait for key */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- sleep(2);
- return 1;
- }
- while(1)
- {
- /* wait for event */
- int ret = nwz_key_wait_event(input_fd, 1000000);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- /* handle quit */
- if(nwz_key_event_get_keycode(&evt) == NWZ_KEY_BACK && !nwz_key_event_is_press(&evt))
- break;
- }
- nwz_key_close(input_fd);
- return 0;
-}
diff --git a/utils/nwztools/plattools/test_fb.c b/utils/nwztools/plattools/test_fb.c
deleted file mode 100644
index 77e8d4e497..0000000000
--- a/utils/nwztools/plattools/test_fb.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2011 by Amaury Pouly
- *
- * Based on Rockbox iriver bootloader by Linus Nielsen Feltzing
- * and the ipodlinux bootloader by Daniel Palffy and Bernard Leach
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-#include <linux/fb.h>
-#include <stdint.h>
-#include <sys/mman.h>
-
-static struct fb_fix_screeninfo finfo;
-static struct fb_var_screeninfo vinfo;
-static uint8_t *framebuffer;
-
-static inline uint32_t read32(uint8_t *p)
-{
- return *p | *(p + 1) << 8 | *(p + 2) << 16 | *(p + 3) << 24;
-}
-
-static inline void write32(uint8_t *p, uint32_t val)
-{
- *p++ = val & 0xff; val >>= 8;
- *p++ = val & 0xff; val >>= 8;
- *p++ = val & 0xff; val >>= 8;
- *p++ = val;
-}
-
-/* assume lsb and little-endian */
-static inline void put_pix_mask(uint8_t *location, int offset, int len, uint8_t pix)
-{
- /* adjust pixel */
- pix >>= 8 - len;
- uint32_t mask = ((1 << len) - 1) << offset;
- uint32_t val = read32(location);
- val = ((val) & ~mask) | pix << offset;
- write32(location, val);
-}
-
-static inline void put_pix(int x, int y, uint8_t r, uint8_t g, uint8_t b)
-{
- x += vinfo.xoffset;
- y += vinfo.yoffset;
- uint8_t *location = framebuffer + x * (vinfo.bits_per_pixel / 8) + y * finfo.line_length;
- put_pix_mask(location, vinfo.red.offset, vinfo.red.length, r);
- put_pix_mask(location, vinfo.green.offset, vinfo.green.length, g);
- put_pix_mask(location, vinfo.blue.offset, vinfo.blue.length, b);
-}
-
-static void dump_fb(FILE *out, const char *path)
-{
- fprintf(out, "%s:\n", path);
- int fd = open(path, O_RDWR);
- if(fd < 0)
- {
- fprintf(out, " cannot open");
- return;
- }
- /* get fixed info */
- if(ioctl(fd, FBIOGET_FSCREENINFO, &finfo) < 0)
- {
- fprintf(out, " ioctl failed (fix info)");
- close(fd);
- return;
- }
- fprintf(out, " identification: %s\n", finfo.id);
- fprintf(out, " type: %d\n", finfo.type);
- fprintf(out, " visual: %d\n", finfo.visual);
- fprintf(out, " accel: %d\n", finfo.accel);
- fprintf(out, " line length: %d\n", finfo.line_length);
- fprintf(out, " mem length: %d\n", finfo.smem_len);
- /* get variable info */
- if(ioctl(fd, FBIOGET_VSCREENINFO, &vinfo) < 0)
- {
- close(fd);
- fprintf(out, " ioctl failed (var info)");
- return;
- }
- fprintf(out, " xres: %d\n", vinfo.xres);
- fprintf(out, " yres: %d\n", vinfo.yres);
- fprintf(out, " xoff: %d\n", vinfo.xoffset);
- fprintf(out, " yoff: %d\n", vinfo.yoffset);
- fprintf(out, " bbp: %d\n", vinfo.bits_per_pixel);
- fprintf(out, " red: %d-%d\n", vinfo.red.offset + vinfo.red.length - 1, vinfo.red.offset);
- fprintf(out, " green: %d-%d\n", vinfo.green.offset + vinfo.green.length - 1, vinfo.green.offset);
- fprintf(out, " blue: %d-%d\n", vinfo.blue.offset + vinfo.blue.length - 1, vinfo.blue.offset);
- /* get mode info */
- struct nwz_fb_image_info mode_info;
- nwz_fb_set_standard_mode(fd);
- if(ioctl(fd, NWZ_FB_GET_MODE, &mode_info) < 0)
- {
- close(fd);
- fprintf(out, " ioctl failed (get mode)\n");
- return;
- }
- fprintf(out, " tc_enable: %d\n", mode_info.tc_enable);
- fprintf(out, " t_color: %d\n", mode_info.t_color);
- fprintf(out, " alpha: %d\n", mode_info.alpha);
- fprintf(out, " rot: %d\n", mode_info.rot);
- fprintf(out, " page: %d\n", mode_info.page);
- fprintf(out, " update: %d\n", mode_info.update);
- /* mmap device (but avoid TV) */
- if(vinfo.xres != 720)
- {
- long screensize = vinfo.yres_virtual * finfo.line_length;
- framebuffer = mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, (off_t)0);
- if(framebuffer == 0)
- {
- close(fd);
- fprintf(out, " mmap failed");
- return;
- }
- for(int y = 0; y < 10; y++)
- for(int x = 0; x < 10; x++)
- {
- put_pix(x, y, 0xff, 0, 0);
- put_pix(x + 10, y, 0, 0xff, 0);
- put_pix(x + 20, y, 0, 0, 0xff);
- }
- }
- sleep(3);
- close(fd);
-}
-
-int NWZ_TOOL_MAIN(test_fb)(int argc, char **argv)
-{
- FILE *f = fopen("/contents/fb.txt", "w");
- if(!f)
- f = stdout;
- dump_fb(f, "/dev/fb/0");
- if(f)
- fclose(f);
- return 0;
-}
diff --git a/utils/nwztools/plattools/test_keys.c b/utils/nwztools/plattools/test_keys.c
deleted file mode 100644
index 353864d96f..0000000000
--- a/utils/nwztools/plattools/test_keys.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-
-int NWZ_TOOL_MAIN(test_keys)(int argc, char **argv)
-{
- /* clear screen and display welcome message */
- nwz_lcdmsg(true, 0, 0, "test_keys");
- nwz_lcdmsg(false, 0, 2, "BACK: hold 3 seconds to quit");
- /* open input device */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- nwz_lcdmsg(false, 3, 4, "Cannot open input device");
- sleep(2);
- return 1;
- }
- /* display input state in a loop */
- int back_pressed = 0; /* 0 = no pressed, >0 = number of seconds pressed - 1 */
-#define FIRST_LINE 7
-#define LAST_LINE 17
- int event_line = FIRST_LINE;
- int prev_evt_line = -1;
- while(1)
- {
- /* display HOLD status */
- nwz_lcdmsgf(false, 2, 5, "HOLD: %d", nwz_key_get_hold_status(input_fd));
- /* wait for event */
- int ret = nwz_key_wait_event(input_fd, 1000000);
- if(ret != 1)
- {
- if(back_pressed > 0)
- back_pressed++;
- if(back_pressed >= 4)
- break;
- continue;
- }
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- /* erase last '>' indicator */
- if(prev_evt_line != -1)
- nwz_lcdmsg(false, 0, prev_evt_line, " ");
- prev_evt_line = event_line;
- char buffer[32];
- int len = sprintf(buffer, "> %s %s (HOLD=%d)",
- nwz_key_get_name(nwz_key_event_get_keycode(&evt)),
- nwz_key_event_is_press(&evt) ? "pressed" : "released",
- nwz_key_event_get_hold_status(&evt));
- /* pad with spaces to erase old stuff */
- while(len + 1 < sizeof(buffer))
- buffer[len++] = ' ';
- buffer[len] = 0;
- /* print line */
- nwz_lcdmsg(false, 0, event_line, buffer);
- /* compute next line */
- event_line++;
- if(event_line == LAST_LINE)
- event_line = FIRST_LINE;
- /* handle quit */
- if(nwz_key_event_get_keycode(&evt) == NWZ_KEY_BACK && nwz_key_event_is_press(&evt))
- back_pressed = 1;
- else
- back_pressed = 0;
- }
- /* wait until back is released, to avoid messing with all_tools (if embedded) */
- nwz_lcdmsg(true, 0, 0, "test_keys");
- nwz_lcdmsg(false, 0, 2, "BACK: release to quit");
- while(1)
- {
- /* wait for event */
- int ret = nwz_key_wait_event(input_fd, 1000000);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- /* handle quit */
- if(nwz_key_event_get_keycode(&evt) == NWZ_KEY_BACK && !nwz_key_event_is_press(&evt))
- break;
- }
- /* close input device */
- nwz_key_close(input_fd);
- /* finish nicely */
- return 0;
-}
diff --git a/utils/nwztools/plattools/test_power.c b/utils/nwztools/plattools/test_power.c
deleted file mode 100644
index f0d374bf7b..0000000000
--- a/utils/nwztools/plattools/test_power.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-
-static const char *charge_status_name(int chgstat)
-{
- switch(chgstat)
- {
- case NWZ_POWER_STATUS_CHARGE_STATUS_CHARGING: return "charging";
- case NWZ_POWER_STATUS_CHARGE_STATUS_SUSPEND: return "suspend";
- case NWZ_POWER_STATUS_CHARGE_STATUS_TIMEOUT: return "timeout";
- case NWZ_POWER_STATUS_CHARGE_STATUS_NORMAL: return "normal";
- default: return "unknown";
- }
-}
-
-static const char *get_batt_gauge_name(int gauge)
-{
- switch(gauge)
- {
- case NWZ_POWER_BAT_NOBAT: return "no batt";
- case NWZ_POWER_BAT_VERYLOW: return "very low";
- case NWZ_POWER_BAT_LOW: return "low";
- case NWZ_POWER_BAT_GAUGE0: return "____";
- case NWZ_POWER_BAT_GAUGE1: return "O___";
- case NWZ_POWER_BAT_GAUGE2: return "OO__";
- case NWZ_POWER_BAT_GAUGE3: return "OOO_";
- case NWZ_POWER_BAT_GAUGE4: return "OOOO";
- default: return "unknown";
- }
-}
-
-static const char *acc_charge_mode_name(int mode)
-{
- switch(mode)
- {
- case NWZ_POWER_ACC_CHARGE_NONE: return "none";
- case NWZ_POWER_ACC_CHARGE_VBAT: return "vbat";
- case NWZ_POWER_ACC_CHARGE_VSYS: return "vsys";
- default: return "unknown";
- }
-}
-
-int NWZ_TOOL_MAIN(test_power)(int argc, char **argv)
-{
- /* clear screen and display welcome message */
- nwz_lcdmsg(true, 0, 0, "test_power");
- nwz_lcdmsg(false, 0, 2, "BACK: quit");
- /* open input device */
- int input_fd = nwz_key_open();
- if(input_fd < 0)
- {
- nwz_lcdmsg(false, 3, 4, "Cannot open input device");
- sleep(2);
- return 1;
- }
- /* open adc device */
- int power_fd = nwz_power_open();
- if(power_fd < 0)
- {
- nwz_key_close(input_fd);
- nwz_lcdmsg(false, 3, 4, "Cannot open power device");
- sleep(2);
- return 1;
- }
- /* open pminfo device */
- int pminfo_fd = nwz_pminfo_open();
- if(pminfo_fd < 0)
- {
- nwz_key_close(power_fd);
- nwz_key_close(input_fd);
- nwz_lcdmsg(false, 3, 4, "Cannot open pminfo device");
- sleep(2);
- return 1;
- }
- /* display input state in a loop */
- while(1)
- {
- /* print status */
- int line = 4;
- int status = nwz_power_get_status(power_fd);
- int chgstat = status & NWZ_POWER_STATUS_CHARGE_STATUS;
- int acc_chg_mode = nwz_power_get_acc_charge_mode(power_fd);
- nwz_lcdmsgf(false, 0, line++, "ac detected: %s ",
- (status & NWZ_POWER_STATUS_AC_DET) ? "yes" : "no");
- nwz_lcdmsgf(false, 0, line++, "vbus detected: %s ",
- (status & NWZ_POWER_STATUS_VBUS_DET) ? "yes" : "no");
- nwz_lcdmsgf(false, 0, line++, "vbus voltage: %d mV (AD=%d) ",
- nwz_power_get_vbus_voltage(power_fd), nwz_power_get_vbus_adval(power_fd));
- nwz_lcdmsgf(false, 0, line++, "vbus limit: %d mA ",
- nwz_power_get_vbus_limit(power_fd));
- nwz_lcdmsgf(false, 0, line++, "vsys voltage: %d mV (AD=%d) ",
- nwz_power_get_vsys_voltage(power_fd), nwz_power_get_vsys_adval(power_fd));
- nwz_lcdmsgf(false, 0, line++, "charge switch: %s ",
- nwz_power_get_charge_switch(power_fd) ? "on" : "off");
- nwz_lcdmsgf(false, 0, line++, "full voltage: %s V ",
- (status & NWZ_POWER_STATUS_CHARGE_LOW) ? "4.1" : "4.2");
- nwz_lcdmsgf(false, 0, line++, "current limit: %d mA ",
- nwz_power_get_charge_current(power_fd));
- nwz_lcdmsgf(false, 0, line++, "charge status: %s (%x) ",
- charge_status_name(chgstat), chgstat);
- nwz_lcdmsgf(false, 0, line++, "battery full: %s ",
- nwz_power_is_fully_charged(power_fd) ? "yes" : "no");
- nwz_lcdmsgf(false, 0, line++, "bat gauge: %s (%d) ",
- get_batt_gauge_name(nwz_power_get_battery_gauge(power_fd)),
- nwz_power_get_battery_gauge(power_fd));
- nwz_lcdmsgf(false, 0, line++, "avg voltage: %d mV (AD=%d) ",
- nwz_power_get_battery_voltage(power_fd), nwz_power_get_battery_adval(power_fd));
- nwz_lcdmsgf(false, 0, line++, "sample count: %d ",
- nwz_power_get_sample_count(power_fd));
- nwz_lcdmsgf(false, 0, line++, "raw voltage: %d mV (AD=%d) ",
- nwz_power_get_vbat_voltage(power_fd), nwz_power_get_vbat_adval(power_fd));
- nwz_lcdmsgf(false, 0, line++, "acc charge mode: %s (%d) ",
- acc_charge_mode_name(acc_chg_mode), acc_chg_mode);
- /* pminfo */
- line++;
- nwz_lcdmsgf(false, 0, line++, "pminfo: %#x ", nwz_pminfo_get_factor(pminfo_fd));
- /* wait for event (1s) */
- int ret = nwz_key_wait_event(input_fd, 1000000);
- if(ret != 1)
- continue;
- struct input_event evt;
- if(nwz_key_read_event(input_fd, &evt) != 1)
- continue;
- if(nwz_key_event_get_keycode(&evt) == NWZ_KEY_BACK && !nwz_key_event_is_press(&evt))
- break;
- }
- /* finish nicely */
- nwz_key_close(power_fd);
- nwz_key_close(input_fd);
- nwz_pminfo_close(pminfo_fd);
- return 0;
-}
diff --git a/utils/nwztools/plattools/test_ts.c b/utils/nwztools/plattools/test_ts.c
deleted file mode 100644
index b42d93bd09..0000000000
--- a/utils/nwztools/plattools/test_ts.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2016 Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "nwz_lib.h"
-#include "nwz_plattools.h"
-
-int NWZ_TOOL_MAIN(test_ts)(int argc, char **argv)
-{
- /* clear screen and display welcome message */
- nwz_lcdmsg(true, 0, 0, "test_ts");
- nwz_lcdmsg(false, 0, 2, "BACK: quit");
- /* open input device */
- int key_fd = nwz_key_open();
- if(key_fd < 0)
- {
- nwz_lcdmsg(false, 3, 4, "Cannot open key device");
- sleep(2);
- return 1;
- }
- int ts_fd = nwz_ts_open();
- if(ts_fd < 0)
- {
- nwz_key_close(key_fd);
- nwz_lcdmsg(false, 3, 4, "Cannot open touch screen device");
- sleep(2);
- return 1;
- }
- /* init state and print maximum information */
- struct nwz_ts_state_t ts_state;
- if(nwz_ts_state_init(ts_fd, &ts_state) < 0)
- {
- nwz_key_close(key_fd);
- nwz_ts_close(ts_fd);
- nwz_lcdmsg(false, 3, 4, "Cannot init touch screen device");
- sleep(2);
- return 1;
- }
- /* display static information */
- nwz_lcdmsgf(false, 1, 6, "size: %d, %d ", ts_state.max_x, ts_state.max_y);
- /* display input state in a loop */
- while(1)
- {
- /* wait for event */
- int fds[2] = {key_fd, ts_fd};
- int ret = nwz_wait_fds(fds, 2, -1);
- if(ret & 1) /* key_fd */
- {
- struct input_event evt;
- if(nwz_key_read_event(key_fd, &evt) == 1)
- {
- if(nwz_key_event_get_keycode(&evt) == NWZ_KEY_BACK &&
- nwz_key_event_is_press(&evt))
- break; /* quit */
- }
- }
- if(ret & 2) /* ts_fd */
- {
-#define NR_TS_EVTS 16
- struct input_event evts[NR_TS_EVTS];
- int nr = nwz_ts_read_events(ts_fd, evts, NR_TS_EVTS);
- for(int i = 0; i < nr; i++)
- if(nwz_ts_state_update(&ts_state, &evts[i]) == 1)
- {
- nwz_lcdmsgf(false, 1, 7, "touch: %s ", ts_state.touch ? "yes" : "no");
- nwz_lcdmsgf(false, 1, 8, "pos: %d, %d ", ts_state.x, ts_state.y);
- nwz_lcdmsgf(false, 1, 9, "pressure: %d ", ts_state.pressure);
- nwz_lcdmsgf(false, 1, 10, "width: %d ", ts_state.tool_width);
- nwz_lcdmsgf(false, 1, 11, "flick: %s ", ts_state.flick ? "yes" : "no");
- nwz_lcdmsgf(false, 1, 12, "flick vec: %d, %d ", ts_state.flick_x, ts_state.flick_y);
- /* process touch */
- nwz_ts_state_post_syn(&ts_state);
- }
-#undef NR_TS_EVTS
- }
- }
- /* close input device */
- nwz_key_close(key_fd);
- nwz_ts_close(ts_fd);
- /* finish nicely */
- return 0;
-}
diff --git a/utils/nwztools/scripts/install_dualboot.sh b/utils/nwztools/scripts/install_dualboot.sh
index c134929312..2e2bd050cc 100644
--- a/utils/nwztools/scripts/install_dualboot.sh
+++ b/utils/nwztools/scripts/install_dualboot.sh
@@ -36,8 +36,6 @@ exec > "$CONTENTS/install_dualboot_log.txt" 2>&1
. /install_script/constant.txt
_UPDATE_FN_=`nvpstr ufn`
ROOTFS_TMP_DIR=/tmp/rootfs
-ROCKBOX_NAME=Rockbox
-ROCKBOX_PATH=$ROOTFS_TMP_DIR/usr/local/bin/$ROCKBOX_NAME
SPIDERAPP_PATH=$ROOTFS_TMP_DIR/usr/local/bin/SpiderApp
# mount root partition
@@ -51,8 +49,12 @@ fi
# NOTE some platforms use ext4 with a custom mount program
# (/usr/local/bin/icx_mount.ext4), some probably use an mtd too
+# try ext3 and if it fails, try ext2
mount -t ext3 $COMMON_ROOTFS_PARTITION $ROOTFS_TMP_DIR
if [ "$?" != 0 ]; then
+ mount -t ext2 $COMMON_ROOTFS_PARTITION $ROOTFS_TMP_DIR
+fi
+if [ "$?" != 0 ]; then
lcdmsg -f /usr/local/bin/font_08x12.bmp -l 0,15 "ERROR: mount failed"
sleep 3
exit 0
diff --git a/utils/nwztools/scsitools/Makefile b/utils/nwztools/scsitools/Makefile
index 6b2d7a86a4..53b901427f 100644
--- a/utils/nwztools/scsitools/Makefile
+++ b/utils/nwztools/scsitools/Makefile
@@ -3,7 +3,7 @@ DEFINES=
PREFIX?=
CC=$(PREFIX)gcc
LD=$(PREFIX)gcc
-NWZ_DB_DIR=../database
+NWZ_DB_DIR=../../../firmware/target/hosted/sonynwz
INCLUDES=-I$(NWZ_DB_DIR) -I$(SCSI_DIR)
CFLAGS=-std=c99 -Wall $(DEFINES) $(INCLUDES)
LDFLAGS=-L$(SCSI_DIR) -lrbscsi
@@ -11,7 +11,7 @@ BINS=scsitool
all: $(BINS)
-scsitool: scsitool.c misc.c para_noise.c $(NWZ_DB_DIR)/nwz_db.c
+scsitool: scsitool.c misc.c para_noise.c $(NWZ_DB_DIR)/nwz-db.c
$(MAKE) -C $(SCSI_DIR)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
diff --git a/utils/nwztools/scsitools/scsitool.c b/utils/nwztools/scsitools/scsitool.c
index 7b8ffd5f17..63a23c416d 100644
--- a/utils/nwztools/scsitools/scsitool.c
+++ b/utils/nwztools/scsitools/scsitool.c
@@ -34,7 +34,7 @@
#include "rbscsi.h"
#include "misc.h"
#include "para_noise.h"
-#include "nwz_db.h"
+#include "nwz-db.h"
bool g_debug = false;
const char *g_force_series = NULL;