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; + } +}