From e698d6274fe5c7fe364fcbbbe5a8b618da2b71bf Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Fri, 28 Jul 2023 17:49:42 -0500 Subject: [PATCH] Update to match changes from here: https://github.com/flipperdevices/flipper-application-catalog/pull/90 --- .../external/camera_suite/application.fam | 4 +- .../external/camera_suite/docs/CHANGELOG.md | 20 ++++++++++ .../external/camera_suite/docs/README.md | 35 ++++++++++++++++++ .../screenshots/camera_preview.png | Bin 0 -> 3342 bytes .../camera_suite/screenshots/guide.png | Bin 0 -> 2233 bytes .../camera_suite/screenshots/main_menu.png | Bin 0 -> 1499 bytes .../camera_suite/screenshots/settings.png | Bin 0 -> 1900 bytes .../camera_suite/screenshots/start_screen.png | Bin 0 -> 1707 bytes 8 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 applications/external/camera_suite/docs/CHANGELOG.md create mode 100644 applications/external/camera_suite/docs/README.md create mode 100644 applications/external/camera_suite/screenshots/camera_preview.png create mode 100644 applications/external/camera_suite/screenshots/guide.png create mode 100644 applications/external/camera_suite/screenshots/main_menu.png create mode 100644 applications/external/camera_suite/screenshots/settings.png create mode 100644 applications/external/camera_suite/screenshots/start_screen.png diff --git a/applications/external/camera_suite/application.fam b/applications/external/camera_suite/application.fam index 40131ae9a..63687833e 100644 --- a/applications/external/camera_suite/application.fam +++ b/applications/external/camera_suite/application.fam @@ -1,9 +1,9 @@ App( - appid="camerasuite", + appid="camera_suite", apptype=FlipperAppType.EXTERNAL, cdefines=["APP_CAMERA_SUITE"], entry_point="camera_suite_app", - fap_author="Cody Tolene", + fap_author="@CodyTolene @Z4urce @leedave", fap_category="GPIO", fap_description="A camera suite application for the Flipper Zero ESP32-CAM module.", fap_icon="icons/camera_suite.png", diff --git a/applications/external/camera_suite/docs/CHANGELOG.md b/applications/external/camera_suite/docs/CHANGELOG.md new file mode 100644 index 000000000..40f20dfc4 --- /dev/null +++ b/applications/external/camera_suite/docs/CHANGELOG.md @@ -0,0 +1,20 @@ +## v1.1 + +- Support and picture stabilization for all camera orientations (0°, 90°, 180°, 270°). +- Rename "Scene 1" to "Camera". No UX changes, strictly internal. +- Clean up unused "Scene 2". This was inaccessible to users previously and unused. +- Add new dithering variations (needs new module firmware, see https://github.com/CodyTolene/Flipper-Zero-Camera-Suite#firmware-installation): + - Add `Jarvis Judice` Ninke Dithering option + - Add `Stucki` dithering option. + - Add ability to toggle dithering options from default `Floyd-Steinberg` and back. +- Resolves issue https://github.com/CodyTolene/Flipper-Zero-Camera-Suite/issues/7 +- Resolves issue https://github.com/CodyTolene/Flipper-Zero-Camera-Suite/pull/17 + +## v1.0 + +- Builds upon Z4urce's software found here (updated 6 months ago): https://github.com/Z4urce/flipperzero-camera +- Utilizes the superb C boilerplate examples laid out by leedave (updated last month): https://github.com/leedave/flipper-zero-fap-boilerplate +- Repurpose and build upon the "[ESP32] Camera" software into the new "[ESP32] Camera Suite" application with new purpose: + - Adding more scene for a guide. + - Adding more scene for saveable settings. + - Add ability to rotate the camera orientation. diff --git a/applications/external/camera_suite/docs/README.md b/applications/external/camera_suite/docs/README.md new file mode 100644 index 000000000..1f436a067 --- /dev/null +++ b/applications/external/camera_suite/docs/README.md @@ -0,0 +1,35 @@ +## Flipper Zero - Camera Suite + +Software to run an ESP32-CAM module on your Flipper Zero device. + +## Software Guide + +### Flipper Zero button mappings: + +🔼 = Contrast Up + +🔽 = Contrast Down + +◀️ = Toggle invert. + +▶️ = Toggle dithering on/off. + +⚪ = Cycle Floyd–Steinberg/Jarvis-Judice-Ninke/Stucki dithering types. + +↩️ = Go back. + +### Camera Suite settings: + +**Orientation** = Rotate the camera image 90 degrees counter-clockwise starting at zero by default (0, 90, 180, 270). This is useful if you have your camera module mounted in a different orientation than the default. + +**Haptic FX** = Toggle haptic feedback on/off. + +**Sound FX** = Toggle sound effects on/off. + +**LED FX** = Toggle LED effects on/off. + +## Links + +Full setup, wiring guide, etc. in the main project README here: https://github.com/CodyTolene/Flipper-Zero-Camera-Suite + +A firmware is needed for the ESP32-CAM module, see here for more information: https://github.com/CodyTolene/Flipper-Zero-Camera-Suite#firmware-installation diff --git a/applications/external/camera_suite/screenshots/camera_preview.png b/applications/external/camera_suite/screenshots/camera_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..5f66ec42c833d6464c028af3aa5be312a7bc09a0 GIT binary patch literal 3342 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 literal 0 HcmV?d00001 diff --git a/applications/external/camera_suite/screenshots/guide.png b/applications/external/camera_suite/screenshots/guide.png new file mode 100644 index 0000000000000000000000000000000000000000..87ed51218cb4f7b5cd39414798c3fa0335e10d28 GIT binary patch literal 2233 zcmaJ@dr*^C7QYc`kq)t|18tPZ&a%E&D>BG4fUf1yvC&!-kf?0al0r-nD9;dxEw+n7 z5Tzg$5?ERD077d>Qh5YBl#o_14v?e}61R#56CSJZB@pd2Dq&(A3RIk<6PF9jY-S`0Q>XGhxv9Vb|V08 z)YyajSc%}VXTxfJmYkIHuc}K!ftz9` z5r@N$n(r?oTnB3INl&Fwsx|hwo?J~1AX>G&T)G54nx$MY1dFbkkz zllvB)ApWg>_e=@K?d0pe%z(W_!jSaQ$L3J|;z=?42TE}Y>Jrplsj%bnIr-+8Nk<8J0tcnbbjLdqu|MKS3Qlm13@6RuoC!uV@z%cM z)if^8gPBI$Ua!o{P6xI@bDXb@j7n_?+ve zrdWm8j{P4ckk{<)waJ>0 ztuu+IcswpcQzGD8_cZ2CBox%i-#|_F#6ib;OC!_*ZFq(I6|R3!pE5YJNRT-={&z^+ z4vx#!M?W*Fhs)}GjWs*80~DzCN4%UOoQ;5Z6`XYN4Q8}y@vC9&KZ}R*Z)NElw;~(k z;7hGk%(NoU@6sX2&5c1!%a0Xu$~Cc^s@d0UzE&}x)J&s_KIzLXZ=W8O9Ukngvy7Ky+WNNMGbDwEEXaZD$*P-MnkDJNCmZ-nTL73^xzb6gtk z-zD2_r$gzMAl|p>5Bn51ixq`n3T`%oSaY#QC@OVq7qh!5p`Ca}MVf=e6#86lqwwMS z)3#(BvgXeHRYX|_mG5iwV5Hp$K+r`-OKZP@UFAiK-nryayQBkOEp|R^~OjhZb zC@6a8m}N?bCC{(v3DCf!E;S2?6<+bzBl{tZNynwXxq882$_XP z;Zm3>lwY*dJUCIEA@n?35cx|U`%klHCS(su%a1#{xljb%j^)ZWA-SGFi{?apE@?Fc z5}utT(3*9)QMpfLB%DnHmw^EV2R7TS@UA4A6%>M^lpj_wuH3apo5u8YA zJ$96)+t8ELedAYUf`R^!wM(oxI$PJ18l17KKCM_fc4{!>^v=)1PYhCctL|x|j)fYC`osW0^i-6eo Li3ddolE3^P)2XN* literal 0 HcmV?d00001 diff --git a/applications/external/camera_suite/screenshots/main_menu.png b/applications/external/camera_suite/screenshots/main_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae802cc2d31175779a3914ea594a0390fe8809e GIT binary patch literal 1499 zcmeAS@N?(olHy`uVBq!ia0y~yU;;8388|?c*QZDWAjMhW5n0T@z;^_M8K-LVNi#68 z_IkQFhE&XXdpEFeikCz~;O#R-G4s0%YS$hAacik2JIk)d_j9(-{-SW$_nCL#-@}iu z_vgnm?3lj(etq4)nc{QU8Pru67y_9X1ipU!Bk%oAlJP@a_1n8qj0`TE3=UHm7+h@c z)iN>s*?+UH!IFVt84H7g7X!m0e3YHt{}WZ-^Fm{*zc*wv&FK||m;*HKN?tX?`R_ZX z-#H!k`=@r1Z-en>CWa0nh6W8rh7PL~zJ%_*`}FsJvz?j#W8S}M_p{69?6s@kmR;BO zKfa(e4B|{xAhrB9bH%nN|K7j(_x0BNyPw|6<-UDyy7}q%s_Ulri{>5JABk}N+$#PA z?(a?U=S|zQHzF+C^;YhH=zQkluiqJCKF(Qqh70bktnIc9y5|?nkNjQpbML(D{nPiZ zJ9+Ezo=e*6f6iRb95WHgH;?bCe^|b{UR>_M)NOC}B3TLzIamPJyq9|r^{wjOEF`@j z>=@2Ru)o-Va1t~aD5R?X{Q8*ty}9o1zt5M?%lv)6&i3E5`K&vXv>|~EG<`+?UcN2g z4&G3F#`@Yotgwyj_4oJ>mW=K$grlU)?4L8fbt$)<@oF{>gp`j6&hCp$Ddmd|v z>%PbQF%yC5hz*$FKrz{`{4QJn=e|F;zO(6Do{M|W9PxYeH?{`tO^9%@O5tZ{_-w$= zaKHg#_bEAGf0WN@5uLGjp0Z!vWcCcpcoj+5*(16eUq7?14;VU+qnlA=1fL1gQhVu dhzze|{_==S09OD2 literal 0 HcmV?d00001 diff --git a/applications/external/camera_suite/screenshots/settings.png b/applications/external/camera_suite/screenshots/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..32de46d72a82b836a5cb4da71a8b5dee4f9166f3 GIT binary patch literal 1900 zcmaJ?eN<9s7=MZKYcpIso*DVkvK>8oI$2F;8feYUkENChMfs7_tb;XI9GyW1xm>mU z*m9H=qNbH8*;y?6Km%fnEa6%b99y84#gqiU@Tv&zvT$8@I{V|E_rCA@+~?!>Jip&P zz9}x!*$M9i0C0|uibw!p9`cF-4%Q`Rgc5)(j^9R6XaFqy-TGkI{tK4?VDA|nu|6rE zGpJr)`Xb0>K}UXvv~6<#G0sY@<247DiU38;*}5bJGbhmP=FV-+)8g|d=w`FlAjAwM z3oR2mAydfI&fLxj0MFt9II;+Unp7nKtIuHGZ03XT`l|waAlfzsz-|Y?+B6R={e_6E zS%@ie>x%&{FBoZVj{(@=h}?ZO1vI+Y$Si_k^WMfnf2ndbnGLy`&gQnJO}2`K z?KU&SmEt!di*I~MG42i&ACi+|Lz`snw>5?-&CP_ORXUW*m*ew7Oxt_-LS|Tq{JtCA zl9$Pegc#$u{HhvL25#|}3&;6%Vg|c}cYx<630-5$6aWX(H_koksFFQOP4KRnyt-G! zgwtM^SCE6ZIC7I<1LXw%5x?|$tw4z#!+;K#H&xX?&IbI~sh{;N_M7%RSVUo%!}>Yy zkL*FXqqTm-tLv|JLkjwH{UYj}$hW@kQcV+XI&e@4rdP`T^31{9sfPNOQt{QE*(qfu3GeslJG94XPv7 z<{s@t<#f@Aaeq>gMX|i7o*F5a0S!e0IRQm#Dpfk zyE>{TTBv#Js`z?|I1q(iy{eo_I~4Cc6pd<$p9&#NGAf#)7THYH{ZCt8FPJ|RPJpRF zNV~0Fw6aKs5095Quo$v|?$xN{f9ME#XbfABkdd<#w2jBRx70SmVa9kvoB$S?*7hG5 z^fna;y_kImIyK(JlH`Z}M2WYww|udU&4{bB&34twmeNrPo1FZRPn3kFzQ-2oP*b8f zNo09?3yTbs>ftVF`#_4@q-?~AK)`rwohLL=X>uxRCagT*(dk9>vHMfv9}6~TU5PJN zEb~|Rcd6Lfd)Q%(Pn6iXz5xRx3)D>)^U_7f`dV2Ul0b|D|qN&ta(4&<%v4hIa5Zu7{(zk+S<@Rg? z(%5i=T~8;EAVo)@g|RN_cj81oC{h^{VEg>$TGP67Z=?8T&n1>ZH4`?URf*O~WGXhG zl-5c`+$GeM#OkoY4XaArwY-bXxg){5q%B`_2pJW*-1Jl2?B2il1Eb89s4PggaXZK* zIk|f`uQ>TZsPg&~J$xSJjh%{(>gfEiBQcDWp*{iY%4yf+z3{z1UVv%`o0#~u+67#b z-e+f(&@#)aowSDym-jJq`bHrbJ@be-3KSM{cj9`&*y5H;<}dYwVjq;`G>qZH3%T2d zc;>=-2}1?ZMQA~ywjrt*k^*_cjb(hsU@koD^XG7D==Rgy!-2%(L;&zMi8Usi!{!H} q{64_Xm9m$I{(~2S?HsYRU@Cmq(bqmZDnx#tAo`2Ah^7rY3jYS@P22$h literal 0 HcmV?d00001 diff --git a/applications/external/camera_suite/screenshots/start_screen.png b/applications/external/camera_suite/screenshots/start_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..6fe690c58414675c4fff5ef8552d1619c1ad7442 GIT binary patch literal 1707 zcmd5-ZA@EL7(N9Y4h81o7aNo%lW4+1hD2aMDJXJ*Et{V})iTD%uCWM=YT9z4m(4^s zMrjtNp#&~E{j<>yVnx289j4$YTuH{Q4B9#n3M=-)@DA5P>#ZzuuRr~xKW?6LbIy6+ z=Y5~&&AIT}aVRigUjP6gFf$|V4FG)TB?mm}g{*sm!!+zJ&k%?K2>QYMaXya>+7G}k zVP;zDThiv=%&Dcbu^?sg_UM_4!O$DFFjW}gB^?B4}EZ3mo{9VDcZ?{g}dCN2(DugUzi)Oxk5Z){;q?f$x zP?W&umaGvaf;D6`;WPlR`+z+WG~5SK9Zvb(O9N-05^YJOj`@yO$crTy z+3!_@;P2+#jyClmf9o24cd7RQHc%^Ba||_{DA=_fj*eO!{EI>(cZ`S4KIkilCO+=s zU5FWQaSaWPY^p>8skXWJQw`Yu^>18GC}|mX)*Au1;s*|7(NGnxQy44LH?hL{*)sW* z_*cl%=hQY)!ohd5>rhJT-sqR(h+yRL?c?;Vn_ODTkbfcPUkX$~LuL1;CP^h#z1P!7 zsfJYyGAo><*;=YtM4$;yRozO6?hvbo@g=y`zhwHI$Z#2n&8w41F65EV8AV4bqcA;_ zpl-OO$1q@PLyW|ZnQCOkuqu}@ABACjweEdu+Zr2A=XoVf{<6;s$q zt!qK#ifhJMJ4fr1PP&(njjHGMD*G}-TG6l>m8qf&SFAI zI^v-*XjmX=85m8V74Z$L=5DoVcwg~GLcOIL_u;j4y>2y*5}iLMR_%(}cBV;xE{v2!x(A{VPy5Tel(`2{<rJ}h= zgZML1|M0W#zsL>%k%6f2lf1P%y=4KiuG7! z#XFu^5TqOvf7DW0By<_Y`ZpOSoA%8gC2l(>k@cMR$+9r9s2MTDR45L%ceU!-^CLZa zP-I8ywXhi_EIQ1Ty8%DKGD$xV_c`Zb&-yFrj<@;iE>Oc~=WG(-ww{@u^ohqLr*~*l or@|U?99PkQuxC4-{YS-R{fMTn1YbTuzdj)I)#GW`U(P@GC%ZCr_5c6? literal 0 HcmV?d00001