From 14a882cb30c967a14e61661ace6fcacaebbd472e Mon Sep 17 00:00:00 2001
From: Vibhor Srivastava <69432426+vibhorSrv@users.noreply.github.com>
Date: Fri, 29 Oct 2021 19:23:03 +0530
Subject: [PATCH] Specific settings json serialized
---
.idea/jsonSchemas.xml | 26 ++
app/specific/sensors/oneplus/guacamole.json | 272 ++++++++++++++
app/specific/sensors/oneplus/guacamoleb.json | 272 ++++++++++++++
app/specific/sensors/oneplus/hotdog.json | 272 ++++++++++++++
app/specific/sensors/oneplus/hotdogb.json | 272 ++++++++++++++
app/specific/sensors/oneplus/oneplus7.json | 272 ++++++++++++++
app/specific/sensors/oneplus/oneplus7pro.json | 272 ++++++++++++++
app/specific/sensors/oneplus/oneplus7t.json | 272 ++++++++++++++
.../sensors/oneplus/oneplus7tpro.json | 272 ++++++++++++++
app/specific/sensors/poco/surya.json | 71 ++++
app/specific/sensors/template.json | 138 +++++++
app/specific/sensors/xiaomi/alioth.json | 205 +++++++++++
app/specific/sensors/xiaomi/aliothin.json | 205 +++++++++++
app/specific/sensors/xiaomi/cas.json | 339 ++++++++++++++++++
app/specific/sensors/xiaomi/cepheus.json | 205 +++++++++++
app/specific/sensors/xiaomi/raphael.json | 71 ++++
app/specific/sensors/xiaomi/raphaelin.json | 71 ++++
app/specific/template_specificsettings.json | 10 +
.../xiaomi/dipper_specificsettings.json | 4 +
.../photoncamera/pro/SensorSpecifics.java | 178 +++------
.../photoncamera/pro/Specific.java | 99 +++--
.../photoncamera/pro/SpecificSetting.java | 22 +-
.../pro/SpecificSettingSensor.java | 85 ++++-
.../processing/render/NoiseModeler.java | 4 +-
.../photoncamera/util/ListWrapper.java | 19 +
25 files changed, 3735 insertions(+), 193 deletions(-)
create mode 100644 .idea/jsonSchemas.xml
create mode 100644 app/specific/sensors/oneplus/guacamole.json
create mode 100644 app/specific/sensors/oneplus/guacamoleb.json
create mode 100644 app/specific/sensors/oneplus/hotdog.json
create mode 100644 app/specific/sensors/oneplus/hotdogb.json
create mode 100644 app/specific/sensors/oneplus/oneplus7.json
create mode 100644 app/specific/sensors/oneplus/oneplus7pro.json
create mode 100644 app/specific/sensors/oneplus/oneplus7t.json
create mode 100644 app/specific/sensors/oneplus/oneplus7tpro.json
create mode 100644 app/specific/sensors/poco/surya.json
create mode 100644 app/specific/sensors/template.json
create mode 100644 app/specific/sensors/xiaomi/alioth.json
create mode 100644 app/specific/sensors/xiaomi/aliothin.json
create mode 100644 app/specific/sensors/xiaomi/cas.json
create mode 100644 app/specific/sensors/xiaomi/cepheus.json
create mode 100644 app/specific/sensors/xiaomi/raphael.json
create mode 100644 app/specific/sensors/xiaomi/raphaelin.json
create mode 100644 app/specific/template_specificsettings.json
create mode 100644 app/specific/xiaomi/dipper_specificsettings.json
create mode 100644 app/src/main/java/com/particlesdevs/photoncamera/util/ListWrapper.java
diff --git a/.idea/jsonSchemas.xml b/.idea/jsonSchemas.xml
new file mode 100644
index 00000000..b7d1ed5d
--- /dev/null
+++ b/.idea/jsonSchemas.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/guacamole.json b/app/specific/sensors/oneplus/guacamole.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/guacamole.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/guacamoleb.json b/app/specific/sensors/oneplus/guacamoleb.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/guacamoleb.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/hotdog.json b/app/specific/sensors/oneplus/hotdog.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/hotdog.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/hotdogb.json b/app/specific/sensors/oneplus/hotdogb.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/hotdogb.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/oneplus7.json b/app/specific/sensors/oneplus/oneplus7.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/oneplus7.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/oneplus7pro.json b/app/specific/sensors/oneplus/oneplus7pro.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/oneplus7pro.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/oneplus7t.json b/app/specific/sensors/oneplus/oneplus7t.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/oneplus7t.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/oneplus/oneplus7tpro.json b/app/specific/sensors/oneplus/oneplus7tpro.json
new file mode 100644
index 00000000..21fb8228
--- /dev/null
+++ b/app/specific/sensors/oneplus/oneplus7tpro.json
@@ -0,0 +1,272 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.049616216049247E-6,
+ 3.066356748497584E-6,
+ 1.6137164051534832E-6,
+ 1.704456796158355E-6
+ ],
+ [
+ -6.868533952433888E-5,
+ 1.978742630786456E-5,
+ 2.5178983454240047E-6,
+ 9.534749285514284E-6
+ ],
+ [
+ 2.4407820301561647E-11,
+ 2.71117247779124E-11,
+ 1.4803216436416858E-11,
+ 1.3810342589160767E-11
+ ],
+ [
+ 1.6459574435581148E-6,
+ 2.2145485853138597E-7,
+ 6.537303890987755E-7,
+ 6.33679176770087E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 8.232277999740038E-7,
+ 8.25869845339329E-7,
+ 8.199231501613553E-7,
+ 8.008255761658845E-7
+ ],
+ [
+ 3.132309551554714E-5,
+ 2.1283840295194042E-5,
+ 2.2475562768771716E-5,
+ 4.142360164582706E-5
+ ],
+ [
+ 1.9740428435226394E-12,
+ 1.933706260436388E-12,
+ 1.9774328997705128E-12,
+ 2.2856499001409555E-12
+ ],
+ [
+ -2.3457584897201433E-7,
+ -6.272188756378256E-8,
+ -8.04846062803566E-8,
+ -2.7007270485059615E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5927034005364303E-6,
+ 1.5888828235244699E-6,
+ 1.5844172153727016E-6,
+ 1.2929165132777582E-6
+ ],
+ [
+ 6.511741854650378E-6,
+ 1.863536347876196E-5,
+ 2.349846044488917E-5,
+ 8.202677579758039E-6
+ ],
+ [
+ 6.393139451907586E-12,
+ 6.738333537524045E-12,
+ 6.845460819964984E-12,
+ 5.313327914514723E-12
+ ],
+ [
+ 2.6711059550692037E-7,
+ -2.2563025078762078E-7,
+ -2.9050259826371E-7,
+ 2.7043137507613384E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.723524778290816E-6,
+ 1.6350221136097833E-6,
+ 1.4251111092847876E-6,
+ 1.5571895958002161E-6
+ ],
+ [
+ -2.134295780752146E-5,
+ 1.6784910859191478E-5,
+ 1.7992277408792413E-5,
+ -1.9747585550909817E-6
+ ],
+ [
+ -4.1202352402298914E-14,
+ -6.222889838516411E-14,
+ -5.93365519208338E-14,
+ -4.3919054303038314E-14
+ ],
+ [
+ 1.0335175408750888E-6,
+ 5.508194762633859E-7,
+ 7.557051940878284E-7,
+ 9.416677017511695E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/poco/surya.json b/app/specific/sensors/poco/surya.json
new file mode 100644
index 00000000..e19301dc
--- /dev/null
+++ b/app/specific/sensors/poco/surya.json
@@ -0,0 +1,71 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.6112065910260735E-7,
+ 3.246000126216271E-7,
+ 3.5469362596939144E-7,
+ 3.4712663227762084E-7
+ ],
+ [
+ 0.001506547821804961,
+ 0.0015057255608239154,
+ 0.0015113472569226263,
+ 0.0015075962152107313
+ ],
+ [
+ 5.8675536217939195E-12,
+ 5.3773023360459415E-12,
+ 5.782809994747673E-12,
+ 5.653773456348876E-12
+ ],
+ [
+ 9.856599902931143E-5,
+ 9.813562549713927E-5,
+ 9.892315973069647E-5,
+ 9.85635186357755E-5
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/template.json b/app/specific/sensors/template.json
new file mode 100644
index 00000000..3b057057
--- /dev/null
+++ b/app/specific/sensors/template.json
@@ -0,0 +1,138 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": false,
+ "noiseModelerArr": [
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": false,
+ "noiseModelerArr": [
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ]
+ }
+ ]
+}
diff --git a/app/specific/sensors/xiaomi/alioth.json b/app/specific/sensors/xiaomi/alioth.json
new file mode 100644
index 00000000..0be5b3e1
--- /dev/null
+++ b/app/specific/sensors/xiaomi/alioth.json
@@ -0,0 +1,205 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.0752325549832484E-6,
+ 1.196258268476536E-6,
+ 6.188713383244324E-7,
+ 6.664992219692763E-7
+ ],
+ [
+ -1.3944581816859453E-5,
+ 2.14376418628867E-6,
+ -3.472229159309987E-7,
+ -1.5230206476730423E-6
+ ],
+ [
+ 6.028408388732381E-12,
+ 5.074280425910235E-12,
+ 2.386540080515199E-12,
+ 2.7267090539689144E-12
+ ],
+ [
+ 4.388466094607838E-7,
+ 3.2849568991527097E-7,
+ 4.0586579284976675E-7,
+ 3.625368394134763E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.5684190639844393E-6,
+ 3.5173302058297746E-6,
+ 3.472724026633459E-6,
+ 3.4582930401352425E-6
+ ],
+ [
+ 2.29609852853862E-6,
+ 5.012349936288773E-6,
+ 8.105961030115472E-6,
+ 2.607919668825669E-6
+ ],
+ [
+ 2.2314436826166334E-11,
+ 2.1974166526131606E-11,
+ 2.101661649514541E-11,
+ 2.07311835625491E-11
+ ],
+ [
+ 4.3864650305339854E-7,
+ 3.541893383691396E-7,
+ 2.6684533897039166E-7,
+ 3.9838230145938835E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.743190610275065E-6,
+ 3.6868569103341015E-6,
+ 3.6767903706685852E-6,
+ 3.687655843114006E-6
+ ],
+ [
+ 3.6263571806451115E-6,
+ 1.6268770580278034E-5,
+ 1.643496892132244E-5,
+ 1.4673539457884655E-5
+ ],
+ [
+ 3.1481734420082236E-11,
+ 3.2468941977333715E-11,
+ 3.2742800580364906E-11,
+ 3.279521633439372E-11
+ ],
+ [
+ 4.77476841191616E-7,
+ 1.0592691049712235E-7,
+ 1.3287252861673883E-7,
+ 2.3309990571498685E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/xiaomi/aliothin.json b/app/specific/sensors/xiaomi/aliothin.json
new file mode 100644
index 00000000..0be5b3e1
--- /dev/null
+++ b/app/specific/sensors/xiaomi/aliothin.json
@@ -0,0 +1,205 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.0752325549832484E-6,
+ 1.196258268476536E-6,
+ 6.188713383244324E-7,
+ 6.664992219692763E-7
+ ],
+ [
+ -1.3944581816859453E-5,
+ 2.14376418628867E-6,
+ -3.472229159309987E-7,
+ -1.5230206476730423E-6
+ ],
+ [
+ 6.028408388732381E-12,
+ 5.074280425910235E-12,
+ 2.386540080515199E-12,
+ 2.7267090539689144E-12
+ ],
+ [
+ 4.388466094607838E-7,
+ 3.2849568991527097E-7,
+ 4.0586579284976675E-7,
+ 3.625368394134763E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.5684190639844393E-6,
+ 3.5173302058297746E-6,
+ 3.472724026633459E-6,
+ 3.4582930401352425E-6
+ ],
+ [
+ 2.29609852853862E-6,
+ 5.012349936288773E-6,
+ 8.105961030115472E-6,
+ 2.607919668825669E-6
+ ],
+ [
+ 2.2314436826166334E-11,
+ 2.1974166526131606E-11,
+ 2.101661649514541E-11,
+ 2.07311835625491E-11
+ ],
+ [
+ 4.3864650305339854E-7,
+ 3.541893383691396E-7,
+ 2.6684533897039166E-7,
+ 3.9838230145938835E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.743190610275065E-6,
+ 3.6868569103341015E-6,
+ 3.6767903706685852E-6,
+ 3.687655843114006E-6
+ ],
+ [
+ 3.6263571806451115E-6,
+ 1.6268770580278034E-5,
+ 1.643496892132244E-5,
+ 1.4673539457884655E-5
+ ],
+ [
+ 3.1481734420082236E-11,
+ 3.2468941977333715E-11,
+ 3.2742800580364906E-11,
+ 3.279521633439372E-11
+ ],
+ [
+ 4.77476841191616E-7,
+ 1.0592691049712235E-7,
+ 1.3287252861673883E-7,
+ 2.3309990571498685E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/xiaomi/cas.json b/app/specific/sensors/xiaomi/cas.json
new file mode 100644
index 00000000..39bd43de
--- /dev/null
+++ b/app/specific/sensors/xiaomi/cas.json
@@ -0,0 +1,339 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.1,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 6.83077811393138E-7,
+ 4.5578135829790247E-7,
+ 4.492959389111244E-7,
+ 6.047769308479595E-7
+ ],
+ [
+ 5.555446484111483E-6,
+ 9.860349720343052E-7,
+ 2.563714582853956E-7,
+ 4.798221767362647E-6
+ ],
+ [
+ 7.512797765420556E-13,
+ 2.2003222288427424E-12,
+ 2.3098307546795066E-12,
+ 7.372233232276438E-13
+ ],
+ [
+ 5.557875198589793E-7,
+ 6.258392153420842E-7,
+ 6.453429822922199E-7,
+ 4.991889298556389E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 0.5,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 1,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.8284881234522835E-6,
+ 3.7848977572676757E-6,
+ 3.758775362528181E-6,
+ 3.879138095201344E-6
+ ],
+ [
+ -8.403812175152402E-6,
+ -5.84528944689354E-6,
+ -6.272956995595406E-6,
+ -8.678621422410783E-6
+ ],
+ [
+ 1.3032975260869628E-11,
+ 1.4894217831492587E-11,
+ 1.4631059345909564E-11,
+ 1.3407894281327378E-11
+ ],
+ [
+ 6.983814591824226E-7,
+ 7.025849679230107E-7,
+ 7.185158253704088E-7,
+ 7.108828783350968E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.25,
+ "captureSharpeningS": 1.1,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 2,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 2.778172066246081E-6,
+ 2.6880731055362526E-6,
+ 2.6972530755150648E-6,
+ 2.7638338564533415E-6
+ ],
+ [
+ 1.0358232967322726E-5,
+ 2.595602510146598E-5,
+ 2.549645023865011E-5,
+ 1.8654354508550758E-5
+ ],
+ [
+ -3.2766683856770736E-12,
+ -5.8793449133427624E-12,
+ -6.509406786514441E-12,
+ -3.4626701937083386E-12
+ ],
+ [
+ 6.802182651726613E-7,
+ 3.421306017069367E-7,
+ 3.260641420879179E-7,
+ 5.258869684647925E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 2.0,
+ "captureSharpeningS": 1.3,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 3,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 3.8258606080195075E-6,
+ 3.2008252475740936E-6,
+ 3.198942368079354E-6,
+ 3.856480506192772E-6
+ ],
+ [
+ -4.6434767272138893E-5,
+ -1.0917595226160695E-5,
+ -1.0648744292159725E-5,
+ -4.2814906919669436E-5
+ ],
+ [
+ 3.120986096920601E-11,
+ 3.024063437813071E-11,
+ 3.053197167712915E-11,
+ 3.1207882849118573E-11
+ ],
+ [
+ 5.155904840835123E-7,
+ 4.146269845628112E-7,
+ 4.083957939852829E-7,
+ 5.025064581013141E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 2.0,
+ "captureSharpeningS": 1.25,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 4,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.0673449016409514E-6,
+ 1.2113369862616123E-6,
+ 6.202622287233161E-7,
+ 6.808332330119998E-7
+ ],
+ [
+ -7.768410096045204E-6,
+ 1.2095708095164611E-5,
+ 8.837843014774865E-6,
+ 2.8301656450573236E-6
+ ],
+ [
+ 4.509425381797041E-12,
+ 2.267471275438403E-12,
+ 1.1001758620061367E-12,
+ 1.3615498511866523E-12
+ ],
+ [
+ 3.6366384941392123E-7,
+ -1.1207133554947757E-7,
+ 1.7857454243565782E-7,
+ 3.164271743346444E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/xiaomi/cepheus.json b/app/specific/sensors/xiaomi/cepheus.json
new file mode 100644
index 00000000..b1beeb53
--- /dev/null
+++ b/app/specific/sensors/xiaomi/cepheus.json
@@ -0,0 +1,205 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.5,
+ 0.5,
+ 1.0E-4,
+ 1.0E-4,
+ 0.0,
+ 0.0,
+ 3.0E-4,
+ 3.0E-4
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 5.550690452962096E-7,
+ 6.28854003109143E-7,
+ 3.2514281356232834E-7,
+ 3.596084804765092E-7
+ ],
+ [
+ -7.2516712227937075E-6,
+ 5.222139481138479E-6,
+ 5.4155096702917535E-6,
+ 2.4324671216536317E-6
+ ],
+ [
+ 1.4223427818161162E-12,
+ 6.483861646712692E-13,
+ 3.426108655202949E-13,
+ 3.984369575773855E-13
+ ],
+ [
+ 3.6161221084824785E-7,
+ 1.5498159191094513E-7,
+ 2.982331631078912E-7,
+ 3.225319173227361E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.5,
+ 0.5,
+ -5.0E-4,
+ -5.0E-4,
+ 0.0,
+ 0.0,
+ -5.0E-4,
+ -5.0E-4
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.2,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 20,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.5705128078183315E-6,
+ 1.56071666079523E-6,
+ 1.5638037333120137E-6,
+ 1.2581117702980262E-6
+ ],
+ [
+ 4.382530954462693E-6,
+ 1.7499718124757E-5,
+ 2.5647348004253185E-5,
+ 1.2158787834667922E-5
+ ],
+ [
+ 6.102933904970193E-12,
+ 6.266528521949293E-12,
+ 6.0503666184411834E-12,
+ 5.058310937673021E-12
+ ],
+ [
+ 2.9005954082168127E-7,
+ -1.6104509173060653E-7,
+ -3.3963123778515874E-7,
+ 1.538103663440867E-7
+ ]
+ ]
+ },
+ {
+ "aberrationCorrection": [
+ 0.5,
+ 0.5,
+ 0.0014,
+ 0.0014,
+ 0.0,
+ 0.0,
+ 0.001,
+ 0.001
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.6,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 21,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 1.627418545927463E-6,
+ 1.6217272295857922E-6,
+ 1.4098009545603852E-6,
+ 1.46947358198844E-6
+ ],
+ [
+ -2.2306851512663175E-5,
+ -3.3876145851968E-6,
+ -5.875513588469666E-7,
+ -5.4479195276516125E-6
+ ],
+ [
+ 8.119854889512704E-12,
+ 8.154058892650946E-12,
+ 7.934321880230547E-12,
+ 7.244480506987444E-12
+ ],
+ [
+ 5.314963658819075E-7,
+ 1.7351008823834477E-7,
+ 3.7211611090413054E-7,
+ 5.182996922616912E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/xiaomi/raphael.json b/app/specific/sensors/xiaomi/raphael.json
new file mode 100644
index 00000000..91000231
--- /dev/null
+++ b/app/specific/sensors/xiaomi/raphael.json
@@ -0,0 +1,71 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.5,
+ 0.5,
+ 1.0E-4,
+ 1.0E-4,
+ 0.0,
+ 0.0,
+ 3.0E-4,
+ 3.0E-4
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 5.550690452962096E-7,
+ 6.28854003109143E-7,
+ 3.2514281356232834E-7,
+ 3.596084804765092E-7
+ ],
+ [
+ -7.2516712227937075E-6,
+ 5.222139481138479E-6,
+ 5.4155096702917535E-6,
+ 2.4324671216536317E-6
+ ],
+ [
+ 1.4223427818161162E-12,
+ 6.483861646712692E-13,
+ 3.426108655202949E-13,
+ 3.984369575773855E-13
+ ],
+ [
+ 3.6161221084824785E-7,
+ 1.5498159191094513E-7,
+ 2.982331631078912E-7,
+ 3.225319173227361E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/sensors/xiaomi/raphaelin.json b/app/specific/sensors/xiaomi/raphaelin.json
new file mode 100644
index 00000000..91000231
--- /dev/null
+++ b/app/specific/sensors/xiaomi/raphaelin.json
@@ -0,0 +1,71 @@
+{
+ "list": [
+ {
+ "aberrationCorrection": [
+ 0.5,
+ 0.5,
+ 1.0E-4,
+ 1.0E-4,
+ 0.0,
+ 0.0,
+ 3.0E-4,
+ 3.0E-4
+ ],
+ "blackLevel": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "captureSharpeningIntense": 1.0,
+ "captureSharpeningS": 1.05,
+ "cct": [
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "cctExists": false,
+ "id": 0,
+ "isRawColorCorrection": false,
+ "modelerExists": true,
+ "noiseModelerArr": [
+ [
+ 5.550690452962096E-7,
+ 6.28854003109143E-7,
+ 3.2514281356232834E-7,
+ 3.596084804765092E-7
+ ],
+ [
+ -7.2516712227937075E-6,
+ 5.222139481138479E-6,
+ 5.4155096702917535E-6,
+ 2.4324671216536317E-6
+ ],
+ [
+ 1.4223427818161162E-12,
+ 6.483861646712692E-13,
+ 3.426108655202949E-13,
+ 3.984369575773855E-13
+ ],
+ [
+ 3.6161221084824785E-7,
+ 1.5498159191094513E-7,
+ 2.982331631078912E-7,
+ 3.225319173227361E-7
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/specific/template_specificsettings.json b/app/specific/template_specificsettings.json
new file mode 100644
index 00000000..d38c7d57
--- /dev/null
+++ b/app/specific/template_specificsettings.json
@@ -0,0 +1,10 @@
+{
+ "cameraIDS": [
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "isDualSessionSupported": true,
+ "isRawColorCorrection": false
+}
\ No newline at end of file
diff --git a/app/specific/xiaomi/dipper_specificsettings.json b/app/specific/xiaomi/dipper_specificsettings.json
new file mode 100644
index 00000000..bae71330
--- /dev/null
+++ b/app/specific/xiaomi/dipper_specificsettings.json
@@ -0,0 +1,4 @@
+{
+ "isDualSessionSupported": false,
+ "isRawColorCorrection": false
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/particlesdevs/photoncamera/pro/SensorSpecifics.java b/app/src/main/java/com/particlesdevs/photoncamera/pro/SensorSpecifics.java
index cbe6e575..3742ff2c 100644
--- a/app/src/main/java/com/particlesdevs/photoncamera/pro/SensorSpecifics.java
+++ b/app/src/main/java/com/particlesdevs/photoncamera/pro/SensorSpecifics.java
@@ -1,11 +1,10 @@
package com.particlesdevs.photoncamera.pro;
-import android.content.Context;
import android.os.Build;
import android.util.Log;
-import com.bumptech.glide.load.model.FileLoader;
-import com.particlesdevs.photoncamera.app.PhotonCamera;
+import androidx.annotation.Nullable;
+
import com.particlesdevs.photoncamera.settings.PreferenceKeys;
import com.particlesdevs.photoncamera.settings.SettingsManager;
import com.particlesdevs.photoncamera.util.HttpLoader;
@@ -14,142 +13,69 @@
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.io.UncheckedIOException;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.stream.Collectors;
import static com.particlesdevs.photoncamera.util.FileManager.sPHOTON_TUNING_DIR;
public class SensorSpecifics {
- public SpecificSettingSensor[] specificSettingSensor;
+ public ArrayList specificSettingSensorList;
public SpecificSettingSensor selectedSensorSpecifics = null;
- ArrayList loadNetwork(String device) throws IOException {
- ArrayList inputStr = new ArrayList();
- BufferedReader indevice = HttpLoader.readURL("https://raw.githubusercontent.com/eszdman/PhotonCamera/dev/app/specific/sensors/" + device + ".txt");
- String str;
- while ((str = indevice.readLine()) != null) {
- Log.d("SensorSpecifics", "read:" + str);
- inputStr.add(str + "\n");
+
+ public SensorSpecifics(SettingsManager mSettingsManager) {
+ boolean isSavedToPref = mSettingsManager.isSet(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_val");
+ boolean exists = mSettingsManager.getBoolean(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_exists", true);
+ if (exists) {
+ String json;
+ File localFile = new File(sPHOTON_TUNING_DIR, "SensorSpecifics.json");
+ if (localFile.exists())
+ json = loadLocal(localFile);
+ else
+ json = loadNetwork(/*device*/Build.BRAND.toLowerCase() + "/" + Build.DEVICE.toLowerCase());
+
+ if (json == null && isSavedToPref) {
+ json = mSettingsManager.getString(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_val", "");
+ }
+ specificSettingSensorList = SpecificSettingSensor.deserializeList(json);
+
+ Log.d("TAG", "SensorSpecificsJSON: "+json);
+ Log.d("TAG", "SensorSpecificsList: "+specificSettingSensorList);
+
+ mSettingsManager.set(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_exists", specificSettingSensorList != null);
+ if (specificSettingSensorList != null) {
+ mSettingsManager.set(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_val", json);
+ }
}
- return inputStr;
}
- ArrayList loadLocal(File specifics) throws IOException {
- ArrayList inputStr = new ArrayList();
- String str;
- BufferedReader indevice = new BufferedReader(new FileReader(specifics));
- while ((str = indevice.readLine()) != null) {
- Log.d("SensorSpecifics", "read:" + str);
- inputStr.add(str + "\n");
+
+ @Nullable
+ private String loadLocal(File specifics) {
+ try (BufferedReader bufferedReader = new BufferedReader(new FileReader(specifics))) {
+ return bufferedReader.lines().collect(Collectors.joining("\n"));
+ } catch (IOException | UncheckedIOException e) {
+ e.printStackTrace();
+ return null;
}
- return inputStr;
}
- public SensorSpecifics(SettingsManager mSettingsManager){
- boolean loaded = mSettingsManager.getBoolean(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_loaded",false);
- boolean exists = mSettingsManager.getBoolean(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_exists",true);
- if(exists) {
- int count = 0;
- String device = Build.BRAND.toLowerCase() + "/" + Build.DEVICE.toLowerCase();
- String fullSpec = "";
- ArrayList inputStr = new ArrayList();
- File init = new File(sPHOTON_TUNING_DIR, "SensorSpecifics.txt");
- try {
- try {
- exists = false;
- if(init.exists())
- inputStr = loadLocal(init);
- else
- inputStr = loadNetwork(device);
- count = 0;
- for (String str : inputStr) {
- Log.d("SensorSpecifics", "read:" + str);
- if (str.contains("sensor")) count++;
- }
- Log.d("SensorSpecifics", "SensorCount:" + count);
- exists = true;
- } catch (Exception e){
- if(loaded){
- inputStr = mSettingsManager.getArrayList(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_loaded", new HashSet<>());
- for (String str2 : inputStr) {
- if (str2.contains("sensor")) count++;
- }
- exists = true;
- }
- }
- specificSettingSensor = new SpecificSettingSensor[count];
- count = 0;
- for (String str2 : inputStr) {
- if (str2.contains("sensor")) {
- String[] vals = str2.split("_");
- vals[1] = vals[1].replace("\n", "");
- specificSettingSensor[count] = new SpecificSettingSensor();
- specificSettingSensor[count].id = Integer.parseInt(vals[1]);
- count++;
- } else {
- String[] valsIn = str2.split("=");
- if(valsIn.length <= 1) continue;
- valsIn[0] = valsIn[0].replace(" ","");
- valsIn[1] = valsIn[1].replace(" ","");
- String[] istr = valsIn[1].replace("{", "").replace("}", "").split(",");
- SpecificSettingSensor current = specificSettingSensor[count - 1];
- switch (valsIn[0]) {
- case "NoiseModelA": {
- for (int i = 0; i < 4; i++) {
- current.NoiseModelerArr[0][i] = Double.parseDouble(istr[i]);
- }
- break;
- }
- case "NoiseModelB": {
- for (int i = 0; i < 4; i++) {
- current.NoiseModelerArr[1][i] = Double.parseDouble(istr[i]);
- }
- break;
- }
- case "NoiseModelC": {
- for (int i = 0; i < 4; i++) {
- current.NoiseModelerArr[2][i] = Double.parseDouble(istr[i]);
- }
- break;
- }
- case "NoiseModelD": {
- for (int i = 0; i < 4; i++) {
- current.NoiseModelerArr[3][i] = Double.parseDouble(istr[i]);
- }
- current.ModelerExists = true;
- break;
- }
- case "captureSharpeningS": {
- current.captureSharpeningS = (float)Double.parseDouble(valsIn[1]);
- break;
- }
- case "captureSharpeningIntense": {
- current.captureSharpeningIntense = (float)Double.parseDouble(valsIn[1]);
- break;
- }
- case "aberrationCorrection": {
- for (int i = 0; i < 8; i++) {
- current.aberrationCorrection[i] = (float)Double.parseDouble(istr[i]);
- }
- break;
- }
-
- }
- mSettingsManager.set(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_val",inputStr);
- loaded = true;
-
- }
- }
- } catch (Exception ignored) {}
-
- mSettingsManager.set(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_loaded", loaded);
- mSettingsManager.set(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "sensor_specific_exists", exists);
+ @Nullable
+ private String loadNetwork(String device) {
+ try (BufferedReader bufferedReader = HttpLoader.readURL("https://raw.githubusercontent.com/eszdman/PhotonCamera/dev/app/specific/sensors/" + device + ".json")) {
+ return bufferedReader.lines().collect(Collectors.joining("\n"));
+ } catch (IOException | UncheckedIOException e) {
+ e.printStackTrace();
+ return null;
}
}
- public void selectSpecifics(int id){
- if(specificSettingSensor != null) {
- for (SpecificSettingSensor specifics : specificSettingSensor) {
- if (specifics != null && specifics.id == id) selectedSensorSpecifics = specifics;
+
+ public void selectSpecifics(int id) {
+ if (specificSettingSensorList != null) {
+ for (SpecificSettingSensor specifics : specificSettingSensorList) {
+ if (specifics != null && specifics.id == id) {
+ selectedSensorSpecifics = specifics;
+ break;
+ }
}
}
}
diff --git a/app/src/main/java/com/particlesdevs/photoncamera/pro/Specific.java b/app/src/main/java/com/particlesdevs/photoncamera/pro/Specific.java
index b3161759..72571ade 100644
--- a/app/src/main/java/com/particlesdevs/photoncamera/pro/Specific.java
+++ b/app/src/main/java/com/particlesdevs/photoncamera/pro/Specific.java
@@ -1,7 +1,8 @@
package com.particlesdevs.photoncamera.pro;
import android.os.Build;
-import android.util.Log;
+
+import androidx.annotation.Nullable;
import com.particlesdevs.photoncamera.settings.PreferenceKeys;
import com.particlesdevs.photoncamera.settings.SettingsManager;
@@ -9,8 +10,8 @@
import java.io.BufferedReader;
import java.io.IOException;
-
-import static com.particlesdevs.photoncamera.settings.PreferenceKeys.Key.ALL_DEVICES_NAMES_KEY;
+import java.io.UncheckedIOException;
+import java.util.stream.Collectors;
public class Specific {
private static final String TAG = "Specific";
@@ -22,59 +23,53 @@ public Specific(SettingsManager mSettingsManager) {
this.mSettingsManager = mSettingsManager;
}
- public void loadSpecific(){
- specificSetting = new SpecificSetting();
- boolean loaded = mSettingsManager.getBoolean(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "specific_loaded",false);
- boolean exists = mSettingsManager.getBoolean(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "specific_exists",true);
- if(exists) {
- if (!loaded) {
- try {
- BufferedReader indevice = HttpLoader.readURL("https://raw.githubusercontent.com/eszdman/PhotonCamera/dev/app/SupportedList.txt");
- String str;
- boolean specificExists = false;
- while ((str = indevice.readLine()) != null) {
- if (str.contains(SupportedDevice.THIS_DEVICE)) specificExists = true;
- }
- mSettingsManager.set(PreferenceKeys.Key.DEVICES_PREFERENCE_FILE_NAME.mValue, "specific_exists", specificExists);
- if (!specificExists) return;
- String device = Build.BRAND.toLowerCase() + "/" + Build.DEVICE.toLowerCase();
- BufferedReader in = HttpLoader.readURL("https://raw.githubusercontent.com/eszdman/PhotonCamera/dev/app/specific/" + device + "_specificsettings.txt");
- while ((str = in.readLine()) != null) {
- String[] caseS = str.split("=");
- switch (caseS[0]) {
- case "isDualSessionSupported": {
- specificSetting.isDualSessionSupported = Boolean.parseBoolean(caseS[1]);
- break;
- }
- case "blackLevel": {
- String[] bl = caseS[1].split(",");
- blackLevel = new float[]{Float.parseFloat(bl[0]), Float.parseFloat(bl[1]), Float.parseFloat(bl[2]), Float.parseFloat(bl[3])};
- break;
- }
- case "rawColorCorrection": {
- specificSetting.isRawColorCorrection = Boolean.parseBoolean(caseS[1]);
- break;
- }
- case "cameraIDS": {
- String[] ids = caseS[1].replace("{", "").replace("}", "").split(",");
- specificSetting.cameraIDS = new int[ids.length];
- for(int i =0; i list) {
+ return new GsonBuilder().setPrettyPrinting().create().toJson(new ListWrapper<>(list));
+ }
+
+ @Nullable
+ public static ArrayList deserializeList(@Nullable String json) {
+ try {
+ ListWrapper wrapper = new GsonBuilder().setPrettyPrinting().create().fromJson(json, getListType());
+ if (wrapper != null) {
+ return wrapper.getList();
+ }
+ return null;
+ } catch (JsonSyntaxException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public static Type getListType() {
+ return new TypeToken>() {
+ }.getType();
+ }
+
+ @NonNull
+ @Override
+ public String toString() {
+ return "\n" +
+ "SpecificSettingSensor{" +
+ "\n" +
+ "id=" + id +
+ "\n" +
+ ", isRawColorCorrection=" + isRawColorCorrection +
+ "\n" +
+ ", blackLevel=" + Arrays.toString(blackLevel) +
+ "\n" +
+ ", captureSharpeningS=" + captureSharpeningS +
+ "\n" +
+ ", captureSharpeningIntense=" + captureSharpeningIntense +
+ "\n" +
+ ", aberrationCorrection=" + Arrays.toString(aberrationCorrection) +
+ "\n" +
+ ", cct=" + Arrays.deepToString(cct) +
+ "\n" +
+ ", cctExists=" + cctExists +
+ "\n" +
+ ", noiseModelerArr=" + Arrays.deepToString(noiseModelerArr) +
+ "\n" +
+ ", modelerExists=" + modelerExists +
+ '}' +
+ "\n";
}
}
diff --git a/app/src/main/java/com/particlesdevs/photoncamera/processing/render/NoiseModeler.java b/app/src/main/java/com/particlesdevs/photoncamera/processing/render/NoiseModeler.java
index 59efc2f7..f6aeff2e 100644
--- a/app/src/main/java/com/particlesdevs/photoncamera/processing/render/NoiseModeler.java
+++ b/app/src/main/java/com/particlesdevs/photoncamera/processing/render/NoiseModeler.java
@@ -18,12 +18,12 @@ public NoiseModeler(Pair[] inModel, Integer analogISO, Integer IS
baseModel = new Pair[3];
computeModel = new Pair[3];
//inModel = null;
- if (inModel == null || inModel.length == 0 || inModel[0].first == 0.0 || (specificSettingSensor != null && specificSettingSensor.ModelerExists)) {
+ if (inModel == null || inModel.length == 0 || inModel[0].first == 0.0 || (specificSettingSensor != null && specificSettingSensor.modelerExists)) {
Pair CustomGeneratorS;
Pair CustomGeneratorO;
if(specificSettingSensor != null) {
double[] avrdouble = new double[4];
- for (double[] ind : specificSettingSensor.NoiseModelerArr) {
+ for (double[] ind : specificSettingSensor.noiseModelerArr) {
avrdouble[0] += ind[0];
avrdouble[1] += ind[1];
avrdouble[2] += ind[2];
diff --git a/app/src/main/java/com/particlesdevs/photoncamera/util/ListWrapper.java b/app/src/main/java/com/particlesdevs/photoncamera/util/ListWrapper.java
new file mode 100644
index 00000000..5e1183b7
--- /dev/null
+++ b/app/src/main/java/com/particlesdevs/photoncamera/util/ListWrapper.java
@@ -0,0 +1,19 @@
+package com.particlesdevs.photoncamera.util;
+
+import java.util.ArrayList;
+
+public class ListWrapper {
+ private ArrayList list;
+
+ public ListWrapper(ArrayList list) {
+ this.list = list;
+ }
+
+ public ArrayList getList() {
+ return list;
+ }
+
+ public void setList(ArrayList list) {
+ this.list = list;
+ }
+}