From e7cdd38056d2f6f307884580d60d7c3d5a77d1b6 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Mon, 7 Jul 2025 02:30:30 -0400 Subject: [PATCH 01/18] Checkpoint --- .vscode/launch.json | 5 +- .vscode/settings.json | 2 +- PiPedalCommon/src/DBusDispatcher.cpp | 11 +- PiPedalCommon/src/include/DBusDispatcher.hpp | 4 +- PiPedalCommon/src/include/HtmlHelper.hpp | 3 + artifacts/mod-ui.svgz | Bin 0 -> 1002 bytes artifacts/pp-ui.svgz | Bin 0 -> 1509 bytes artifacts/red-light-on.png | 112 ++ artifacts/red-light.svgz | Bin 0 -> 5542 bytes src/CMakeLists.txt | 5 + src/Lv2HostLeakTest.cpp | 2 +- src/MimeTypes.cpp | 12 +- src/ModFileTypes.cpp | 1 + src/ModFileTypes.hpp | 2 + src/ModGui.cpp | 531 ++++++ src/ModGui.hpp | 180 ++ src/ModGuiTest.cpp | 117 ++ src/ModTemplateGenerator.cpp | 295 ++++ src/ModTemplateGenerator.hpp | 41 + src/PiPedalModel.cpp | 2 +- src/PiPedalModel.hpp | 4 +- src/PiPedalSocket.cpp | 4 +- src/PipewireInputStreamTest.cpp | 2 +- src/PluginHost.cpp | 266 ++- src/PluginHost.hpp | 70 +- src/Units.hpp | 1 + src/WebServer.cpp | 9 + src/WebServer.hpp | 1 + src/WebServerConfig.cpp | 6 +- src/WebServerMod.cpp | 308 ++++ src/WebServerMod.hpp | 61 + todo.txt | 9 +- vite/CMakeLists.txt | 3 - vite/index.html | 2 +- vite/public/css/modGui.css | 64 + vite/public/css/roboto.css | 8 +- vite/public/fonts/comforta/Comfortaa-Bold.ttf | Bin 0 -> 105220 bytes .../public/fonts/comforta/Comfortaa-Light.ttf | Bin 0 -> 127532 bytes .../fonts/comforta/Comfortaa-Regular.ttf | Bin 0 -> 98408 bytes .../cooper/cooperhewitt-book-webfont.woff2 | Bin 0 -> 11152 bytes .../cooperhewitt-bookitalic-webfont.woff2 | Bin 0 -> 11728 bytes .../cooper/cooperhewitt-light-webfont.woff2 | Bin 0 -> 10984 bytes .../cooperhewitt-lightitalic-webfont.woff2 | Bin 0 -> 11952 bytes .../cooperhewitt-semibold-webfont.woff2 | Bin 0 -> 10964 bytes .../fonts/england-hand/england-webfont.woff | Bin 0 -> 43872 bytes vite/public/fonts/england-hand/stylesheet.css | 10 + vite/public/fonts/epf/epf_lul-webfont.woff | Bin 0 -> 14728 bytes vite/public/fonts/epf/stylesheet.css | 7 + .../fonts/nexa/Nexa_Free_Bold-webfont.woff | Bin 0 -> 30992 bytes vite/public/fonts/nexa/stylesheet.css | 33 + .../fonts/pirulen/pirulen_rg-webfont.woff | Bin 0 -> 15836 bytes vite/public/fonts/pirulen/stylesheet.css | 9 + .../questrial/questrial-regular-webfont.woff | Bin 0 -> 21868 bytes vite/public/fonts/questrial/stylesheet.css | 10 + vite/public/img/BlackKnob.png | Bin 0 -> 114549 bytes vite/public/img/audio-input.png | Bin 0 -> 5590 bytes vite/public/img/audio-output.png | Bin 0 -> 5672 bytes vite/public/img/footswitch_strip.png | Bin 0 -> 42663 bytes vite/public/img/red-light-off.png | Bin 0 -> 766 bytes vite/public/img/red-light-on.png | Bin 0 -> 1790 bytes vite/public/vite.svg | 1 - vite/src/App.css | 0 vite/src/App.tsx | 36 - vite/src/pipedal/AboutDialog.tsx | 2 +- vite/src/pipedal/App.tsx | 23 +- vite/src/pipedal/AppThemed.tsx | 2 + vite/src/pipedal/AutoZoom.tsx | 23 + vite/src/pipedal/ControlViewFactory.tsx | 20 +- vite/src/pipedal/FontTest.tsx | 75 + vite/src/pipedal/IconButtonEx.tsx | 6 +- vite/src/pipedal/LoadPluginDialog.tsx | 25 +- vite/src/pipedal/Lv2Plugin.tsx | 171 +- vite/src/pipedal/MainPage.tsx | 63 +- vite/src/pipedal/ModGuiErrorBoundary.tsx | 104 ++ vite/src/pipedal/ModGuiHost.tsx | 1453 +++++++++++++++++ vite/src/pipedal/ModGuiTest.tsx | 346 ++++ vite/src/pipedal/OkDialog.tsx | 105 ++ vite/src/pipedal/PiPedalModel.tsx | 10 +- vite/src/pipedal/PluginControlView.tsx | 123 +- vite/src/pipedal/ScratchClass.tsx | 91 ++ vite/src/pipedal/svg/mod_ui.svg | 25 + vite/src/pipedal/svg/pp_ui.svg | 23 + vite/vite.config.ts | 8 + 83 files changed, 4733 insertions(+), 214 deletions(-) create mode 100644 artifacts/mod-ui.svgz create mode 100644 artifacts/pp-ui.svgz create mode 100644 artifacts/red-light-on.png create mode 100644 artifacts/red-light.svgz create mode 100644 src/ModGui.cpp create mode 100644 src/ModGui.hpp create mode 100644 src/ModGuiTest.cpp create mode 100644 src/ModTemplateGenerator.cpp create mode 100644 src/ModTemplateGenerator.hpp create mode 100644 src/WebServerMod.cpp create mode 100644 src/WebServerMod.hpp create mode 100644 vite/public/css/modGui.css create mode 100755 vite/public/fonts/comforta/Comfortaa-Bold.ttf create mode 100755 vite/public/fonts/comforta/Comfortaa-Light.ttf create mode 100755 vite/public/fonts/comforta/Comfortaa-Regular.ttf create mode 100644 vite/public/fonts/cooper/cooperhewitt-book-webfont.woff2 create mode 100644 vite/public/fonts/cooper/cooperhewitt-bookitalic-webfont.woff2 create mode 100644 vite/public/fonts/cooper/cooperhewitt-light-webfont.woff2 create mode 100644 vite/public/fonts/cooper/cooperhewitt-lightitalic-webfont.woff2 create mode 100644 vite/public/fonts/cooper/cooperhewitt-semibold-webfont.woff2 create mode 100755 vite/public/fonts/england-hand/england-webfont.woff create mode 100755 vite/public/fonts/england-hand/stylesheet.css create mode 100755 vite/public/fonts/epf/epf_lul-webfont.woff create mode 100755 vite/public/fonts/epf/stylesheet.css create mode 100755 vite/public/fonts/nexa/Nexa_Free_Bold-webfont.woff create mode 100755 vite/public/fonts/nexa/stylesheet.css create mode 100755 vite/public/fonts/pirulen/pirulen_rg-webfont.woff create mode 100755 vite/public/fonts/pirulen/stylesheet.css create mode 100755 vite/public/fonts/questrial/questrial-regular-webfont.woff create mode 100755 vite/public/fonts/questrial/stylesheet.css create mode 100755 vite/public/img/BlackKnob.png create mode 100644 vite/public/img/audio-input.png create mode 100644 vite/public/img/audio-output.png create mode 100644 vite/public/img/footswitch_strip.png create mode 100644 vite/public/img/red-light-off.png create mode 100644 vite/public/img/red-light-on.png delete mode 100644 vite/public/vite.svg delete mode 100644 vite/src/App.css delete mode 100644 vite/src/App.tsx create mode 100644 vite/src/pipedal/AutoZoom.tsx create mode 100644 vite/src/pipedal/FontTest.tsx create mode 100644 vite/src/pipedal/ModGuiErrorBoundary.tsx create mode 100644 vite/src/pipedal/ModGuiHost.tsx create mode 100644 vite/src/pipedal/ModGuiTest.tsx create mode 100644 vite/src/pipedal/OkDialog.tsx create mode 100644 vite/src/pipedal/ScratchClass.tsx create mode 100644 vite/src/pipedal/svg/mod_ui.svg create mode 100644 vite/src/pipedal/svg/pp_ui.svg diff --git a/.vscode/launch.json b/.vscode/launch.json index 9dce54a..300d90f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -103,7 +103,7 @@ "request": "launch", // Resolved by CMake Tools: "program": "${command:cmake.launchTargetPath}", - "args": [ "/etc/pipedal/config", "/etc/pipedal/react", "-port", "0.0.0.0:8080", "-log-level","debug" ], + "args": [ "/etc/pipedal/config", "${workspaceFolder}/vite/dist", "-port", "0.0.0.0:8080", "-log-level","debug" ], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [ @@ -142,7 +142,8 @@ //"[pipedal_alsa_test]" // "[wifi_channels_test]" // "[locale]" - "[pipewire_input_stream]" + //"[mod_gui_init]" + "[mod_gui_templates]" ], "stopAtEntry": false, diff --git a/.vscode/settings.json b/.vscode/settings.json index 625c4ba..429b7a3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -161,7 +161,7 @@ "cSpell.ignoreWords": [ "nammodel" ], - "cSpell.enabled": true, + "cSpell.enabled": false, // Disable all automatic completion suggestions - only show when Ctrl+Space is pressed "editor.quickSuggestions": { diff --git a/PiPedalCommon/src/DBusDispatcher.cpp b/PiPedalCommon/src/DBusDispatcher.cpp index 234efdf..844e7a5 100644 --- a/PiPedalCommon/src/DBusDispatcher.cpp +++ b/PiPedalCommon/src/DBusDispatcher.cpp @@ -73,6 +73,7 @@ DBusDispatcher::PostHandle DBusDispatcher::PostDelayed(const clock::duration &de void DBusDispatcher::Run() { this->eventFd = eventfd(0, 0); + threadStarted = true; this->serviceThread = std::thread( [this]() { this->ThreadProc(); }); @@ -169,7 +170,7 @@ void DBusDispatcher::ThreadProc() int eventTimeout = GetEventTimeoutMs(); if (eventTimeout != -1 && eventTimeout < pollTimeout) { - pollTimeout = eventTimeout;/*+-*/ + pollTimeout = eventTimeout; /*+-*/ } if (pollTimeout > 250 || pollTimeout == -1) { @@ -197,13 +198,13 @@ void DBusDispatcher::ThreadProc() LogTrace("DBusDispatcher", "ThreadProc", "Service thread terminated."); } -void DBusDispatcher::Wait() +void DBusDispatcher::WaitForClose() { try { - if (!threadJoined) + if (threadStarted) { - threadJoined = true; + threadStarted = false; serviceThread.join(); } } @@ -229,7 +230,7 @@ void DBusDispatcher::Stop() this->stopping = true; WakeThread(); - Wait(); + WaitForClose(); } } diff --git a/PiPedalCommon/src/include/DBusDispatcher.hpp b/PiPedalCommon/src/include/DBusDispatcher.hpp index af4288c..1da5414 100644 --- a/PiPedalCommon/src/include/DBusDispatcher.hpp +++ b/PiPedalCommon/src/include/DBusDispatcher.hpp @@ -24,7 +24,7 @@ public: void Run(); // Stop everything, shutting down gracefully. void Stop(); - void Wait(); + void WaitForClose(); bool IsFinished(); // Stop, but don't wait. Suitable for use in a signal handler. @@ -78,7 +78,7 @@ private: std::atomic stopping; std::vector postedEvents; - bool threadJoined; + bool threadStarted; std::thread serviceThread; std::mutex postMutex; }; \ No newline at end of file diff --git a/PiPedalCommon/src/include/HtmlHelper.hpp b/PiPedalCommon/src/include/HtmlHelper.hpp index 215f5ac..fc0d5cb 100644 --- a/PiPedalCommon/src/include/HtmlHelper.hpp +++ b/PiPedalCommon/src/include/HtmlHelper.hpp @@ -35,6 +35,9 @@ public: static std::string encode_url_segment(const char*pStart, const char*pEnd, bool isQuerySegment = false); + static std::string encode_url_segment(const std::string &segment, bool isQuerySegment = false) { + return encode_url_segment(segment.c_str(), segment.c_str() + segment.length(), isQuerySegment); + } static void encode_url_segment(std::ostream&os, const char*pStart, const char *pEnd, bool isQuerySegment = false); static void encode_url_segment(std::ostream&os, const std::string&segment, bool isQuerySegment = false) { diff --git a/artifacts/mod-ui.svgz b/artifacts/mod-ui.svgz new file mode 100644 index 0000000000000000000000000000000000000000..d8e198c461beea11af10decbf8b3fa97b53f26b7 GIT binary patch literal 1002 zcmVC3JZ6WiDrvPo8IS5+(Zal7vfI0+iS z5s+jizrNQtpGjubG8zq>d+xdCUSHVVe0?hmbWwGa>uT#!pLj@Bsm}81u=W1={s)dc z)U-*JC55ik)~mGlb+_33f-(BNR!OTebj{l%`m1_v(&VJjr(@fm)~nU^diC=T^mTn$ zeMT7X7K=@DIV=!@tgJn5J;purbX57_*ba}ETwQ9k5pXtmTCKIcBj-Yf$q zRW<8geCvJGsL5_lNvfJvk5BUZIzxUB_>Df-soH~t@+;M@zJ32T1TpcmHXCJT)vtlA z%LpMWa62t_IsBBl1L|hz+!)Wy=#7Az=>SR3fv4o4QeEhJ>;1a7R~LBEb*Ab*MC>&S zX&6b~zQdXNOmvaqq?)6?8tLYkWcmtwa8EG7i2`{RPmd~nRrQNbYOwx5$yD>&`^%{L zd0^=DT&k+Y=PGYu#%0+tjJ-o`2C`3zM&0M#v@T)Es2|WklIT91!Xo3)7ZHyG_Rv`h z4Z-mW$pzyqz7JpX3MPWP*M&x*{D9HFLX^;l#yZN|lc{u}_m4wm@|KtRO+oh$!s)rL z&A^J}UBO)KAL^l%U93#)n{k!Q6YE2VJDnnVQN`B#+vKB%Du-I1Pw+abu7WqJb`^IP z*_@L0=wfhY?Rx8iE2T}lshp~*flv5P$0!ayM1G=EVmqJFA z2~Z(RBO?RGLjV%Vu$aYRB=5~J8B%KwRAX)eW{NbHaETcxtQ{_%42VS$37{8jQe_;{ zk?;K8i3o5poSHkT!N-J-2PY#c?JPQ#Cu4F}B@*)*reTt?sq>R`IG`9Kawa5>z$HoHn4QOG5pIGN=*Y`#HeVOUK2 Y722#0@c%ROulsKCFJmF$Xx<3`07^3VkN^Mx literal 0 HcmV?d00001 diff --git a/artifacts/pp-ui.svgz b/artifacts/pp-ui.svgz new file mode 100644 index 0000000000000000000000000000000000000000..dfc4be1803c181660ca3fc6fe3a35befba3e19c8 GIT binary patch literal 1509 zcmVefL+e>`MZO)XwZ(l^mc63KU4+(hs0TS|Tiw z0!dr8zrM4}i)4}xf&fJ;!!UVv?lU__UVnN%9)hQ=s`Ikggb=eZ$ck;5=EZIk{{8Kb z$b>=NBt@DW$|Bo@MHzm&y;=VfMZxDPOPVYV&Uv#B{wyBqZF0(j5BsJ$t(MF4`5fmR z7?;&<`7wy1+nbwp{j|FY0@6yG{U$^ay0?9n@Al2``jltq-^=Gs$O0Cqm<#JZ?n$=i zmw>?odAbS7aC_RjU0sP`jKPOHmKb4_6tD=8Ax3}^gO6URrkqdoyGqM#ksK-2(MHLHv?U!N9k$>p*=5`EP*$7p*L(lz z4(`e-&8q&0`Oll9l1h>{FVxZ)Wp^?(s@|7pXS&`eX?dnG7z?<=D+_Gye7n!K4_S3r zCKZJ~5lOT9p^q;G_cM_ww~xoHXrjj=Z>Yw{V<+Ll+f}Y0_sOBo#(J-1d7O!POY>`I zlHF1Ypl1%wc|qAn-OT`_^g9y$Z2<<8Bs!7jnF@4AFYg~6ljr=Hzh;!_#PIg9s$6jn z$xB8x^nV}>mVSuR?7qH?jeEoXXg9KRNba)3Cj9F3gNc`2RX(1MWtw#!!i&|;6EKRS#i$a{Vv1o4aRs_nRIHPtdUsO9WYBA}&YEFH zk5#Fci-;DI)gp^pIcCvx<}_vIRk`hhLuooOrTTCMc2W}g5U#H}6%?eHI0cGL)1lIX zQ!_ZFW_CGMr>c4H7244xdDBbDHd;jNlW%<*Y7>wrKlt35!6|5xnF6_;|{9A5z%K%@EKLP#Hoy{fv>*d=?xtZSH#l`wK}Yxz)j*)|)E z?Q^~Ajtfr2j3#YR6_QD3Ptb*ll=gyGGI~&I1z$UkdykHcf`5^Y zj)8C^E@6SOrpeLRZWm>QL{Cv}t|(x-2?DgC8qp%sfbOgG6*v&g923nE(SO53oYt|R zbxj}*s2gq$v>EXl=T$7!V7S<8S0rZ&y;w~ly`b} zJ?+f0&XjYelw*H{ad1R9VoEn^$~I<>Y~&2pOqmA9MDu-~F~i~=(TtpB89qZYV~&|n z%nZYr8G`vyei_pX%(2Tnxs18x$Ean7S>}jkhF8p#R(^t2>^r2gUhZyh*6#oG+nav? Li + + + diff --git a/artifacts/red-light.svgz b/artifacts/red-light.svgz new file mode 100644 index 0000000000000000000000000000000000000000..6df12600ca033b9e080568ad8a487bdf0a08dbcb GIT binary patch literal 5542 zcmV;X636ZtGUOPh()Z387tGxaY9=^TtQYUkxH28jN zF2{HD?M+$PscR=$>V3aWv)lju_u#kxxx2gJ3(u}R_vRE;;f<8WrDNyb%}-%f<=-Ia zbUNKfkB#?P5kNoR+}-_qF!-%(g2BzrYoEyNxgm1D--12_Lob)7$gRTfw~tq$7X@MU zeAz_aiObsWx9|;ogP}K%%_W$34*q>}GbgnVV7i6p-X-T-@4?Xh#Rx3;TbbJq=*b6X_CN^Uv5wsMeh*w4n}@{dz07ZSyA2jQQ|##zQ2c> zsPdq^-X)O(MTY=-p3Gh5`}cVoTpgly^XU66LtgFdUU!0(q~*6Klkc~mA%C9GWyK}* z)c)%JC(xene`>fdv$}9R9}MB$r(Ok(mZRs+JNVwM+*iZ22^jm$98TE9JHjvwbm@Ju zzGjEQFbsiRdOfu!_@U*$e{(&*Jlj8n&-n_$NYD=4d3GTdwi|hA^KN|!FJW%JxmZVL*nRlzc>aHFv45~5{8jK;}}J7nj&HBx?_?i zFqB4^>yEKMJG2~Z5$3svXb>6RxWFFqvSBB9f z0-&R>1rZIyUp#w0hGF!Fy<|X;knkstNti~!-*vy}7yXi8C-EBj-=Uj*=qKlq-YagfYm;EayB3PT+ZT`Abrw6HH;TqTq0fhiA<*jy z<4@5i20ysI?wF#^VgbAE_fO>uio{@=_$*N|z$;4O*A@(r{<{x70tn}80_ptva0p?P zVeqf&B;bqqDpz0ih7vdfe*z6vYtj@{EK=T^uKQTuhr9+D(PETc>ed> ze_g@thp@f`P>X>1zNE|!T)yJr7Jb_bE?;y}@Hn2CMir>iYET{<=gM)Onx%JH>)F6g z{?etL8RYfS-nu|g{AJ}1sQD4%{;b;37s7Ko(24;mhBC;@TKucF{#D!J`z?M?<0SH0 z{yu@REbO!dW$@wq?ZK{!sQn4~1wOy;NgSsz1Si1-4u%B6ok4&8N5Q;g^3TCULH2qJ zCixac@-2MiTinRkfYJ9jbAJ7!>%C~s&)17ljXk|e-xBM6BjB<Ys?N%j1k6tdzOJ7C(-z=WRzA`W-9;Py%2?{NuL2vGuRo{^&ejjbxkz1tE=tC}mI* zR65=r4Ok4hhZz#60Py*qCJ+JzTYU~+U`^lz@$&`ezdpNNp0a(O-GFq$ekaa)^JGTSxA}GMZ9+cQ)$1W>euXyTu5chAo9yP~B ze?EoMGmvGNoz6p-q3vcTuz>dl=gwCnz}Nbn&~sw1*kyL%zNn>V6W1%_r}??a`Tb~d zb{-Vx1^agL4D9oLeU=@r%;+56cNn0%4~sd6I7(gVI7KN~-QDB!euO5ePb{9k13+K| z`NX8Xvcku%?(?pL-A0F~_uLnm_cHCeC_u2?C3fc(&tFiSLnU};85CKaA2Jsx%!~2u zOUPWVKMbANJ1_Zu%ZX2jKgd%zDsyndw=_#Vpp*-6l%C@Bokf(MkIAoolqBE&g{(Sim^Uu9^t_@ClQ9SPbQ|s$N-ajaK zSCl-=6rOZDad|7nnzzXPNw zO}*mgfw3<*c}WuGT>bnmpy0m@sK=RuV}`s(>Vp=21Pr~WNt%IQ+ZXLwkYevj zE6{$<2lpg{60a-UkAQ}Nj?Q12KGV%>$~n^j3Zu*?6mubg^oR8NHjE!_4pDozOT5&* zJJT32Ee>|_=@y;!?tguY&P&hjDg;vPC60eAw%^L>_gDqVW58ZTlJb$73!e3`rBOXl2&(GQiPW!!D@`LVv9C%T9=gI`|T69)d?^GW4!q@M9 zPjh}f{TPNVbD$D+yNa^&&wbKYHPx#E&b2H1+rmuSV!^%Ja!LB@iY zYM7y52H+EazGMTQwZMN|@1+HNZr~;=Z>%(lX9LM+!#KK_B`0H?^n>#N$cbe~uES|j zwDT@^B(S~;VH0Hz?!*n9gUPy>i%kznZDZ=*+HlGAz;s)psTbUN5}IL{IyYF2qcOGG zs`j{DjTh7$+B6Nejj;s{$)S*z3a{pHD`)XIN(`CjVbRP;RZ)%Bt2xe5PTTd=EOpg1 zWOEROT353NYj2fvUFXA-spNtxTeg`WtDV^TOO=2acPw`qyd!dRvyB&{fO6O|>AL80BGQ<_B{I@MrLS1~t>J3?LTb9H9}EaK;~#v2e`y zQqXmj)JbJtf+F6sh;%&J({sAMKNasVcVF>14d-V7$e7bF^RB zF2+yi4JE=&!ZqrI)Xamu-um&BKa~q;FLHzR5k^m8RLm`WugeO3!Vv<~GCr>*YazfK z%cW_g=z^t|x#1@SJsfdNSFenK3yus@?|QfmR(7#6Nn=2W>AcoCna<)>7%}UL+MOsh zu=J#?#1k;&9?c=#t)}%TT5ZBJFDZAwac3HXmMjb@7Fp2fj7QRW!B{>pkFk5a3Gis*FwPpr#&L6crk#+o-5EFkBSdF_{g~Dece0Yv4ssePEfA6lx5u?1=k206 zlGVnmi-B98W=ZWzHsITRs7^GWx5uaDObzVB2@|>KU9HPaWhX8IP7_jmh7rR}j4t}2 zFT#GTEc=B8D-x1gADr?!FFxz0qvFKy4drWw?;@gv= z39PN3_M=!8FoP7l&3>bm6gM9a3uK);%67BkcCnzxTQO@k$iQ97!Um#iVl6ZV*sQ%Y zX?@ceLU^P?YDJoGE=dNCiUB5yvx?y`N$zLVJP$@QPbm?%Yo=J5)%;?Q4oIDx9M}k( z@DAh6m(my!Oxi-#z1wdbl^ca>x?L}~Ei>PX4C2+uq;?vN4We>H>1oQdH!V)Zy+k=o<;m1!NmH|C(o7r!uWN$@{8d<{$qTaUj|+Me*`g)cJP1$1s}RSZa9O zCdVVQy3o6jjF+)dYX_bmyvfCvbOI#g>jw`n*}8ju@kzOVPGXk?_=yU6lg@tdNZ_28 z|38C1W>A0roI%^IKiwnkWbD|GGt3D!|_3o+X^pVaoF1D8C2sj}>S%^0M9gN8W;lC@Y<_MDgl5N5 zt}Eh+ie{aXWP&^b!c(H=cz0M^$rM>^BGFa_Bbbh)U2Pu5a^#$*?B4NZJ`{q1E`g)9 zQ@23^K16GCyF4xT+C~sHu9fGcqe~}VHv~N>r}iORVtj?~I=-VzAG|P6w%G6>WnQjIkN-)kW@Qc0R*;Lma6!rmV3_c7Zfi zXrh#j*+!mZdbaikJ9>*d{3d0Y7+xk#fgX1`e<-Or>);g=#XLIp^tG^JHIa4Z2SZmK znVF*eOwU4FHWJdBMCpzs9Jv_}WCJ10@otUCU5Sh(Jor3|v-Jo@lxlez5sTLD)j38D(ZRM($wN6N zZIkC`b7(ZINO+Ag)U2R}emU~}KDCEac;WleCh^8biYhgUMz$PHM1D^9sZbYImwIc- z@CT;r@V>!>g(*p5yiAsBj@l1{?a|xVJBq=XNiim!@Me4=Dc)g{G23|nS3GR`_j@(WRw<+ymn#Zp4vVI&W+Ea-8k&>?JA;wqic@%V zCd6$l?j>ogM2T+TW1dgDY2-pjOc)xKwNuP^p0BJWp-7ltv!dwWhDowvpz?|yOW#8{$5|NbwYF0)kCkw=4lKBZe?f5(`bH(6i-OA$0RXbyCL|Tn=1D(yr ze5{#3K59WOC8{vh;Nx!1n*ky5ad2n{ssL0(M(0Pz%~EY^jliNlZ|-Ck1i26OGfhnrUjf&ZRR_){c!$O2Anas+p zWust}hV+87wnJevs~78HZG!xmOTKjq=dPcJi$f9mSh34Of(qt#6Z@&x7|cK)2DBAA z8elPOQWAv969Jl5GY@Ad#olewqQIAl<~U4AhEtvu#A!IuMgbBb63aFzoSO1dpNFoi z^8;^I#HlhRx=w?dFr_Jzv0W0i6(B~0$()}WV0RU5=8lK}o9Osl#`f@T$#En#A#8;n zdPjmL7%^Y9?SP($BVE^`Z7~z9RwD(>uUB$;WxB9Bp1 zL5H2w^qJ%zI2J5!wDEdf9fXibw?0{(tVKIs4849a@mz_JvlJQuimO1A;@lYIgSlu3r@=5J3`MuePS9j+9j({3TOd_OsOuU7IJ>K= zK~%AH+6Is->VQNA&74iM##JOgoOVjHfC>`vz17qj4$3(Yp)RP$IYv>nJ(mHhntf+9n1)5@ptDm{)JHQMo1^uj z?kRuKK+Q4=Ehw=@!8&AS4Luhoqv1H;AGhrWSj8NXL0VnYMu-a|SdS0xDYAK{HE6a0Jde{`Z;Oi?!g0L=H|4FCWD literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7055495..787c8b5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -206,6 +206,9 @@ else() endif() set (PIPEDAL_SOURCES + ModTemplateGenerator.cpp ModTemplateGenerator.hpp + WebServerMod.cpp WebServerMod.hpp + ModGui.cpp ModGui.hpp PipewireInputStream.cpp PipewireInputStream.hpp AudioFiles.cpp AudioFiles.hpp AudioFileMetadataReader.cpp AudioFileMetadataReader.hpp @@ -414,6 +417,8 @@ add_executable(AuxInTest add_executable(pipedaltest testMain.cpp + + ModGuiTest.cpp PipewireInputStreamTest.cpp AudioFilesTest.cpp diff --git a/src/Lv2HostLeakTest.cpp b/src/Lv2HostLeakTest.cpp index d5738b6..a36a5a6 100644 --- a/src/Lv2HostLeakTest.cpp +++ b/src/Lv2HostLeakTest.cpp @@ -36,7 +36,7 @@ TEST_CASE( "PluginHost memory leak", "[lv2host_leak][Build][Dev]" ) { { PluginHost host; - host.Load("/usr/lib/lv2:/usr/local/lib/lv2:/usr/modep/lv2"); + host.LoadLilv("/usr/lib/lv2:/usr/local/lib/lv2:/usr/modep/lv2"); } MemStats finalMemory = GetMemStats(); diff --git a/src/MimeTypes.cpp b/src/MimeTypes.cpp index e98b804..8940182 100644 --- a/src/MimeTypes.cpp +++ b/src/MimeTypes.cpp @@ -22,6 +22,7 @@ #include "ss.hpp" #include #include +#include "util.hpp" using namespace pipedal; @@ -30,7 +31,16 @@ static std::string empty; const std::string& MimeTypes::MimeTypeFromExtension(const std::string &extension) const { auto iter = extensionToMimeType.find(extension); - if (iter == extensionToMimeType.end()) return empty; + if (iter == extensionToMimeType.end()) + { + std::string lowerExt = ToLower(extension); + auto iter2 = extensionToMimeType.find(lowerExt); + if (iter2 != extensionToMimeType.end()) + { + return iter2->second; + } + return empty; + } return iter->second; } diff --git a/src/ModFileTypes.cpp b/src/ModFileTypes.cpp index 05a24cb..5d94d55 100644 --- a/src/ModFileTypes.cpp +++ b/src/ModFileTypes.cpp @@ -95,6 +95,7 @@ ModFileTypes::ModFileTypes(const std::string &fileTypes) if (wellKnownType) { rootDirectories_.push_back(type); + modFileTypes_.push_back(type); } else { diff --git a/src/ModFileTypes.hpp b/src/ModFileTypes.hpp index a0f5673..e6065fd 100644 --- a/src/ModFileTypes.hpp +++ b/src/ModFileTypes.hpp @@ -32,12 +32,14 @@ namespace pipedal ModFileTypes(const std::string &fileTypes); const std::vector &rootDirectories() const { return rootDirectories_; } std::vector &rootDirectories() { return rootDirectories_; } + const std::vector &modFileTypes() const { return modFileTypes_; } const std::vector &fileTypes() const { return fileTypes_; } static constexpr const char *DEFAULT_FILE_TYPES = "audio,nammodel,mlmodel,sf2,sfz,midisong,midiclip,*"; // (everything) private: std::vector rootDirectories_; + std::vector modFileTypes_; // e.g. "audio", "nammodel", etc. std::vector fileTypes_; public: diff --git a/src/ModGui.cpp b/src/ModGui.cpp new file mode 100644 index 0000000..1ed55ed --- /dev/null +++ b/src/ModGui.cpp @@ -0,0 +1,531 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + + #include "ModGui.hpp" + #include "MapFeature.hpp" + #include "PluginHost.hpp" + #include "Finally.hpp" + #include "lv2/atom/atom.h" + + +#define MOD_GUI_PREFIX "http://moddevices.com/ns/modgui#" +#define MOD_GUI__gui (MOD_GUI_PREFIX "gui") +#define MOD_GUI__modgui (MOD_GUI_PREFIX "modgui") +#define MOD_GUI__resourcesDirectory (MOD_GUI_PREFIX "resourcesDirectory") +#define MOD_GUI__iconTemplate (MOD_GUI_PREFIX "iconTemplate") +#define MOD_GUI__settingsTemplate (MOD_GUI_PREFIX "settingsTemplate") +#define MOD_GUI__javascript (MOD_GUI_PREFIX "javascript") +#define MOD_GUI__stylesheet (MOD_GUI_PREFIX "stylesheet") +#define MOD_GUI__screenshot (MOD_GUI_PREFIX "screenshot") +#define MOD_GUI__thumbnail (MOD_GUI_PREFIX "thumbnail") +#define MOD_GUI__discussionURL (MOD_GUI_PREFIX "discussionURL") +#define MOD_GUI__documentation (MOD_GUI_PREFIX "documentation") +#define MOD_GUI__brand (MOD_GUI_PREFIX "brand") +#define MOD_GUI__label (MOD_GUI_PREFIX "label") +#define MOD_GUI__model (MOD_GUI_PREFIX "model") +#define MOD_GUI__panel (MOD_GUI_PREFIX "panel") +#define MOD_GUI__color (MOD_GUI_PREFIX "color") +#define MOD_GUI__knob (MOD_GUI_PREFIX "knob") +#define MOD_GUI__port (MOD_GUI_PREFIX "port") +#define MOD_GUI__monitoredOutputs (MOD_GUI_PREFIX "monitoredOutputs") + + + +using namespace pipedal; + +ModGuiUris::ModGuiUris(LilvWorld *pWorld, MapFeature &mapFeature) +{ + mod_gui__gui = lilv_new_uri(pWorld, MOD_GUI__gui); + mod_gui__modgui = lilv_new_uri(pWorld, MOD_GUI__modgui); + mod_gui__resourceDirectory = lilv_new_uri(pWorld, MOD_GUI__resourcesDirectory); + mod_gui__iconTemplate = lilv_new_uri(pWorld, MOD_GUI__iconTemplate); + mod_gui__settingsTemplate = lilv_new_uri(pWorld, MOD_GUI__settingsTemplate); + mod_gui__javascript = lilv_new_uri(pWorld, MOD_GUI__javascript); + mod_gui__stylesheet = lilv_new_uri(pWorld, MOD_GUI__stylesheet); + mod_gui__screenshot = lilv_new_uri(pWorld, MOD_GUI__screenshot); + mod_gui__thumbnail = lilv_new_uri(pWorld, MOD_GUI__thumbnail); + mod_gui__discussionURL = lilv_new_uri(pWorld, MOD_GUI__discussionURL); + mod_gui__documentation = lilv_new_uri(pWorld, MOD_GUI__documentation); + mod_gui__brand = lilv_new_uri(pWorld, MOD_GUI__brand); + mod_gui__label = lilv_new_uri(pWorld, MOD_GUI__label); + mod_gui__model = lilv_new_uri(pWorld, MOD_GUI__model); + mod_gui__panel = lilv_new_uri(pWorld, MOD_GUI__panel); + mod_gui__color = lilv_new_uri(pWorld, MOD_GUI__color); + mod_gui__knob = lilv_new_uri(pWorld, MOD_GUI__knob); + mod_gui__port = lilv_new_uri(pWorld, MOD_GUI__port); + mod_gui__monitoredOutputs = lilv_new_uri(pWorld, MOD_GUI__monitoredOutputs); +} + +static const char*NonNull(const char*string) { + return string ? string : ""; +} + + +ModGui::ModGui( + PluginHost *lv2Host, + const LilvPlugin *lilvPlugin, + const std::string &resourceDirectory, + const LilvNode * modGuiUrl) + : pluginUri_(lilv_node_as_uri(lilv_plugin_get_uri(lilvPlugin))), + resourceDirectory_(resourceDirectory) +{ + LilvWorld *pWorld = lv2Host->getWorld(); + ModGuiUris &modGuiUrids = *lv2Host->mod_gui_uris; + PluginHost::LilvUris &lilvUris = *lv2Host->lilvUris; + + AutoLilvNode modguiIcon = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__iconTemplate, nullptr); + if (modguiIcon) { + this->iconTemplate_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(modguiIcon), nullptr)); + } + + AutoLilvNode modguiSettingsTemplate = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__settingsTemplate, nullptr); + if (modguiSettingsTemplate) { + this->settingsTemplate_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(modguiSettingsTemplate), nullptr)); + } + + AutoLilvNode modguiJavascript = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__javascript, nullptr); + if (modguiJavascript) { + this->javascript_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(modguiJavascript), nullptr)); + } + + AutoLilvNode modguiStylesheet = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__stylesheet, nullptr); + if (modguiStylesheet) { + this->stylesheet_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(modguiStylesheet), nullptr)); + } + + AutoLilvNode modguiScreenshot = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__screenshot, nullptr); + if (modguiScreenshot) { + this->screenshot_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(modguiScreenshot), nullptr)); + } + + AutoLilvNode modguiThumbnail = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__thumbnail, nullptr); + if (modguiThumbnail) { + this->thumbnail_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(modguiThumbnail), nullptr)); + } + AutoLilvNode discussionUrl = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__discussionURL, nullptr); + if (discussionUrl) { + this->discussionUrl_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(discussionUrl), nullptr)); + } + + AutoLilvNode documentationUrl = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__documentation, nullptr); + if (documentationUrl) { + this->documentationUrl_ = NonNull(lilv_file_uri_parse(lilv_node_as_string(documentationUrl), nullptr)); + } + + AutoLilvNode brand = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__brand, nullptr); + if (brand) { + this->brand_ = NonNull(lilv_node_as_string(brand)); + } + + AutoLilvNode label = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__label, nullptr); + if (label) { + this->label_ = NonNull(lilv_node_as_string(label)); + } + + AutoLilvNode model = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__model, nullptr); + if (model) { + this->model_ = NonNull(lilv_node_as_string(model)); + } + + AutoLilvNode panel = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__panel, nullptr); + if (panel) { + this->panel_ = NonNull(lilv_node_as_string(panel)); + } + + AutoLilvNode color = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__color, nullptr); + if (color) { + this->color_ = NonNull(lilv_node_as_string(color)); + } + + AutoLilvNode knob = lilv_world_get(pWorld, modGuiUrl, modGuiUrids.mod_gui__knob, nullptr); + if (knob) { + this->knob_ = NonNull(lilv_node_as_string(knob)); + } + + AutoLilvNodes ports = lilv_world_find_nodes(pWorld, modGuiUrl, modGuiUrids.mod_gui__port, nullptr); + if (ports) { + LILV_FOREACH(nodes, it, ports.Get()) { + AutoLilvNode port_node = lilv_nodes_get(ports, it); + this->ports_.push_back(ModGuiPort(lv2Host,port_node)); + } + } + std::sort(this->ports_.begin(), this->ports_.end(), + [](const ModGuiPort &p1, const ModGuiPort &p2) { + return p1.index() < p2.index(); + }); + AutoLilvNodes monitoredOutputs = lilv_world_find_nodes(pWorld, modGuiUrl, modGuiUrids.mod_gui__monitoredOutputs, nullptr); + if (monitoredOutputs) { + LILV_FOREACH(nodes, it, monitoredOutputs.Get()) { + AutoLilvNode monitoredOutput = lilv_nodes_get(monitoredOutputs.Get(), it); + AutoLilvNode symbol = lilv_world_get(pWorld, monitoredOutput, lilvUris.lv2core__symbol, nullptr); + if (symbol) { + this->monitoredOutputs_.push_back(NonNull(lilv_node_as_string(symbol))); + } + } + } +} + + +ModGui::ptr ModGui::Create(PluginHost *lv2Host, const LilvPlugin *lilvPlugin) +{ + + LilvWorld *pWorld = lv2Host->getWorld(); + ModGuiUris &modGuiUrids = *(lv2Host->mod_gui_uris); + + AutoLilvNode modGuiUri; + std::string resourceDirectory; + + AutoLilvNodes modGuiNodes = lilv_plugin_get_value(lilvPlugin,modGuiUrids.mod_gui__gui); + + if (!modGuiNodes) { + return nullptr; // no mod gui found. + } + LILV_FOREACH(nodes, it, modGuiNodes.Get()) { + AutoLilvNode node = lilv_nodes_get(modGuiNodes.Get(), it); + + AutoLilvNode resourceDir = lilv_world_get(pWorld, node, modGuiUrids.mod_gui__resourceDirectory,nullptr); + if (resourceDir) { + resourceDirectory = lilv_file_uri_parse(lilv_node_as_string(resourceDir),nullptr); + modGuiUri = lilv_node_duplicate(node); + } else { + resourceDirectory.clear(); + modGuiUri.Free(); + } + } + if (!modGuiUri) { + return nullptr; // no mod gui found. + } + + + return std::shared_ptr(new ModGui(lv2Host, lilvPlugin, resourceDirectory, modGuiUri.Get())); +} + + +ModGuiPort::ModGuiPort(PluginHost *lv2Host, const LilvNode *portNode) +{ + LilvWorld *pWorld = lv2Host->getWorld(); + PluginHost::LilvUris &lilvUris = *lv2Host->lilvUris; + + this->index_ = lilv_node_as_int(lilv_world_get(pWorld, portNode, lilvUris.lv2core__index, nullptr)); + this->symbol_ = NonNull(lilv_node_as_string(lilv_world_get(pWorld, portNode, lilvUris.lv2core__symbol, nullptr))); + this->name_ = NonNull(lilv_node_as_string(lilv_world_get(pWorld, portNode, lilvUris.lv2core__name, nullptr))); +} + +static json_variant UnitsObj(const std::string &label, const std::string &render, const std::string &symbol) +{ + json_variant obj = json_variant::make_object(); + obj["label"] = label; + obj["render"] = render; + obj["symbol"] = symbol; + return obj; +} + + +static std::map unitsMap +{ + {Units::none, UnitsObj("","%f","")}, + {Units::unknown, UnitsObj("","%f","")}, + + {Units::s, UnitsObj("seconds", "%f s", "s")}, + {Units::ms, UnitsObj("milliseconds", "%f ms", "ms")}, + {Units::min, UnitsObj("minutes", "%f mins", "min")}, + {Units::bar, UnitsObj("bars", "%f bars", "bars")}, + {Units::beat, UnitsObj("beats", "%f beats", "beats")}, + {Units::frame, UnitsObj("audio frames", "%f frames", "frames")}, + {Units::m, UnitsObj("metres", "%f m", "m")}, + {Units::cm, UnitsObj("centimetres", "%f cm", "cm")}, + {Units::mm, UnitsObj("millimetres", "%f mm", "mm")}, + {Units::km, UnitsObj("kilometres", "%f km", "km")}, + {Units::inch, UnitsObj("inches", "\"%f\"", "in")}, + {Units::mile, UnitsObj("miles", "%f mi", "mi")}, + {Units::db, UnitsObj("decibels", "%f dB", "dB")}, + {Units::pc, UnitsObj("percent", "%f%%", "%")}, + {Units::coef, UnitsObj("coefficient", "* %f", "*")}, + {Units::hz, UnitsObj("hertz", "%f Hz", "Hz")}, + {Units::khz, UnitsObj("kilohertz", "%f kHz", "kHz")}, + {Units::mhz, UnitsObj("megahertz", "%f MHz", "MHz")}, + {Units::bpm, UnitsObj("beats per minute", "%f BPM", "BPM")}, + {Units::oct, UnitsObj("octaves", "%f octaves", "oct")}, + {Units::cent, UnitsObj("cents", "%f ct", "ct")}, + {Units::semitone12TET, UnitsObj("semitones", "%f semi", "semi")}, + {Units::degree, UnitsObj("degrees", "%f°", "°")}, + {Units::midiNote, UnitsObj("MIDI note", "MIDI note %d", "note")}, +}; + +static json_variant UnitsToJsonVariant(Units units) +{ + if (unitsMap.find(units) != unitsMap.end()) + { + return unitsMap[units]; + } + return unitsMap[Units::none]; +} + +template +static inline json_variant MakeJsonArray(const std::vector &vec) +{ + json_variant array = json_variant::make_array(); + auto &arrayRef = *array.as_array(); + for (const auto &item : vec) + { + json_variant itemVariant = json_variant(item); + arrayRef.push_back(itemVariant); + } + return array; +} + +static std::string AtomTypeToRangesType(const std::string& atomType) +{ + if (atomType == LV2_ATOM__Path || + atomType == LV2_ATOM__String || + atomType == LV2_ATOM__URI || + atomType == LV2_ATOM__URID) + { + return "s"; + } + if (atomType == LV2_ATOM__Float) + { + return "f"; + } + if (atomType == LV2_ATOM__Double) + { + return "d"; + } + if (atomType == LV2_ATOM__Long) + { + return "l"; + } + if (atomType == LV2_ATOM__Vector) + { + return "v"; + } + return "?"; +} +json_variant pipedal::MakeModGuiTemplateData( + std::shared_ptr pluginInfo) +{ + json_variant context = json_variant::make_object(); + auto &contextObj = *(context.as_object()); + + auto modGui = pluginInfo->modGui(); + + contextObj["brand"] = modGui->brand(); + contextObj["label"] = modGui->label(); + contextObj["model"] = modGui->model(); + contextObj["panel"] = modGui->panel(); + contextObj["color"] = modGui->color(); + contextObj["knob"] = modGui->knob(); + + json_variant controls = json_variant::make_array(); + auto &controlArray = *controls.as_array(); + size_t ix = 0; + for (const auto& modGuiPort : modGui->ports()) + { + const Lv2PortInfo &pluginPort = pluginInfo->getPort(modGuiPort.symbol()); + if (!pluginPort.is_control_port() || !pluginPort.is_input() || pluginPort.not_on_gui()) + { + continue; // only include control ports + } + json_variant control = json_variant::make_object(); + auto &portObj = *control.as_object(); + portObj["index"] = double(pluginPort.index()); + portObj["symbol"] = pluginPort.symbol(); + portObj["name"] = modGuiPort.name(); + portObj["comment"] = pluginPort.comment(); + + portObj["units"] = UnitsToJsonVariant(pluginPort.units()); + + { + json_variant ranges = json_variant::make_object(); + ranges["minimum"] = SS(pluginPort.min_value()); + ranges["maximum"] = SS(pluginPort.max_value()); + ranges["default"] = SS(pluginPort.default_value()); + portObj["ranges"] = json_variant::make_array(); + } + json_variant scalePoints = json_variant::make_array(); + auto &scalePointsArray = *scalePoints.as_array(); + for (const auto &scalePoint: pluginPort.scale_points()) + { + json_variant scalePointObj = json_variant::make_object(); + scalePointObj["valid"] = true; + scalePointObj["label"] = scalePoint.label(); + scalePointObj["value"] = SS(scalePoint.value()); + scalePointsArray.push_back(scalePointObj); + } + portObj["scalePoints"] = scalePoints; + + controlArray.push_back(control); + } + contextObj["controls"] = controls; + + json_variant effect = json_variant::make_object(); + contextObj["effect"] = effect; + + json_variant ports = json_variant::make_object(); + (*effect.as_object())["ports"] = ports; + + json_variant audio = json_variant::make_object(); + (*ports.as_object())["audio"] = audio; + + json_variant audio_input = json_variant::make_array(); + (*audio.as_object())["input"] = audio_input; + + json_variant audio_output = json_variant::make_array(); + (*audio.as_object())["output"] = audio_output; + json_variant midi = json_variant::make_object(); + (*ports.as_object())["midi"] = midi; + + json_variant midi_input = json_variant::make_array(); + (*midi.as_object())["input"] = midi_input; + json_variant midi_output = json_variant::make_array(); + (*midi.as_object())["output"] = midi_output; + + json_variant cv = json_variant::make_object(); + (*ports.as_object())["cv"] = cv; + + json_variant cv_input = json_variant::make_array(); + (*cv.as_object())["input"] = cv_input; + json_variant cv_output = json_variant::make_array(); + (*cv.as_object())["output"] = cv_output; + + { + json_variant parametersObj = json_variant::make_object(); + json_variant pathObj = json_variant::make_array(); + parametersObj["path"] = pathObj; + + for (const auto &patchProperty: pluginInfo->patchProperties()) + { + json_variant parameterObj = json_variant::make_object(); + parameterObj["valid"] = true; + parameterObj["readable"] = patchProperty.readable(); + parameterObj["writable"] = patchProperty.writable(); + parameterObj["uri"] = patchProperty.uri(); + parameterObj["label"] = patchProperty.label(); + parameterObj["type"] = patchProperty.type(); + + json_variant rangesObj = json_variant::make_object(); + rangesObj["type"] = AtomTypeToRangesType(patchProperty.type()); + rangesObj["atomType"] = patchProperty.type(); + parameterObj["ranges"] = rangesObj; + + parameterObj["comment"] = patchProperty.comment(); + parameterObj["shortName"] = patchProperty.shortName(); + + parameterObj["fileTypes"] = MakeJsonArray(patchProperty.fileTypes()); + parameterObj["supportedExtensions"] = MakeJsonArray(patchProperty.supportedExtensions()); + + if (patchProperty.type() == LV2_ATOM__Path && patchProperty.writable()) { + // Feed them no files; they will be added later. + json_variant filesObj = json_variant::make_array(); + json_variant fileObj = json_variant::make_object(); + fileObj["fileType"] = "{{filetype}}"; // magic tags that we will use to generate files at runtime. + fileObj["fullname"] = "{{fullname}}"; + fileObj["basename"] = "{{basename}}"; + filesObj.as_array()->push_back(fileObj); + parameterObj["files"] = filesObj; + + pathObj.as_array()->push_back(parameterObj); + } + + } + + effect["parameters"] = parametersObj; + + + } + + for (const auto &pluginPort : pluginInfo->ports()) + { + if (pluginPort->is_control_port()) + { + continue; // only include control ports + } + if (pluginPort->is_audio_port()) + { + json_variant audioPort = json_variant::make_object(); + auto &audioPortObj = *audioPort.as_object(); + audioPortObj["index"] = double(pluginPort->index()); + audioPortObj["symbol"] = pluginPort->symbol(); + audioPortObj["name"] = pluginPort->name(); + if (pluginPort->is_input()) + { + audio_input.as_array()->push_back(audioPort); + } + else + { + audio_output.as_array()->push_back(audioPort); + } + } + else if (pluginPort->is_atom_port()) + { + if (pluginPort->supports_midi()) + { + json_variant midiPort = json_variant::make_object(); + auto &midiPortObj = *midiPort.as_object(); + midiPortObj["index"] = double(pluginPort->index()); + midiPortObj["symbol"] = pluginPort->symbol(); + midiPortObj["name"] = pluginPort->name(); + if (pluginPort->is_input()) + { + midi_input.as_array()->push_back(midiPort); + } + else + { + midi_output.as_array()->push_back(midiPort); + } + } + } + /* else if plugin_port->is_cv_port()... */ + } + return context; +} + + +JSON_MAP_BEGIN(ModGuiPort) + JSON_MAP_REFERENCE(ModGuiPort,index) + JSON_MAP_REFERENCE(ModGuiPort,symbol) + JSON_MAP_REFERENCE(ModGuiPort,name) +JSON_MAP_END() + +JSON_MAP_BEGIN(ModGui) + JSON_MAP_REFERENCE(ModGui,pluginUri) + JSON_MAP_REFERENCE(ModGui,resourceDirectory) + JSON_MAP_REFERENCE(ModGui,iconTemplate) + JSON_MAP_REFERENCE(ModGui,settingsTemplate) + JSON_MAP_REFERENCE(ModGui,screenshot) + JSON_MAP_REFERENCE(ModGui,javascript) + JSON_MAP_REFERENCE(ModGui,stylesheet) + JSON_MAP_REFERENCE(ModGui,thumbnail) + JSON_MAP_REFERENCE(ModGui,discussionUrl) + JSON_MAP_REFERENCE(ModGui,documentationUrl) + JSON_MAP_REFERENCE(ModGui,brand) + JSON_MAP_REFERENCE(ModGui,label) + JSON_MAP_REFERENCE(ModGui,model) + JSON_MAP_REFERENCE(ModGui,panel) + JSON_MAP_REFERENCE(ModGui,color) + JSON_MAP_REFERENCE(ModGui,knob) + JSON_MAP_REFERENCE(ModGui,ports) + JSON_MAP_REFERENCE(ModGui,monitoredOutputs) +JSON_MAP_END() + diff --git a/src/ModGui.hpp b/src/ModGui.hpp new file mode 100644 index 0000000..bfa4f06 --- /dev/null +++ b/src/ModGui.hpp @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +#include "lv2/urid/urid.h" +#include +#include +#include +#include "AutoLilvNode.hpp" +#include "json.hpp" +#include "json_variant.hpp" + +namespace pipedal +{ + + class MapFeature; + class Lv2PluginInfo; + + class ModGuiUris + { + public: + ModGuiUris(LilvWorld *pWorld, MapFeature &mapFeature); + + AutoLilvNode mod_gui__gui; + AutoLilvNode mod_gui__modgui; + AutoLilvNode mod_gui__resourceDirectory; + AutoLilvNode mod_gui__iconTemplate; + AutoLilvNode mod_gui__settingsTemplate; + AutoLilvNode mod_gui__javascript; + AutoLilvNode mod_gui__stylesheet; + AutoLilvNode mod_gui__screenshot; + AutoLilvNode mod_gui__thumbnail; + AutoLilvNode mod_gui__discussionURL; + AutoLilvNode mod_gui__documentation; + AutoLilvNode mod_gui__brand; + AutoLilvNode mod_gui__label; + AutoLilvNode mod_gui__model; + AutoLilvNode mod_gui__panel; + AutoLilvNode mod_gui__color; + AutoLilvNode mod_gui__knob; + AutoLilvNode mod_gui__port; + AutoLilvNode mod_gui__monitoredOutputs; + }; + + class PluginHost; + + class ModGuiPort { + public: + ModGuiPort() = default; + ModGuiPort(PluginHost *lv2Host, const LilvNode *portNode); + private: + uint32_t index_ = 0; + std::string symbol_; + std::string name_; + public: + uint32_t index() const { return index_; } + void index(uint32_t value) { index_ = value; } + const std::string &symbol() const { return symbol_; } + void symbol(const std::string &value) { symbol_ = value; } + const std::string &name() const { return name_; } + void name(const std::string &value) { name_ = value; } + + DECLARE_JSON_MAP(ModGuiPort); + }; + + class ModGui + { + private: + ModGui(PluginHost *lv2Host, const LilvPlugin *lilvPlugin, const std::string &resourceDirectory, const LilvNode *modGuiNode); + + public: + using self = ModGui; + using ptr = std::shared_ptr; + static ptr Create(PluginHost *lv2Host, const LilvPlugin *lilvPlugin); + + ModGui() = default; + virtual ~ModGui() = default; + + ModGui(const ModGui &) = default; + ModGui &operator=(const ModGui &) = default; + ModGui(ModGui &&) = default; + ModGui &operator=(ModGui &&) = default; + + private: + std::string pluginUri_; + + std::string resourceDirectory_; + std::string iconTemplate_; + std::string settingsTemplate_; + std::string javascript_; + std::string stylesheet_; + std::string screenshot_; + std::string thumbnail_; + std::string discussionUrl_; + std::string documentationUrl_; + std::string brand_; + std::string label_; + std::string model_; + std::string panel_; + std::string color_; + std::string knob_; + std::vector ports_; + + std::vector monitoredOutputs_; + + public: + const std::string &pluginUri() const { return pluginUri_; } + void pluginUri(const std::string &value) { pluginUri_ = value; } + + const std::string &resourceDirectory() const { return resourceDirectory_; } + void resourceDirectory(const std::string &value) { resourceDirectory_ = value; } + const std::string &iconTemplate() const { return iconTemplate_; } + void iconTemplate(const std::string &value) { iconTemplate_ = value; } + const std::string &settingsTemplate() const { return settingsTemplate_; } + void settingsTemplate(const std::string &value) { settingsTemplate_ = value; } + const std::string &screenshot() const { return screenshot_; } + const std::string &javascript() const { return javascript_; } + void javascript(const std::string &value) { javascript_ = value; } + const std::string &stylesheet() const { return stylesheet_; } + void stylesheet(const std::string &value) { stylesheet_ = value; } + void screenshot(const std::string &value) { screenshot_ = value; } + const std::string &thumbnail() const { return thumbnail_; } + void thumbnail(const std::string &value) { thumbnail_ = value; } + const std::string &discussionUrl() const { return discussionUrl_; } + void discussionUrl(const std::string &value) { discussionUrl_ = value; } + const std::string &documentationUrl() const { return documentationUrl_; } + void documentationUrl(const std::string &value) { documentationUrl_ = value; } + const std::string &brand() const { return brand_; } + void brand(const std::string &value) { brand_ = value; } + const std::string &label() const { return label_; } + void label(const std::string &value) { label_ = value; } + const std::string &model() const { return model_; } + void model(const std::string &value) { model_ = value; } + const std::string &panel() const { return panel_; } + void panel(const std::string &value) { panel_ = value; } + + const std::string &color() const { return color_; } + void color(const std::string &value) { color_ = value; } + const std::string &knob() const { return knob_; } + void knob(const std::string &value) { knob_ = value; } + + const std::vector &ports() const { return ports_; } + std::vector &ports() { return ports_; } + void ports(const std::vector &value) { ports_ = value; } + + + const std::vector &monitoredOutputs() const { return monitoredOutputs_; } + std::vector &monitoredOutputs() { return monitoredOutputs_; } + void monitoredOutputs(const std::vector &value) { monitoredOutputs_ = value; } + + DECLARE_JSON_MAP(ModGui); + + }; + + json_variant MakeModGuiTemplateData( + std::shared_ptr pluginInfo + ); + +} \ No newline at end of file diff --git a/src/ModGuiTest.cpp b/src/ModGuiTest.cpp new file mode 100644 index 0000000..8ad0c0f --- /dev/null +++ b/src/ModGuiTest.cpp @@ -0,0 +1,117 @@ +// Copyright (c) 2025 Robin Davies +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#include "pch.h" +#include "catch.hpp" +#include +#include +#include +#include +#include +#include +#include "ModTemplateGenerator.hpp" + +#include "PiPedalModel.hpp" + +using namespace pipedal; +using namespace std; + +class PluginHostTest { + +public: + static void TestInit() + { + PiPedalModel model; + model.GetPluginHost().LoadLilv(); + const auto&plugins = model.GetPluginHost().GetPlugins(); + REQUIRE(!plugins.empty()); + size_t modGuicount = 0; + for (const auto&plugin : plugins) + { + REQUIRE(plugin != nullptr); + + if (plugin->modGui()) + { + modGuicount++; + const auto&modGui = plugin->modGui(); + REQUIRE(!modGui->iconTemplate().empty()); + REQUIRE(modGui->javascript().empty()); + REQUIRE(!modGui->stylesheet().empty()); + REQUIRE(!modGui->screenshot().empty()); + REQUIRE(!modGui->thumbnail().empty()); + } + } + } +}; + +TEST_CASE("ModGui Init Test", "[mod_gui_init]") +{ + PluginHostTest::TestInit(); +} + +TEST_CASE("ModGui Templates", "[mod_gui_templates]") +{ + + json_variant data = json_variant::make_object(); + data["name"] = "Test Plugin"; + data["uri"] = "http://example.com/test-plugin"; + data["version"] = "1.0.0"; + data["author"] = "Test Author"; + data["cn"] = "14323"; + json_variant items = json_variant::make_array(); + for (size_t i = 0; i < 3; ++i) + { + json_variant item = json_variant::make_object(); + item["label"] = "Item " + std::to_string(i + 1); + items.as_array()->push_back(item); + + } + data["items"] = items; + + data["inputs"] = json_variant::make_object(); + data["inputs"]["input1"] = "Input 1"; + data["inputs"]["input2"] = "Input 2"; + + data["_cn"] = "?cn=1234"; + data["_cns"] = "_toobamp.lv2_ToobAmp__1234"; + + std::string templateString = R"( +
+

{{name}}

+

URI: {{uri}}

+

Version: {{version}}

+

Author: {{author}}

+
    + {{#items}} +
  • {{label}}
  • + {{/items}} +
+

{{inputs.input1}}

+

{{inputs.input2}}

+

{{inputs.input3}}

+ Help Icon +
+ )"; + auto result = GenerateFromTemplateString(templateString, data); + + cout << result; + cout << endl; +} + + diff --git a/src/ModTemplateGenerator.cpp b/src/ModTemplateGenerator.cpp new file mode 100644 index 0000000..e259b19 --- /dev/null +++ b/src/ModTemplateGenerator.cpp @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "ModTemplateGenerator.hpp" +#include +#include +#include "util.hpp" + +namespace fs = std::filesystem; + +namespace pipedal +{ + namespace impl + { + + static std::string trim(const std::string &str) + { + size_t first = str.find_first_not_of(" \t\n\r"); + if (first == std::string::npos) + return ""; + size_t last = str.find_last_not_of(" \t\n\r"); + return str.substr(first, (last - first + 1)); + } + + static bool variableEndsWithNumber(const std::string &variableName) + { + size_t pos = variableName.find_last_of("."); + if (pos == std::string::npos) + { + return false; + } + for (size_t i = pos + 1; i < variableName.length(); ++i) + { + if (!std::isdigit(variableName[i])) + { + return false; + } + } + // Check if the last character is a digit + return true; + } + void splitIndexedArrayVariable( + const std::string &variableName, + std::string &arrayName, + int64_t &arrayIndex) + { + size_t pos = variableName.find_last_of("."); + if (pos == std::string::npos) + { + throw std::logic_error("Variable name does not contain an index: " + variableName); + } + else + { + arrayName = variableName.substr(0, pos); + arrayIndex = std::stoll(variableName.substr(pos + 1)); + } + } + + class VariableContext + { + public: + VariableContext( + const json_variant &context, + VariableContext *parent = nullptr) + : context(context), parent(parent) + { + } + json_variant getVariable(const std::string &name) + { + std::vector parts = split(trim(name), '.'); + json_variant *current = &context; + for (const auto &part : parts) + { + if (current->is_object()) + { + auto ff = current->as_object()->find(part); + if (ff != current->as_object()->end()) + { + current = &ff->second; + continue; + } + } + if (parent) + { + return parent->getVariable(name); + } + else + { + return json_variant(json_null()); + } + } + return *current; + } + + private: + json_variant context; + VariableContext *parent; + }; + + static std::string GenerateTemplateFromString( + const std::string &content, + VariableContext &context) + { + + std::stringstream ss; + + size_t ix = 0; + size_t end = content.length(); + while (ix < end) + { + // copy content until we find a '{{' + char c = content[ix++]; + if (c != '{') + { + ss << c; + continue; + } + if (ix >= end) + { + break; + } + c = content[ix++]; + if (c != '{') + { + ss << '{'; + ss << c; + continue; + } + if (ix < end && content[ix] == '{') + { + // this is a '{{{', so we just copy it. + ++ix; // skip the third '{' + size_t endTagPos = content.find("}}}", ix); + if (endTagPos == std::string::npos) + { + throw std::runtime_error("Unmatched opening tag '{{{' in template."); + } + std::string variableString = content.substr(ix, endTagPos - ix); + ix = endTagPos + 3; // Move past the closing '}}}' + auto result = context.getVariable("_" + variableString); + if (result.is_null()) + { + result = ""; // Default to empty string if variable not found + } + if (!result.is_string()) + { + throw std::runtime_error("Variable '" + variableString + "' is not a string."); + } + ss << result.as_string(); + continue; + } + else + { + // Now we have a '{{' at position ix-2. + size_t endTagPos = content.find("}}", ix); + if (endTagPos == std::string::npos) + { + throw std::runtime_error("Unmatched opening tag '{{' in template."); + } + std::string variableString = content.substr(ix, endTagPos - ix); + ix = endTagPos + 2; // Move past the closing '}}' + if (!variableString.starts_with("#")) + { + // a straightforward variable substitution. + json_variant value = context.getVariable(variableString); + if (value.is_null()) + { + value = ""; // Default to empty string if variable not found + } + if (!value.is_string()) + { + throw std::runtime_error("Variable '" + variableString + "' is not a string."); + } + ss << value.as_string(); + } + else + { + // this is a looping construct. + std::string variableName = variableString.substr(1); + std::string endTag = SS("{{/" << variableName << "}}"); + size_t endTagPos = content.find(endTag, ix); + if (endTagPos == std::string::npos) + { + throw std::runtime_error("Unmatched opening tag for '" + variableString + "' in template."); + } + + std::string arrayContent = content.substr(ix, endTagPos - ix); + + if (variableEndsWithNumber(variableName)) + { + std::string arrayName; + int64_t arrayIndex = 0; + splitIndexedArrayVariable(variableName, arrayName, arrayIndex); + + json_variant array = context.getVariable(arrayName); + auto &arrayValue = *array.as_array(); + if (arrayIndex >= 0 && arrayIndex < static_cast(arrayValue.size())) + { + json_variant contextValue = arrayValue[(size_t)arrayIndex]; + // variable frame. + VariableContext itemContext{contextValue, &context}; + + ss << GenerateTemplateFromString( + arrayContent, + itemContext); + } + } + else + { + json_variant variable = context.getVariable(variableName); + if (variable.is_array()) + { + auto &arrayValue = *variable.as_array(); + + for (auto iter = arrayValue.begin(); iter != arrayValue.end(); ++iter) + { + // variable frame. + VariableContext itemContext{*iter, &context}; + + ss << GenerateTemplateFromString( + arrayContent, + itemContext); + } + } else if (variable.is_object()) + { + VariableContext itemContext(variable,&context); + ss << GenerateTemplateFromString( + arrayContent, + itemContext); + } + } + + ix = endTagPos + endTag.length(); // Move past the closing tag + } + } + } + return ss.str(); + } + } + using namespace impl; + + std::string GenerateFromTemplateString( + const std::string &templateString, + const json_variant &data) + { + VariableContext context{data, nullptr}; + return impl::GenerateTemplateFromString( + templateString, + context); + } + + std::string GenerateFromTemplateFile( + const std::filesystem::path &templateFilePath, + const json_variant &data) + { + std::string templateContent; + if (!fs::exists(templateFilePath)) + { + throw std::runtime_error("Template file not found: " + templateFilePath.string()); + } + std::ifstream file(templateFilePath); + if (!file.is_open()) + { + throw std::runtime_error("Failed to open template file: " + templateFilePath.string()); + } + templateContent.assign((std::istreambuf_iterator(file)), + std::istreambuf_iterator()); + file.close(); + + return GenerateFromTemplateString( + templateContent, + data); + } + +} \ No newline at end of file diff --git a/src/ModTemplateGenerator.hpp b/src/ModTemplateGenerator.hpp new file mode 100644 index 0000000..2c7f463 --- /dev/null +++ b/src/ModTemplateGenerator.hpp @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +#include +#include +#include "json_variant.hpp" + +namespace pipedal +{ + std::string GenerateFromTemplateString( + const std::string& templateString, + const json_variant& data + ); + + std::string GenerateFromTemplateFile( + const std::filesystem::path& templateFilePath, + const json_variant& data + ); +} \ No newline at end of file diff --git a/src/PiPedalModel.cpp b/src/PiPedalModel.cpp index 91fe6b8..d3b300a 100644 --- a/src/PiPedalModel.cpp +++ b/src/PiPedalModel.cpp @@ -242,7 +242,7 @@ void PiPedalModel::LoadLv2PluginInfo() } pluginChangeMonitor = std::make_unique(*this); - pluginHost.Load(configuration.GetLv2Path().c_str()); + pluginHost.LoadLilv(configuration.GetLv2Path().c_str()); // Copy all presets out of Lilv data to json files // so that we can close lilv while we're actually diff --git a/src/PiPedalModel.hpp b/src/PiPedalModel.hpp index d665545..3218b63 100644 --- a/src/PiPedalModel.hpp +++ b/src/PiPedalModel.hpp @@ -331,7 +331,9 @@ namespace pipedal void LoadLv2PluginInfo(); void Load(); - const PluginHost &GetLv2Host() const { return pluginHost; } + const PluginHost &GetPluginHost() const { return pluginHost; } + PluginHost &GetPluginHost() { return pluginHost; } + Pedalboard GetCurrentPedalboardCopy() { std::lock_guard guard(mutex); diff --git a/src/PiPedalSocket.cpp b/src/PiPedalSocket.cpp index 4740747..32c5ea2 100644 --- a/src/PiPedalSocket.cpp +++ b/src/PiPedalSocket.cpp @@ -1331,12 +1331,12 @@ public: } else if (message == "plugins") { - auto ui_plugins = model.GetLv2Host().GetUiPlugins(); + auto ui_plugins = model.GetPluginHost().GetUiPlugins(); Reply(replyTo, "plugins", ui_plugins); } else if (message == "pluginClasses") { - auto classes = model.GetLv2Host().GetLv2PluginClass(); + auto classes = model.GetPluginHost().GetLv2PluginClass(); Reply(replyTo, "pluginClasses", classes); } else if (message == "hello") diff --git a/src/PipewireInputStreamTest.cpp b/src/PipewireInputStreamTest.cpp index 09cb03c..fb59bf9 100644 --- a/src/PipewireInputStreamTest.cpp +++ b/src/PipewireInputStreamTest.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Robin Davies +// Copyright (c) 2025 Robin Davies // // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in diff --git a/src/PluginHost.cpp b/src/PluginHost.cpp index e6355cf..1f4d2a1 100644 --- a/src/PluginHost.cpp +++ b/src/PluginHost.cpp @@ -136,8 +136,11 @@ void PluginHost::LilvUris::Initialize(LilvWorld *pWorld) lv2core__symbol = lilv_new_uri(pWorld, LV2_CORE__symbol); lv2core__name = lilv_new_uri(pWorld, LV2_CORE__name); + lv2core__shortName = lilv_new_uri(pWorld, LV2_CORE_PREFIX "shortName"); // ?? from mod sources lv2core__index = lilv_new_uri(pWorld, LV2_CORE__index); lv2core__Parameter = lilv_new_uri(pWorld, LV2_CORE_PREFIX "Parameter"); + lv2core__minorVersion = lilv_new_uri(pWorld, LV2_CORE__minorVersion); + lv2core__microVersion = lilv_new_uri(pWorld, LV2_CORE__microVersion); pipedalUI__ui = lilv_new_uri(pWorld, PIPEDAL_UI__ui); pipedalUI__fileProperties = lilv_new_uri(pWorld, PIPEDAL_UI__fileProperties); @@ -150,7 +153,7 @@ void PluginHost::LilvUris::Initialize(LilvWorld *pWorld) pipedalUI__mimeType = lilv_new_uri(pWorld, PIPEDAL_UI__mimeType); pipedalUI__outputPorts = lilv_new_uri(pWorld, PIPEDAL_UI__outputPorts); pipedalUI__text = lilv_new_uri(pWorld, PIPEDAL_UI__text); - pipedalUI__ledColor = lilv_new_uri(pWorld,PIPEDAL_UI__ledColor); + pipedalUI__ledColor = lilv_new_uri(pWorld, PIPEDAL_UI__ledColor); pipedalUI__frequencyPlot = lilv_new_uri(pWorld, PIPEDAL_UI__frequencyPlot); pipedalUI__xLeft = lilv_new_uri(pWorld, PIPEDAL_UI__xLeft); @@ -159,7 +162,7 @@ void PluginHost::LilvUris::Initialize(LilvWorld *pWorld) pipedalUI__yBottom = lilv_new_uri(pWorld, PIPEDAL_UI__yBottom); pipedalUI__xLog = lilv_new_uri(pWorld, PIPEDAL_UI__xLog); pipedalUI__width = lilv_new_uri(pWorld, PIPEDAL_UI__width); - pipedalUI__graphicEq = lilv_new_uri(pWorld,PIPEDAL_UI__graphicEq); + pipedalUI__graphicEq = lilv_new_uri(pWorld, PIPEDAL_UI__graphicEq); ui__portNotification = lilv_new_uri(pWorld, LV2_UI__portNotification); ui__plugin = lilv_new_uri(pWorld, LV2_UI__plugin); @@ -171,6 +174,7 @@ void PluginHost::LilvUris::Initialize(LilvWorld *pWorld) lv2__port = lilv_new_uri(pWorld, LV2_CORE__port); #define MOD_PREFIX "http://moddevices.com/ns/mod#" + mod__label = lilv_new_uri(pWorld, MOD_PREFIX "label"); mod__brand = lilv_new_uri(pWorld, MOD_PREFIX "brand"); mod__preferMomentaryOffByDefault = lilv_new_uri(pWorld, MOD_PREFIX "preferMomentaryOffByDefault"); @@ -194,16 +198,39 @@ void PluginHost::LilvUris::Initialize(LilvWorld *pWorld) patch__writable = lilv_new_uri(pWorld, LV2_PATCH__writable); patch__readable = lilv_new_uri(pWorld, LV2_PATCH__readable); - pipedal_patch__readable = lilv_new_uri(pWorld, PIPEDAL_PATCH__readable); + pipedal_patch__readable = lilv_new_uri(pWorld, PIPEDAL_PATCH__readable); dc__format = lilv_new_uri(pWorld, "http://purl.org/dc/terms/format"); mod__fileTypes = lilv_new_uri(pWorld, "http://moddevices.com/ns/mod#fileTypes"); + mod__supportedExtensions = lilv_new_uri(pWorld, "http://moddevices.com/ns/mod#supportedExtensions"); } void PluginHost::LilvUris::Free() { } +static int32_t nodesAsInt(const LilvNodes *nodes) +{ + if (!nodes) + return 0; + + LILV_FOREACH(nodes, iNode, nodes) + { + const LilvNode *node = lilv_nodes_get(nodes, iNode); + if (!node) + return 0; + if (lilv_node_is_int(node)) + { + return lilv_node_as_int(node); + } + if (lilv_node_is_float(node)) + { + return static_cast(lilv_node_as_float(node)); + } + break; + } + return 0; +} static std::string nodeAsString(const LilvNode *node) { @@ -270,7 +297,6 @@ PluginHost::PluginHost() fileMetadataFeature.Prepare(mapFeature); lv2Features.push_back(fileMetadataFeature.GetFeature()); - lv2Features.push_back(nullptr); this->urids = new Urids(mapFeature); @@ -294,8 +320,11 @@ PluginHost::~PluginHost() { delete lilvUris; lilvUris = nullptr; + delete urids; urids = nullptr; + delete mod_gui_uris; + mod_gui_uris = nullptr; free_world(); } @@ -397,7 +426,7 @@ void PluginHost::LoadPluginClassesFromLilv() } } -void PluginHost::Load(const char *lv2Path) +void PluginHost::LoadLilv(const char *lv2Path) { this->plugins_.clear(); @@ -418,6 +447,9 @@ void PluginHost::Load(const char *lv2Path) lilv_world_load_all(pWorld); } + // Not a safe pointer,because auto-deleting after freeWorld() would be death. + this->mod_gui_uris = new ModGuiUris(pWorld, mapFeature); + // LilvNode*lv2_path = lilv_new_file_uri(pWorld,NULL,lv2Path); // lilv_world_set_option(world,LILV_OPTION_LV2_PATH,lv) @@ -439,7 +471,8 @@ void PluginHost::Load(const char *lv2Path) if (pluginInfo->hasCvPorts()) { Lv2Log::debug("Plugin %s (%s) skipped. (Has CV ports).", pluginInfo->name().c_str(), pluginInfo->uri().c_str()); - } else if (pluginInfo->hasUnsupportedPatchProperties()) + } + else if (pluginInfo->hasUnsupportedPatchProperties()) { Lv2Log::debug("Plugin %s (%s) skipped. (Has unsupported patch parameters).", pluginInfo->name().c_str(), pluginInfo->uri().c_str()); } @@ -497,20 +530,20 @@ void PluginHost::Load(const char *lv2Path) if (plugin->is_valid()) { #if 1 - // no plugins with more than 2 inputs or outputs. - // no zero-input or zero-output plugins (temporarily disables midi plugins) - // no zero output devices (permanent, I think) - if (info.audio_inputs() > 2 || info.audio_outputs() > 2) { + // no plugins with more than 2 inputs or outputs. + // no zero-input or zero-output plugins (temporarily disables midi plugins) + // no zero output devices (permanent, I think) + if (info.audio_inputs() > 2 || info.audio_outputs() > 2) + { Lv2Log::debug( "Plugin %s (%s) skipped. %d inputs, %d outputs.", plugin->name().c_str(), plugin->uri().c_str(), - (int)info.audio_inputs(),(int)info.audio_outputs()); - + (int)info.audio_inputs(), (int)info.audio_outputs()); } - else if (info.audio_inputs() == 0 && info.audio_outputs() == 0 ) + else if (info.audio_inputs() == 0 && info.audio_outputs() == 0) { Lv2Log::debug("Plugin %s (%s) skipped. No audio i/o.", plugin->name().c_str(), plugin->uri().c_str()); - - } else if (info.audio_inputs() == 0) + } + else if (info.audio_inputs() == 0) { // temporarily disable this feature. Lv2Log::debug("Plugin %s (%s) skipped. No inputs.", plugin->name().c_str(), plugin->uri().c_str()); @@ -536,7 +569,8 @@ void PluginHost::Load(const char *lv2Path) #endif else { - if (info.audio_inputs() == 0) { + if (info.audio_inputs() == 0) + { Lv2Log::debug("************* ZERO INPUTS: %s (%s) skipped. No audio outputs.", plugin->name().c_str(), plugin->uri().c_str()); } ui_plugins_.push_back(std::move(info)); @@ -619,7 +653,7 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin // example: // -// a lv2:Parameter; + // a lv2:Parameter; // rdfs:label "Model"; // rdfs:range atom:Path. // ... @@ -644,7 +678,6 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin if (lilv_world_ask(pWorld, propertyUri, lv2Host->lilvUris->rdfs__range, lv2Host->lilvUris->atom__Path)) { - AutoLilvNode label = lilv_world_get(pWorld, propertyUri, lv2Host->lilvUris->rdfs__label, nullptr); std::string strLabel = label.AsString(); @@ -662,19 +695,16 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin std::make_shared( strLabel, propertyUri.AsUri(), lv2DirectoryName); - AutoLilvNode indexNode = lilv_world_get(pWorld, propertyUri, lv2Host->lilvUris->lv2core__index, nullptr); int32_t index = indexNode.AsInt(-1); fileProperty->index(index); - // if there's a pipedalui_fileTypes node, use that instead. - AutoLilvNode mod__fileTypes = lilv_world_get(pWorld, propertyUri, lv2Host->lilvUris->mod__fileTypes, nullptr); // default: everything. - std::string fileTypes = ModFileTypes::DEFAULT_FILE_TYPES; + std::string fileTypes = ModFileTypes::DEFAULT_FILE_TYPES; if (mod__fileTypes) { // "nam,nammodel" @@ -682,8 +712,6 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin } ModFileTypes modFileTypes(fileTypes); - - // Legacy case: audio_uploads/ exists. std::filesystem::path bundleDirectoryName = std::filesystem::path(bundle_path()).parent_path().filename(); @@ -693,13 +721,14 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin fileProperty->directory(bundleDirectoryName); - if (std::filesystem::exists(legacyUploadPath) - && !std::filesystem::exists(legacyUploadPath / ".migrated")) + if (std::filesystem::exists(legacyUploadPath) && !std::filesystem::exists(legacyUploadPath / ".migrated")) { fileProperty->useLegacyModDirectory(true); fileProperty->directory(bundleDirectoryName); modFileTypes.rootDirectories().push_back(bundleDirectoryName.filename()); // push the private directory! - } else { + } + else + { if (modFileTypes.rootDirectories().size() == 1) { std::string modName = modFileTypes.rootDirectories()[0]; @@ -708,9 +737,10 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin } } - fileProperties.push_back(fileProperty); - } else { + } + else + { unsupportedPatchProperty = true; } } @@ -718,24 +748,25 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin } FindWritablePathPropertiesResult result; - - if (fileProperties.size() != 0) { - std::sort(fileProperties.begin(),fileProperties.end(),[](const UiFileProperty::ptr& left,const UiFileProperty::ptr&right) { - // properies with indexes first. - int32_t indexL = left->index(); - if (indexL < 0) indexL = std::numeric_limits::max(); - int32_t indexR = right->index(); - if (indexR < 0) indexR = std::numeric_limits::max(); - if (indexL < indexR) return true; - if (indexL > indexR) return false; + std::sort(fileProperties.begin(), fileProperties.end(), [](const UiFileProperty::ptr &left, const UiFileProperty::ptr &right) + { + // properies with indexes first. + int32_t indexL = left->index(); + if (indexL < 0) + indexL = std::numeric_limits::max(); + int32_t indexR = right->index(); + if (indexR < 0) + indexR = std::numeric_limits::max(); + if (indexL < indexR) + return true; + if (indexL > indexR) + return false; - // there is no natural order. TTL indexing means that the order we see them in is random. - // We can't order them sensibly. Let's at least order them consistently. - return left->label() < right->label(); - - }); + // there is no natural order. TTL indexing means that the order we see them in is random. + // We can't order them sensibly. Let's at least order them consistently. + return left->label() < right->label(); }); result.pipedalUi = std::make_shared(std::move(fileProperties)); } result.hasUnsupportedPatchProperties = unsupportedPatchProperty; @@ -764,6 +795,12 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP AutoLilvNode name = (lilv_plugin_get_name(pPlugin)); this->name_ = nodeAsString(name); + AutoLilvNodes minorVersion = lilv_plugin_get_value(pPlugin, lv2Host->lilvUris->lv2core__minorVersion); + this->minorVersion_ = nodesAsInt(minorVersion); + + AutoLilvNodes microVersion = lilv_plugin_get_value(pPlugin, lv2Host->lilvUris->lv2core__microVersion); + this->microVersion_ = nodesAsInt(microVersion); + AutoLilvNode brand = lilv_world_get(pWorld, plugUri, lv2Host->lilvUris->mod__brand, nullptr); this->brand_ = nodeAsString(brand); @@ -838,6 +875,59 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP } std::sort(ports_.begin(), ports_.end(), ports_sort_compare); + // Fetch patch properties. + { + AutoLilvNodes patchWritables = lilv_world_find_nodes(pWorld, plugUri, lv2Host->lilvUris->patch__writable, nullptr); + + bool unsupportedPatchProperty = false; + LILV_FOREACH(nodes, iNode, patchWritables) + { + AutoLilvNode propertyUri = lilv_nodes_get(patchWritables, iNode); + if (propertyUri) + { + // a lv2:Parameter? + if (lilv_world_ask(pWorld, propertyUri, lv2Host->lilvUris->isA, lv2Host->lilvUris->lv2core__Parameter)) + { + Lv2PatchPropertyInfo propertyInfo{lv2Host, propertyUri}; + propertyInfo.writable(true); + patchProperties_.push_back(std::move(propertyInfo)); + } + } + } + } + { + AutoLilvNodes patchReadables = lilv_world_find_nodes(pWorld, plugUri, lv2Host->lilvUris->patch__readable, nullptr); + + bool unsupportedPatchProperty = false; + LILV_FOREACH(nodes, iNode, patchReadables) + { + AutoLilvNode propertyUri = lilv_nodes_get(patchReadables, iNode); + if (propertyUri) + { + std::string uri = propertyUri.AsUri(); + bool found = false; + for (auto &property : patchProperties_) + { + if (property.uri() == uri) + { + property.readable(true); + found = true; + break; + } + } + if (!found) + { + if (lilv_world_ask(pWorld, propertyUri, lv2Host->lilvUris->isA, lv2Host->lilvUris->lv2core__Parameter)) + { + Lv2PatchPropertyInfo propertyInfo{lv2Host, propertyUri}; + propertyInfo.readable(true); + patchProperties_.push_back(std::move(propertyInfo)); + } + } + } + } + + } // Fetch pipedal plugin UI @@ -886,7 +976,7 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP ++nOutputs; } } - + this->modGui_ = ModGui::Create(lv2Host, pPlugin); this->is_valid_ = isValid; } @@ -1012,22 +1102,21 @@ Lv2PortInfo::Lv2PortInfo(PluginHost *host, const LilvPlugin *plugin, const LilvP this->integer_property_ = lilv_port_has_property(plugin, pPort, host->lilvUris->integer_property_uri); this->mod_momentaryOffByDefault_ = lilv_port_has_property(plugin, pPort, host->lilvUris->mod__preferMomentaryOffByDefault); this->mod_momentaryOnByDefault_ = lilv_port_has_property(plugin, pPort, host->lilvUris->mod__preferMomentaryOnByDefault); - this->pipedal_graphicEq_ = lilv_port_has_property(plugin, pPort, host->lilvUris->pipedalUI__graphicEq); - + this->pipedal_graphicEq_ = lilv_port_has_property(plugin, pPort, host->lilvUris->pipedalUI__graphicEq); this->enumeration_property_ = lilv_port_has_property(plugin, pPort, host->lilvUris->enumeration_property_uri); - this->toggled_property_ = lilv_port_has_property(plugin, pPort, host->lilvUris->core__toggled); this->not_on_gui_ = lilv_port_has_property(plugin, pPort, host->lilvUris->portprops__not_on_gui_property_uri); this->connection_optional_ = lilv_port_has_property(plugin, pPort, host->lilvUris->core__connectionOptional); this->trigger_property_ = lilv_port_has_property(plugin, pPort, host->lilvUris->portprops__trigger); - AutoLilvNode port_ledColor = lilv_port_get(plugin,pPort,host->lilvUris->pipedalUI__ledColor); + AutoLilvNode port_ledColor = lilv_port_get(plugin, pPort, host->lilvUris->pipedalUI__ledColor); if (port_ledColor) { auto value = lilv_node_as_string(port_ledColor); - if (value) { + if (value) + { this->pipedal_ledColor_ = value; } } @@ -1164,6 +1253,8 @@ bool PluginHost::is_a(const std::string &class_, const std::string &target_class Lv2PluginUiInfo::Lv2PluginUiInfo(PluginHost *pHost, const Lv2PluginInfo *plugin) : uri_(plugin->uri()), name_(plugin->name()), + minorVersion_(plugin->minorVersion()), + microVersion_(plugin->microVersion()), brand_(plugin->brand()), label_(plugin->label()), author_name_(plugin->author_name()), @@ -1173,7 +1264,9 @@ Lv2PluginUiInfo::Lv2PluginUiInfo(PluginHost *pHost, const Lv2PluginInfo *plugin) audio_outputs_(0), description_(plugin->comment()), has_midi_input_(false), - has_midi_output_(false) + has_midi_output_(false), + modGui_(plugin->modGui()), + patchProperties_(plugin->patchProperties()) { PLUGIN_MAP_CHECK(); auto pluginClass = pHost->GetPluginClass(plugin->plugin_class()); @@ -1253,7 +1346,7 @@ std::shared_ptr PluginHost::GetPluginInfo(const std::string &uri) return ff->second; } -Lv2Pedalboard *PluginHost::UpdateLv2PedalboardStructure(Pedalboard &pedalboard,Lv2Pedalboard *existingPedalboard,Lv2PedalboardErrorList &errorList) +Lv2Pedalboard *PluginHost::UpdateLv2PedalboardStructure(Pedalboard &pedalboard, Lv2Pedalboard *existingPedalboard, Lv2PedalboardErrorList &errorList) { ExistingEffectMap existingEffects; @@ -1261,7 +1354,8 @@ Lv2Pedalboard *PluginHost::UpdateLv2PedalboardStructure(Pedalboard &pedalboard,L { for (auto &effect : existingPedalboard->GetSharedEffectList()) { - if (effect->IsLv2Effect()) { + if (effect->IsLv2Effect()) + { existingEffects[effect->GetInstanceId()] = effect; } } @@ -1269,7 +1363,7 @@ Lv2Pedalboard *PluginHost::UpdateLv2PedalboardStructure(Pedalboard &pedalboard,L Lv2Pedalboard *pPedalboard = new Lv2Pedalboard(); try { - pPedalboard->Prepare(this, pedalboard, errorList,&existingEffects); + pPedalboard->Prepare(this, pedalboard, errorList, &existingEffects); return pPedalboard; } catch (const std::exception &e) @@ -1589,17 +1683,16 @@ static void createTargetLinks(const std::filesystem::path &sourceDirectory, cons } } -std::string PluginHost::MapResourcePath(const std::string&pluginUri, const std::string&filePath) +std::string PluginHost::MapResourcePath(const std::string &pluginUri, const std::string &filePath) { auto plugin = GetPluginInfo(pluginUri); - if (plugin) { - + if (plugin) + { + return filePath; } - return filePath; - } void PluginHost::CheckForResourceInitialization(const std::string &pluginUri, const std::filesystem::path &pluginUploadDirectory) @@ -1679,6 +1772,43 @@ std::string PluginHost::AbstractPath(const std::string &path) } return path; } +Lv2PatchPropertyInfo::Lv2PatchPropertyInfo(PluginHost *pluginHost, const LilvNode *propertyUri) +{ + LilvWorld *pWorld = pluginHost->getWorld(); + this->uri_ = nodeAsString(propertyUri); + + AutoLilvNode range = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->rdfs__range, nullptr); + if (range) + { + this->type_ = range.AsUri(); + } + AutoLilvNode comment = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->rdfs__Comment, nullptr); + if (comment) + { + this->comment_ = comment.AsString(); + } + AutoLilvNode shortName = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->lv2core__shortName, nullptr); + if (shortName) + { + this->shortName_ = shortName.AsString(); + } else { + this->shortName_ = this->label_; + } + + AutoLilvNode indexNode = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->lv2core__index, nullptr); + this->index_ = indexNode.AsInt(-1); + + AutoLilvNode modFileTypesNode = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->mod__fileTypes, nullptr); + if (modFileTypesNode) { + std::string strFileTypes = modFileTypesNode.AsString(); + this->fileTypes_ = split(strFileTypes,','); + } + AutoLilvNode modSupportedExtensionsNode = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->mod__supportedExtensions, nullptr); + if (modSupportedExtensionsNode) { + std::string strSupportedExtensions = modSupportedExtensionsNode.AsString(); + this->supportedExtensions_ = split(strSupportedExtensions,','); + } +} // void PiPedalHostLogError(const std::string &error) // { @@ -1757,6 +1887,8 @@ json_map::storage_type Lv2PortGroup::jmap{{ json_map::storage_type Lv2PluginInfo::jmap{{ json_map::reference("bundle_path", &Lv2PluginInfo::bundle_path_), json_map::reference("uri", &Lv2PluginInfo::uri_), + json_map::reference("minorVersion", &Lv2PluginInfo::minorVersion_), + json_map::reference("microVersion", &Lv2PluginInfo::microVersion_), json_map::reference("name", &Lv2PluginInfo::name_), json_map::reference("brand", &Lv2PluginInfo::brand_), json_map::reference("label", &Lv2PluginInfo::label_), @@ -1774,6 +1906,8 @@ json_map::storage_type Lv2PluginInfo::jmap{{ json_map::reference("port_groups", &Lv2PluginInfo::port_groups_), json_map::reference("is_valid", &Lv2PluginInfo::is_valid_), json_map::reference("has_factory_presets", &Lv2PluginInfo::has_factory_presets_), + json_map::reference("modGui", &Lv2PluginInfo::modGui_), + json_map::reference("patchProperties", &Lv2PluginInfo::patchProperties_), }}; json_map::storage_type Lv2PluginClass::jmap{{ @@ -1831,6 +1965,8 @@ json_map::storage_type { json_map::reference("uri", &Lv2PluginUiInfo::uri_), json_map::reference("name", &Lv2PluginUiInfo::name_), + json_map::reference("minorVersion", &Lv2PluginUiInfo::minorVersion_), + json_map::reference("microVersion", &Lv2PluginUiInfo::microVersion_), json_map::reference("brand", &Lv2PluginUiInfo::brand_), json_map::reference("label", &Lv2PluginUiInfo::label_), json_map::enum_reference("plugin_type", &Lv2PluginUiInfo::plugin_type_, get_plugin_type_enum_converter()), @@ -1848,4 +1984,16 @@ json_map::storage_type json_map::reference("fileProperties", &Lv2PluginUiInfo::fileProperties_), json_map::reference("frequencyPlots", &Lv2PluginUiInfo::frequencyPlots_), json_map::reference("uiPortNotifications", &Lv2PluginUiInfo::uiPortNotifications_), + json_map::reference("modGui", &Lv2PluginUiInfo::modGui_), + json_map::reference("patchProperties", &Lv2PluginUiInfo::patchProperties_), }}; +JSON_MAP_BEGIN(Lv2PatchPropertyInfo) +JSON_MAP_REFERENCE(Lv2PatchPropertyInfo, uri) +JSON_MAP_REFERENCE(Lv2PatchPropertyInfo, label) +JSON_MAP_REFERENCE(Lv2PatchPropertyInfo, type) +JSON_MAP_REFERENCE(Lv2PatchPropertyInfo, comment) +JSON_MAP_REFERENCE(Lv2PatchPropertyInfo, shortName) +JSON_MAP_REFERENCE(Lv2PatchPropertyInfo, fileTypes) +JSON_MAP_REFERENCE(Lv2PatchPropertyInfo, supportedExtensions) + +JSON_MAP_END() \ No newline at end of file diff --git a/src/PluginHost.hpp b/src/PluginHost.hpp index cafa183..6e2b995 100644 --- a/src/PluginHost.hpp +++ b/src/PluginHost.hpp @@ -32,6 +32,7 @@ #include #include "IHost.hpp" #include +#include "ModGui.hpp" //#include "lv2.h" #include "Units.hpp" @@ -42,6 +43,7 @@ #include "AutoLilvNode.hpp" #include "PiPedalUI.hpp" #include "MapPathFeature.hpp" +#include "ModGui.hpp" namespace pipedal { @@ -325,6 +327,38 @@ namespace pipedal static json_map::storage_type jmap; }; + class Lv2PatchPropertyInfo { + + private: + std::string uri_; + bool writable_ = false; + bool readable_ = false; + std::string label_; + uint32_t index_ = -1; + std::string type_; + std::string comment_; + std::string shortName_; + std::vector fileTypes_; + std::vector supportedExtensions_; + public: + Lv2PatchPropertyInfo() {} + Lv2PatchPropertyInfo(PluginHost *pluginHost, const LilvNode *propertyUri); + + LV2_PROPERTY_GETSET(uri); + LV2_PROPERTY_GETSET(writable); + LV2_PROPERTY_GETSET(readable); + LV2_PROPERTY_GETSET(label); + LV2_PROPERTY_GETSET_SCALAR(index); + LV2_PROPERTY_GETSET(type); + LV2_PROPERTY_GETSET(comment); + LV2_PROPERTY_GETSET(shortName); + LV2_PROPERTY_GETSET(fileTypes); + LV2_PROPERTY_GETSET(supportedExtensions); + + DECLARE_JSON_MAP(Lv2PatchPropertyInfo); + + }; + class Lv2PortGroup { private: @@ -364,6 +398,8 @@ namespace pipedal bool HasFactoryPresets(PluginHost *lv2Host, const LilvPlugin *plugin); std::string bundle_path_; std::string uri_; + uint32_t minorVersion_ = 0; + uint32_t microVersion_ = 0; std::string name_; std::string plugin_class_; std::string brand_; @@ -380,8 +416,12 @@ namespace pipedal std::string comment_; std::vector> ports_; std::vector> port_groups_; + std::vector patchProperties_; + bool is_valid_ = false; PiPedalUI::ptr piPedalUI_; + ModGui::ptr modGui_; + bool hasUnsupportedPatchProperties_ = false; bool IsSupportedFeature(const std::string &feature) const; @@ -390,6 +430,8 @@ namespace pipedal LV2_PROPERTY_GETSET(bundle_path) LV2_PROPERTY_GETSET(uri) LV2_PROPERTY_GETSET(name) + LV2_PROPERTY_GETSET(minorVersion) + LV2_PROPERTY_GETSET(microVersion) LV2_PROPERTY_GETSET(brand) LV2_PROPERTY_GETSET(label) LV2_PROPERTY_GETSET(plugin_class) @@ -406,6 +448,8 @@ namespace pipedal LV2_PROPERTY_GETSET(has_factory_presets) LV2_PROPERTY_GETSET(piPedalUI) LV2_PROPERTY_GETSET(hasUnsupportedPatchProperties) + LV2_PROPERTY_GETSET(modGui) + LV2_PROPERTY_GETSET(patchProperties) const Lv2PortInfo &getPort(const std::string &symbol) { @@ -618,6 +662,8 @@ namespace pipedal private: std::string uri_; std::string name_; + uint32_t minorVersion_ = 0; + uint32_t microVersion_ = 0;; std::string brand_; std::string label_; std::string author_name_; @@ -636,10 +682,15 @@ namespace pipedal std::vector fileProperties_; std::vector frequencyPlots_; std::vector uiPortNotifications_; + ModGui::ptr modGui_; + std::vector patchProperties_; + public: LV2_PROPERTY_GETSET(uri) LV2_PROPERTY_GETSET(name) + LV2_PROPERTY_GETSET(minorVersion) + LV2_PROPERTY_GETSET(microVersion) LV2_PROPERTY_GETSET(brand) LV2_PROPERTY_GETSET(label) LV2_PROPERTY_GETSET(author_name) @@ -657,6 +708,8 @@ namespace pipedal LV2_PROPERTY_GETSET(fileProperties) LV2_PROPERTY_GETSET(frequencyPlots) LV2_PROPERTY_GETSET(uiPortNotifications) + LV2_PROPERTY_GETSET(modGui) + LV2_PROPERTY_GETSET(patchProperties) static json_map::storage_type jmap; }; @@ -679,6 +732,8 @@ namespace pipedal #endif friend class pipedal::AutoLilvNode; friend class pipedal::PiPedalUI; + friend class PluginHostTest; + static const char *RDFS__comment; static const char *RDFS__range; @@ -707,6 +762,7 @@ namespace pipedal AutoLilvNode invada_units__unit; // typo in invada plugins. AutoLilvNode invada_portprops__logarithmic; // typo in invada plugins. + AutoLilvNode atom__bufferType; AutoLilvNode atom__Path; AutoLilvNode presets__preset; @@ -714,8 +770,11 @@ namespace pipedal AutoLilvNode rdfs__label; AutoLilvNode lv2core__symbol; AutoLilvNode lv2core__name; + AutoLilvNode lv2core__shortName; AutoLilvNode lv2core__index; AutoLilvNode lv2core__Parameter; + AutoLilvNode lv2core__minorVersion; + AutoLilvNode lv2core__microVersion; AutoLilvNode pipedalUI__ui; AutoLilvNode pipedalUI__fileProperties; AutoLilvNode pipedalUI__directory; @@ -766,6 +825,7 @@ namespace pipedal AutoLilvNode patch__readable; AutoLilvNode pipedal_patch__readable; + AutoLilvNode mod__brand; AutoLilvNode mod__label; AutoLilvNode mod__preferMomentaryOffByDefault; @@ -773,6 +833,7 @@ namespace pipedal AutoLilvNode dc__format; AutoLilvNode mod__fileTypes; + AutoLilvNode mod__supportedExtensions; AutoLilvNode pipedalui__fileTypes; @@ -817,6 +878,7 @@ namespace pipedal friend class Lv2PluginInfo; friend class Lv2PortInfo; friend class Lv2PortGroup; + friend class ModGui; std::shared_ptr GetPluginClass(const LilvPluginClass *pClass); std::shared_ptr MakePluginClass(const LilvPluginClass *pClass); @@ -924,7 +986,9 @@ namespace pipedal class Urids; - Urids *urids; + Urids *urids = nullptr; + ModGuiUris* mod_gui_uris = nullptr; + void OnConfigurationChanged(const JackConfiguration &configuration, const JackChannelSelection &settings); @@ -933,7 +997,7 @@ namespace pipedal std::shared_ptr GetLv2PluginClass() const; - std::vector> GetPlugins() const { return plugins_; } + const std::vector>& GetPlugins() const { return plugins_; } const std::vector &GetUiPlugins() const { return ui_plugins_; } virtual std::shared_ptr GetPluginInfo(const std::string &uri) const; @@ -941,7 +1005,7 @@ namespace pipedal static constexpr const char *DEFAULT_LV2_PATH = "/usr/lib/lv2"; void LoadPluginClassesFromJson(std::filesystem::path jsonFile); - void Load(const char *lv2Path = PluginHost::DEFAULT_LV2_PATH); + void LoadLilv(const char *lv2Path = PluginHost::DEFAULT_LV2_PATH); virtual LV2_URID GetLv2Urid(const char *uri) { diff --git a/src/Units.hpp b/src/Units.hpp index 3ba14f0..604a1f5 100644 --- a/src/Units.hpp +++ b/src/Units.hpp @@ -68,3 +68,4 @@ json_enum_converter *get_units_enum_converter(); } // namespace. + diff --git a/src/WebServer.cpp b/src/WebServer.cpp index 946088f..e159704 100644 --- a/src/WebServer.cpp +++ b/src/WebServer.cpp @@ -37,6 +37,7 @@ #include "Ipv6Helpers.hpp" #include "util.hpp" #include "ofstream_synced.hpp" +#include "ModTemplateGenerator.hpp" #include #include "WebServer.hpp" @@ -741,6 +742,14 @@ namespace pipedal request.set_body_file(bodyFile->Path(),bodyFile->DeleteFile()); bodyFile->Detach(); } + + + virtual void clearBody() override { + // clear the body, but leave the file size intact (e.g for a HEAD request). + request.set_body(""); + + // STUB: Don't know how to clear the body file!! + } virtual void setBodyFile(std::filesystem::path&path, bool deleteWhenDone) override { // cast away const to do what ther request would do if it had that method. request.set_body_file(path,deleteWhenDone); diff --git a/src/WebServer.hpp b/src/WebServer.hpp index e121cc2..1d9bd03 100644 --- a/src/WebServer.hpp +++ b/src/WebServer.hpp @@ -43,6 +43,7 @@ public: virtual void setBody(const std::string&body) = 0; virtual void setBodyFile(std::shared_ptr&temporaryFile) = 0; virtual void setBodyFile(std::filesystem::path&path, bool deleteWhenDone) = 0; + virtual void clearBody() = 0; // but leave the file size intact (e.g for a HEAD request). virtual void keepAlive(bool value) = 0; }; diff --git a/src/WebServerConfig.cpp b/src/WebServerConfig.cpp index ae23dc9..abda288 100644 --- a/src/WebServerConfig.cpp +++ b/src/WebServerConfig.cpp @@ -39,6 +39,7 @@ #include "AudioFiles.hpp" #include "util.hpp" #include "HtmlHelper.hpp" +#include "WebServerMod.hpp" #define OLD_PRESET_EXTENSION ".piPreset" #define PRESET_EXTENSION ".piPreset" @@ -249,7 +250,7 @@ public: void GetPluginPresets(const uri &request_uri, std::string *pName, std::string *pContent) { std::string pluginUri = request_uri.query("id"); - auto plugin = model->GetLv2Host().GetPluginInfo(pluginUri); + auto plugin = model->GetPluginHost().GetPluginInfo(pluginUri); *pName = plugin->name(); PluginPresets pluginPresets = model->GetPluginPresets(pluginUri); @@ -1102,4 +1103,7 @@ void pipedal::ConfigureWebServer( std::shared_ptr downloadIntercept = std::make_shared(&model); server.AddRequestHandler(downloadIntercept); + + std::shared_ptr modWebIntercept = ModWebIntercept::Create(&model); + server.AddRequestHandler(modWebIntercept); } diff --git a/src/WebServerMod.cpp b/src/WebServerMod.cpp new file mode 100644 index 0000000..e557ac8 --- /dev/null +++ b/src/WebServerMod.cpp @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "WebServerMod.hpp" +#include +#include "json_variant.hpp" +#include "ss.hpp" +#include "ModTemplateGenerator.hpp" +#include "HtmlHelper.hpp" +#include "MimeTypes.hpp" + +using namespace pipedal; +namespace fs = std::filesystem; + +namespace pipedal::impl +{ + + class ModWebInterceptImpl : public ModWebIntercept + { + private: + using super = ModWebIntercept; + using self = ModWebInterceptImpl; + + PiPedalModel *model; + + public: + ModWebInterceptImpl(PiPedalModel *model) + : super("/resources"), + model(model) + { + } + virtual bool wants(const std::string &method, const uri &request_uri) const override; + + virtual void head_response( + const uri &request_uri, + HttpRequest &req, + HttpResponse &res, + std::error_code &ec) override; + + virtual void get_response( + const uri &request_uri, + HttpRequest &req, + HttpResponse &res, + std::error_code &ec) override; + + private: + std::string GenerateTemplate( + const fs::path &templateFile, + std::shared_ptr pluginInfo); + }; +} + +using namespace pipedal::impl; + +ModWebIntercept::ptr ModWebIntercept::Create(PiPedalModel *model) +{ + return std::make_shared(model); +} + +bool ModWebInterceptImpl::wants(const std::string &method, const uri &request_uri) const +{ + if (request_uri.segment_count() < 2 || request_uri.segment(0) != "resources") + { + return false; + } + return true; +} + +void ModWebInterceptImpl::head_response( + const uri &request_uri, + HttpRequest &req, + HttpResponse &res, + std::error_code &ec) +{ + get_response(request_uri, req, res, ec); + res.clearBody(); +} + +static void setCacheControl(HttpResponse &res, const fs::path &path) +{ + if (fs::exists(path)) + { + res.set("Cache-Control", "public, max-age=31536000"); // 1 month + auto lastModified = std::filesystem::last_write_time(path); + res.set(HttpField::LastModified, HtmlHelper::timeToHttpDate(lastModified)); + } + else + { + res.set("Cache-Control", "no-cache, no-store, must-revalidate"); + } +} +void ModWebInterceptImpl::get_response( + const uri &request_uri, + HttpRequest &req, + HttpResponse &res, + std::error_code &ec) +{ + try + { + std::string ns = request_uri.query("ns"); + std::string strVersion = request_uri.query("v"); + (void)strVersion; // this is just cache-busting, so we don't actually use it. + + std::shared_ptr pluginInfo; + if (!ns.empty()) + { + pluginInfo = model->GetPluginInfo(ns); + if (!pluginInfo) + { + throw std::runtime_error("Plugin not found."); + } + } + if (!pluginInfo->modGui()) + { + throw std::runtime_error("Plugin does not have a ModGui."); + } + if (request_uri.segment_count() < 2) + { + throw std::runtime_error("Invalid request URI."); + } + if (request_uri.segment(0) != "resources") + { + throw std::runtime_error("Invalid request URI: expected 'resources'."); + } + std::string segment = request_uri.segment(1); + if (segment == "_") + { + segment = request_uri.segment(2); + if (segment == "iconTemplate") + { + res.set("Content-Type", "text/html"); + res.setBody(GenerateTemplate( + pluginInfo->modGui()->iconTemplate(), + pluginInfo)); + setCacheControl(res, pluginInfo->modGui()->iconTemplate()); + } + else if (segment == "stylesheet") + { + res.set("Content-Type", "text/css"); + res.setBody(GenerateTemplate( + pluginInfo->modGui()->stylesheet(), + pluginInfo)); + setCacheControl(res, pluginInfo->modGui()->stylesheet()); + + } + + else if (segment == "screenshot") + { + std::filesystem::path path = pluginInfo->modGui()->screenshot(); + if (!fs::exists(path)) + { + ec = std::make_error_code(std::errc::no_such_file_or_directory); + return; + } + if (!fs::is_regular_file(path)) + { + throw std::runtime_error("Screenshot is not a regular file: " + path.string()); + } + + size_t size = fs::file_size(path); + std::string mimeType = MimeTypes::instance().MimeTypeFromExtension(path.extension().string()); + if (mimeType.empty()) + { + throw std::runtime_error("Unknown file type for screenshot: " + path.string()); + } + res.setBodyFile( + path, + false); // delete when done + res.set("Content-Type", mimeType); + res.setContentLength(size); + setCacheControl(res, path); + + } + else if (segment == "thumbnail") + { + std::filesystem::path path = pluginInfo->modGui()->thumbnail(); + if (!fs::exists(path)) + { + throw std::runtime_error("Thumbnail not found: " + path.string()); + } + if (!fs::is_regular_file(path)) + { + throw std::runtime_error("Thumbnail is not a regular file: " + path.string()); + } + + size_t size = fs::file_size(path); + std::string mimeType = MimeTypes::instance().MimeTypeFromExtension(path.extension().string()); + if (mimeType.empty()) + { + throw std::runtime_error("Unknown file type for thumbnail: " + path.string()); + } + res.setBodyFile( + path, + false); // delete when done + res.set("Content-Type", mimeType); + setCacheControl(res, path); + res.setContentLength(size); + } else { + throw std::runtime_error("Unknown resource: _/" + segment); + } + } + else + { + // a request for a plugin resource file. + fs::path resourcefile = pluginInfo->modGui()->resourceDirectory(); + for (size_t i = 1; i < request_uri.segment_count(); ++i) + { + resourcefile /= request_uri.segment(i); + } + if (!fs::exists(resourcefile) && !fs::is_regular_file(resourcefile)) + { + ec = std::make_error_code(std::errc::no_such_file_or_directory); + return; + } + size_t size = fs::file_size(resourcefile); + std::string mimeType = MimeTypes::instance().MimeTypeFromExtension(resourcefile.extension().string()); + if (mimeType.empty()) + { + throw std::runtime_error("Unknown file type for resource: " + resourcefile.string()); + } + res.setBodyFile( + resourcefile, + false); // delete when done + res.set("Content-Type", mimeType); + Lv2Log::debug(SS("ModWebIntercept: Serving resource file: " << resourcefile.string() << " (" << size << " bytes)")); + Lv2Log::debug(SS(" url: " << request_uri.str())); + setCacheControl(res, resourcefile); + res.setContentLength(size); + } + } + catch (const std::exception &e) + { + res.setBody("Error: " + std::string(e.what())); + ec = boost::system::errc::make_error_code(boost::system::errc::invalid_argument); + return; + } +} + +static std::string makeCns(const std::string &encodedUri, int64_t instanceId) +{ + std::stringstream ss; + ss << "_"; + for (char c : encodedUri) + { + if ( + (c >= 'a' && c <= 'z') || (c >= 'A' & c <= 'Z') || (c >= '0' && c <= '9')) + { + ss << c; + } + else + { + ss << '_'; // replace non-alphanumeric characters with '_' + } + } + ss << "_"; + if (instanceId < 0) + { + ss << "_"; + instanceId = -instanceId; + } + ss << instanceId; + return ss.str(); +} + +std::string ModWebInterceptImpl::GenerateTemplate( + const fs::path &templateFile, + std::shared_ptr pluginInfo) +{ + if (!fs::exists(templateFile)) + { + throw std::runtime_error("File not found. " + templateFile.string()); + } + + json_variant context = MakeModGuiTemplateData(pluginInfo); + int64_t version = pluginInfo->minorVersion() * 1000 + + pluginInfo->microVersion(); + + std::string encodedUri = HtmlHelper::encode_url_segment(pluginInfo->uri(), true); + std::string ns = SS("?ns=" << encodedUri << "&v=" << version); + context["_ns"] = ns; + + std::string cns = makeCns(encodedUri, version); + context["_cns"] = cns; + + return GenerateFromTemplateFile( + templateFile, + context); +} diff --git a/src/WebServerMod.hpp b/src/WebServerMod.hpp new file mode 100644 index 0000000..0326be5 --- /dev/null +++ b/src/WebServerMod.hpp @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +#include "WebServer.hpp" + +#include "PiPedalModel.hpp" +#include + + +namespace pipedal { + + + class ModWebIntercept : public RequestHandler + { + + PiPedalModel *model; + protected: + ModWebIntercept(const std::string &target_url) + : RequestHandler(target_url.c_str()) + { + } + public: + using self = ModWebIntercept; + using super = RequestHandler; + using ptr = std::shared_ptr; + + static ptr Create(PiPedalModel *model); + + ModWebIntercept(PiPedalModel *model) + : RequestHandler("/var"), + model(model) + { + } + virtual ~ModWebIntercept() = default; + + + }; + +} \ No newline at end of file diff --git a/todo.txt b/todo.txt index 940fc5d..7e60566 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,11 @@ -Exctly one underrun per seek in Toob Player + +check reload after change of LV2 plugins. + +Vu Meters, move rendering to background images, in order to reduce layout overhead. + +Remove FullScreenIME in PluginControlView.tsx + +Exactly one underrun per seek in Toob Player Test autohotspot detection. diff --git a/vite/CMakeLists.txt b/vite/CMakeLists.txt index f5f87e3..b881fe9 100644 --- a/vite/CMakeLists.txt +++ b/vite/CMakeLists.txt @@ -108,7 +108,6 @@ add_custom_command( public/iso_codes.json public/logo512.png public/sample_lv2_plugins.json - public/vite.svg src/pipedal/SplitUiControls.tsx src/pipedal/JackHostStatus.tsx src/pipedal/VirtualKeyboardHandler.tsx @@ -291,8 +290,6 @@ add_custom_command( src/pipedal/MidiChannelBinding.tsx src/pipedal/ModFileTypes.tsx src/assets/react.svg - src/App.css - src/App.tsx src/vite-env.d.ts src/index.css src/main.tsx diff --git a/vite/index.html b/vite/index.html index 462145c..68c9bd8 100644 --- a/vite/index.html +++ b/vite/index.html @@ -10,7 +10,7 @@ - + "; + let cssDoc = parser.parseFromString(cssText, "text/html"); + let cssElement = cssDoc.getElementById('mod-gui-style'); + if (!cssElement) { + setModError("No style element found."); + return; + } + if (hostDivRef === null) { + return; // cancelled. + } + prepareElement(element); + // add element to the hostDivRef + hostDivRef.appendChild(cssElement); + hostDivRef.appendChild(element); + let width = element.clientWidth; + let height = element.clientHeight; + hostDivRef.style.width = width + "px"; + hostDivRef.style.height = height + "px"; + } catch (error) { + setModError("Error loading UI: " + (error instanceof Error ? error.message : String(error))); + } + + } + + React.useEffect(() => { + let tHostDivRef = hostDivRef; + if (ready) { + if (hostDivRef !== null) { + requestContent(); + } + } + let stateHandler = (state: State) => { + setReady(state === State.Ready); + } + xmodel.state.addOnChangedHandler(stateHandler) + return () => { + xmodel.state.removeOnChangedHandler(stateHandler); + if (tHostDivRef !== null) { + // unmount the custom content. + let children = tHostDivRef.children; + for (let i = children.length - 1; i >= 0; i--) { + let child = children[i]; + if (child instanceof HTMLElement) { + child.remove(); + } + } + } + let mc = modGuiControls; + for (let i = 0; i < mc.length; i++) { + let modGuiControl = mc[i]; + modGuiControl.onUnmount(); + } + mc.length = 0; // Clear the controls array + }; + }, [hostDivRef, plugin, ready]); + + return ( + { props.onClose(); setErrorMessage(null); }}> +
{ + // Prevent click events from propagating to the parent element. + event.stopPropagation(); + }} + > + onClose()} style={{ + position: "absolute", top: 16, right: 16, + background: "#FFF5", zIndex: 600 + }}> + + + +
+ +
+
{ + // Prevent click events from propagating to the parent element. + event.stopPropagation(); + } + } + /> +
+ +
+ +
+ { + setErrorMessage(null); + onClose(); + }} + text={errorMessage ?? ""} + /> + + ); +} +export default ModGuiHost; \ No newline at end of file diff --git a/vite/src/pipedal/ModGuiTest.tsx b/vite/src/pipedal/ModGuiTest.tsx new file mode 100644 index 0000000..1e0d616 --- /dev/null +++ b/vite/src/pipedal/ModGuiTest.tsx @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React from 'react'; +import Divider from '@mui/material/Divider'; +import { PiPedalModel, PiPedalModelFactory, MonitorPortHandle, State, ListenHandle, PatchPropertyListener } from './PiPedalModel'; +import { useTheme } from '@mui/material/styles'; +import CircularProgress from '@mui/material/CircularProgress'; +import LoadPluginDialog from './LoadPluginDialog'; +import ButtonEx from './ButtonEx'; +import Typography from '@mui/material/Typography/Typography'; +import ModGuiHost, { IModGuiHostSite } from './ModGuiHost'; +import { UiPlugin } from './Lv2Plugin'; +import ModGuiErrorBoundary from './ModGuiErrorBoundary'; + +class MyPortHandle implements MonitorPortHandle { + private static nextHandle: number = 1; + constructor() { + this.handle = MyPortHandle.nextHandle++; + } + handle: number; +}; + +type MonitorCallback = (value: number) => void; + +class ValueEntry { + constructor(defaultValue: number) { + this.value = defaultValue; + } + private listeners: { [handle: number]: MonitorCallback } = {}; + + monitor(interval: number, callback: MonitorCallback): MyPortHandle { + let handle = new MyPortHandle(); + this.listeners[handle.handle] = callback; + return handle; + } + unmonitor(handle: MonitorPortHandle) { + let h = (handle as MyPortHandle).handle; + // remove entry h from listeners + if (!(h in this.listeners)) { + throw new Error("Invalid handle: " + h); + } + // remove the callback from the listeners + delete this.listeners[h]; + } + setValue(value: number) { + if (value !== this.value) { + this.value = value; + // notify all listeners + for (let handle in this.listeners) { + this.listeners[handle](value); + } + } + } + value: number; +}; + +class PatchListenerEntry { + constructor(instanceId: number, propertyUri: string) { + this.instanceId = instanceId; + this.propertyUri = propertyUri; + } + instanceId: number; + propertyUri: string; + value: any = ""; + listeners: { handle: number, listener: PatchPropertyListener}[] = [];; +}; + + +class ValueHandler { + + private valueDictionary: { [symbol: string]: ValueEntry } = {}; + private handleToValueEnry: { [handle: number]: ValueEntry } = {}; + + constructor(instanceId: number, plugin: UiPlugin) { + for (let control of plugin.controls) { + this.valueDictionary[control.symbol] = new ValueEntry(control.default_value); + } + this.valueDictionary["_bypass"] = new ValueEntry(0); + } + monitorPort(instanceId: number, symbol: string, interval: number, callback: MonitorCallback): MonitorPortHandle { + let valueEntry = this.valueDictionary[symbol]; + + let portHandle = valueEntry.monitor(interval, callback); + this.handleToValueEnry[(portHandle as MyPortHandle).handle] = valueEntry; + callback(valueEntry.value); + return portHandle; + } + unmonitorPort(handle: MonitorPortHandle): void { + let h = (handle as MyPortHandle).handle; + if (!(h in this.handleToValueEnry)) { + throw new Error("Invalid handle: " + h); + } + let valueEntry = this.handleToValueEnry[h]; + valueEntry.unmonitor(handle); + delete this.handleToValueEnry[h]; + } + setValue(instanceId: number, symbol: string, value: number) { + // add a delay just for funsies. + window.setTimeout(() => { + if (!(symbol in this.valueDictionary)) { + throw new Error("Invalid symbol: " + symbol); + } + let valueEntry = this.valueDictionary[symbol]; + valueEntry.setValue(value); + }, 100); + } + getValue(instanceId: number, symbol: string): number { + if (!(symbol in this.valueDictionary)) { + throw new Error("Invalid symbol: " + symbol); + } + let valueEntry = this.valueDictionary[symbol]; + return valueEntry.value; + } + private nextListenHandle: number = 1; + + + private patchListeners: PatchListenerEntry[] = []; + + monitorPatchProperty(instanceId: number, propertyUri: string, onReceived: PatchPropertyListener): ListenHandle { + let h = this.nextListenHandle++; + for (let entry of this.patchListeners) { + if (entry.instanceId === instanceId && entry.propertyUri === propertyUri) { + // already listening to this property + entry.listeners.push({ handle: h, listener: onReceived }); + onReceived(instanceId,propertyUri,entry.value); + return { _handle: h }; + } + } + let entry = new PatchListenerEntry(instanceId, propertyUri); + this.patchListeners.push(entry); + entry.listeners.push({ handle: h, listener: onReceived }); + onReceived(instanceId, propertyUri, entry.value); + return {_handle: h}; + } + cancelMonitorPatchProperty(listenHandle: ListenHandle): void { + for (let i = 0; i < this.patchListeners.length; ++i) { + let entry = this.patchListeners[i]; + for (let j = 0; j < entry.listeners.length; ++j) { + if (entry.listeners[j].handle === listenHandle._handle) { + // found the listener, remove it + entry.listeners.splice(j, 1); + if (entry.listeners.length === 0) { + // no more listeners, remove the entry + this.patchListeners.splice(i, 1); + } + return; + } + } + } + } + getPatchProperty(instanceId: number, uri: string): Promise { + let promise = new Promise((resolve, reject) => { + window.setTimeout(() => { + for (let entry of this.patchListeners) { + if (entry.instanceId === instanceId && entry.propertyUri === uri) { + window.setTimeout(() => { + // simulate a delay for getting the property + entry.listeners.forEach(l => l.listener(instanceId, uri, entry.value)); + }, 100); + return resolve(entry.value); + } + } + reject(new Error(`Patch property not found: ${uri} for instance ${instanceId}`)); + },50); + }); + return promise; + } + setPatchProperty(instanceId: number, uri: string, value: any): Promise { + // Implementation here + for (let entry of this.patchListeners) { + if (entry.instanceId === instanceId && entry.propertyUri === uri) { + entry.value = value; + // notify all listeners + entry.listeners.forEach(l => l.listener(instanceId, uri, value)); + return Promise.resolve(true); + } + } + // if we reach here, the property was not found + return Promise.reject("Not found."); + } +}; + +function ModGuiTest() { + const [pluginUrl, setPluginUrl] = React.useState(""); + const [uiPlugin, setUiPlugin] = React.useState(null); + const [pluginDialogOpen, setPluginDialogOpen] = React.useState(false); + const [loading, setLoading] = React.useState(true); + const [valueHandler, setValueHandler] = React.useState(null); + + const [modGuiHostSite] = React.useState({ + monitorPort: (instanceId: number, symbol: string, interval: number, callback: (value: number) => void) => { + if (!valueHandler) { + throw new Error("ValueHandler is not set"); + } + return valueHandler.monitorPort(instanceId, symbol, interval, callback); + }, + unmonitorPort: (handle) => { + if (!valueHandler) { + throw new Error("ValueHandler is not set"); + } + valueHandler.unmonitorPort(handle); + }, + setPedalboardControl: (instanceId, symbol, value) => { + if (!valueHandler) { + throw new Error("ValueHandler is not set"); + } + valueHandler.setValue(instanceId, symbol, value); + }, + monitorPatchProperty(instanceId: number, propertyUri: string, onReceived: PatchPropertyListener): ListenHandle { + if (!valueHandler) { + throw new Error("ValueHandler is not set"); + } + + return valueHandler.monitorPatchProperty(instanceId, propertyUri, onReceived); + }, + cancelMonitorPatchProperty: (listenHandle) => { + if (!valueHandler) { + throw new Error("ValueHandler is not set"); + } + valueHandler.cancelMonitorPatchProperty(listenHandle); + }, + getPatchProperty: async (instanceId, uri) => { + if (!valueHandler) { + throw new Error("ValueHandler is not set"); + } + return valueHandler.getPatchProperty(instanceId, uri) as Promise; + }, + setPatchProperty: async (instanceId, uri, value) => { + if (!valueHandler) { + throw new Error("ValueHandler is not set"); + } + return valueHandler.setPatchProperty(instanceId, uri, value) as Promise; + } + }); + + let model: PiPedalModel = PiPedalModelFactory.getInstance(); + + React.useEffect(() => { + + const onStateChange = (state: State) => { + if (state == State.Ready) { + setLoading(false); + } + }; + + model.state.addOnChangedHandler(onStateChange); + + return () => { + model.state.removeOnChangedHandler(onStateChange); + }; + }, []) + + const theme = useTheme(); + + return ( +
+ +
+ +
+ + +
+ ModGUI Test + + {pluginUrl ? pluginUrl : "No plugin loaded"} + + setPluginDialogOpen(true)} > + Load + +
+ + + + {uiPlugin && ( +
+ { + setPluginUrl(""); + setUiPlugin(null); + setValueHandler(null); + }} > + + { + setPluginUrl(""); + setUiPlugin(null); + }} + hostSite={modGuiHostSite} + /> + +
+ )} + {pluginDialogOpen && + { + setPluginUrl(url as string); + let uiPlugin = model.getUiPlugin(url); + setUiPlugin(uiPlugin); + if (uiPlugin) { + setValueHandler(new ValueHandler(-1, uiPlugin)); + } + setPluginDialogOpen(false); + }} + onCancel={() => setPluginDialogOpen(false)} + uri={pluginUrl} + modGuiOnly={true} + /> + } +
+ ); +} + +export default ModGuiTest; \ No newline at end of file diff --git a/vite/src/pipedal/OkDialog.tsx b/vite/src/pipedal/OkDialog.tsx new file mode 100644 index 0000000..cc0d4cc --- /dev/null +++ b/vite/src/pipedal/OkDialog.tsx @@ -0,0 +1,105 @@ +/* + * MIT License + * + * Copyright (c) 2022 Robin E. R. Davies + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React from 'react'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import IconButtonEx from './IconButtonEx'; +import Button from '@mui/material/Button'; +import Toolbar from '@mui/material/Toolbar'; +import Typography from '@mui/material/Typography'; +import DialogEx from './DialogEx'; +import DialogTitle from '@mui/material/DialogTitle'; +import DialogActions from '@mui/material/DialogActions'; +import DialogContent from '@mui/material/DialogContent'; + +import ReportGmailerrorredIcon from '@mui/icons-material/ReportGmailerrorred'; + +export interface OkDialogProps { + open: boolean, + title?: string, + text: string, + okButtonText?: string, + onClose: () => void +}; + +export interface OkDialogState { +}; + +export default class OkDialog extends React.Component { + + + constructor(props: OkDialogProps) { + super(props); + this.state = { + }; + } + + render() { + let props = this.props; + let { open, okButtonText, text, onClose } = props; + + const handleClose = () => { + onClose(); + }; + + const handleOk = () => { + onClose(); + } + return ( + + {props.title && ( + + + {this.props.onClose();}} aria-label="back" + > + + + + {props.title} + + + )} + + +
+ + {text} +
+
+ + + + +
+ ); + } +} \ No newline at end of file diff --git a/vite/src/pipedal/PiPedalModel.tsx b/vite/src/pipedal/PiPedalModel.tsx index c9c2e5a..70d26ce 100644 --- a/vite/src/pipedal/PiPedalModel.tsx +++ b/vite/src/pipedal/PiPedalModel.tsx @@ -416,6 +416,7 @@ export class PiPedalModel //implements PiPedalModel socketServerUrl: string = ""; varServerUrl: string = ""; + modResourcesUrl: string = ""; lv2Path: string = ""; webSocket?: PiPedalSocket; @@ -972,13 +973,17 @@ export class PiPedalModel //implements PiPedalModel // anything could have changed while we were disconnected. await this.loadServerState(); } - makeSocketServerUrl(hostName: string, port: number): string { + private makeSocketServerUrl(hostName: string, port: number): string { return "ws://" + hostName + ":" + port + "/pipedal"; } - makeVarServerUrl(protocol: string, hostName: string, port: number): string { + private makeVarServerUrl(protocol: string, hostName: string, port: number): string { return protocol + "://" + hostName + ":" + port + "/var/"; + } + private makeModResourceUrl(protocol: string, hostName: string, port: number): string { + return protocol + "://" + hostName + ":" + port + "/resources/"; + } async getNextAudioFile(filePath: string): Promise { @@ -1053,6 +1058,7 @@ export class PiPedalModel //implements PiPedalModel if (!socket_server_port) socket_server_port = 8080; let socket_server = this.makeSocketServerUrl(socket_server_address, socket_server_port); let var_server_url = this.makeVarServerUrl("http", socket_server_address, socket_server_port); + this.modResourcesUrl = this.makeModResourceUrl("http", socket_server_address, socket_server_port); this.socketServerUrl = socket_server; this.varServerUrl = var_server_url; diff --git a/vite/src/pipedal/PluginControlView.tsx b/vite/src/pipedal/PluginControlView.tsx index 0a73410..6c3c097 100644 --- a/vite/src/pipedal/PluginControlView.tsx +++ b/vite/src/pipedal/PluginControlView.tsx @@ -23,6 +23,8 @@ import WithStyles, { withTheme } from './WithStyles'; import { createStyles } from './WithStyles'; import { css } from '@emotion/react'; +import ModGuiHost, { IModGuiHostSite } from './ModGuiHost'; + import { withStyles } from "tss-react/mui"; import { PiPedalModel, PiPedalModelFactory } from './PiPedalModel'; import { UiPlugin, UiControl, UiFileProperty, UiFrequencyPlot, ScalePoint } from './Lv2Plugin'; @@ -340,6 +342,8 @@ export interface PluginControlViewProps extends WithStyles { item: PedalboardItem; customization?: ControlViewCustomization; customizationId?: number; + showModGui: boolean; + onSetShowModGui: (instanceId: number, showModGui: boolean) => void; } type PluginControlViewState = { landscapeGrid: boolean; @@ -360,7 +364,6 @@ const PluginControlView = constructor(props: PluginControlViewProps) { super(props); this.model = PiPedalModelFactory.getInstance(); - this.state = { landscapeGrid: false, imeUiControl: undefined, @@ -376,6 +379,19 @@ const PluginControlView = this.onControlValueChanged = this.onControlValueChanged.bind(this); this.onPreviewChange = this.onPreviewChange.bind(this); } + // unmonitorPort: (handle: MonitorPortHandle) => void; + // onValueChanged: (instanceId: number, symbol: string, value: number) => void; + + // monitorPatchProperty( + // instanceId: number, + // propertyUri: string, + // onReceived: PatchPropertyListener + // ): ListenHandle; + + // cancelMonitorPatchProperty(listenHandle: ListenHandle): void; + + // getPatchProperty(instanceId: number, uri: string): Promise; + // setPatchProperty(instanceId: number, uri: string, value: any): Promise onPreviewChange(key: string, value: number): void { @@ -758,19 +774,45 @@ const PluginControlView = } return false; } + makeHostSite(): IModGuiHostSite { + // Yuck. :-( This worked out badly. + let model = this.model; + return { + monitorPort: this.model.monitorPort.bind(model), + unmonitorPort: this.model.unmonitorPort.bind(model), + setPedalboardControl: this.model.setPedalboardControl.bind(model), + monitorPatchProperty: this.model.monitorPatchProperty.bind(model), + cancelMonitorPatchProperty: this.model.cancelMonitorPatchProperty.bind(model), + getPatchProperty: this.model.getPatchProperty.bind(model), + setPatchProperty: this.model.setPatchProperty.bind(model), + }; + } - render(): ReactNode { - this.controlKeyIndex = 0; - const classes = withStyles.getClasses(this.props); - let pedalboardItem: PedalboardItem; - let pedalboard = this.model.pedalboard.get(); - if (this.props.instanceId === Pedalboard.START_CONTROL) { - pedalboardItem = pedalboard.makeStartItem(); - } else if (this.props.instanceId === Pedalboard.END_CONTROL) { - pedalboardItem = pedalboard.makeEndItem(); - } else { - pedalboardItem = pedalboard.getItem(this.props.instanceId); + renderModGui(): ReactNode { + let uiPlugin = this.model.getUiPlugin(this.props.item.uri); + if (!uiPlugin) { + return (
); } + return ( + { + if (this.props.onSetShowModGui) { + this.props.onSetShowModGui(this.props.instanceId, false); + } + }} + hostSite={this.makeHostSite()} + /> + ) + } + + renderPiPedalControl(pedalboardItem?: PedalboardItem): ReactNode { + this.controlKeyIndex = 0; + + + const classes = withStyles.getClasses(this.props); + let pedalboard = this.model.pedalboard.get(); if (!pedalboardItem) return (
); @@ -792,19 +834,13 @@ const PluginControlView = controlValues = this.filterNotOnGui(controlValues, plugin); - - let gridClass = this.state.landscapeGrid ? classes.landscapeGrid : classes.normalGrid; let scrollClass = this.state.landscapeGrid ? classes.frameScrollLandscape : classes.frameScrollPortrait; - let vuMeterRClass = this.state.landscapeGrid ? classes.vuMeterRLandscape : classes.vuMeterR; - let controlNodes: ControlNodes; - let frameClass = classes.frame; - if (this.fullScreen()) { gridClass = classes.noScrollGrid; scrollClass = classes.frameScrollNone; - frameClass = classes.noScrollFrame; } + let controlNodes: ControlNodes; controlNodes = this.getStandardControlNodes(plugin, controlValues); @@ -822,16 +858,7 @@ const PluginControlView = if (pedalboardItem.midiChannelBinding) { nodes.push(this.midiBindingControl(pedalboardItem)); } - - return ( -
-
- -
-
- -
{ @@ -848,6 +875,44 @@ const PluginControlView = }
+ ); + + + } + render(): ReactNode { + const classes = withStyles.getClasses(this.props); + let pedalboard = this.model.pedalboard.get(); + + let pedalboardItem: PedalboardItem; + if (this.props.instanceId === Pedalboard.START_CONTROL) { + pedalboardItem = pedalboard.makeStartItem(); + } else if (this.props.instanceId === Pedalboard.END_CONTROL) { + pedalboardItem = pedalboard.makeEndItem(); + } else { + pedalboardItem = pedalboard.getItem(this.props.instanceId); + } + + let vuMeterRClass = this.state.landscapeGrid ? classes.vuMeterRLandscape : classes.vuMeterR; + let frameClass = classes.frame; + + if (this.fullScreen()) { + frameClass = classes.noScrollFrame; + } + + + return ( +
+
+ +
+
+ +
+ { + this.props.showModGui && this.renderModGui() + || this.renderPiPedalControl(pedalboardItem) + } + {this.state.showFileDialog && ( )} - + {/* xxx: I don't think we need this anyore. */} this.onImeValueChange(key, value)} diff --git a/vite/src/pipedal/ScratchClass.tsx b/vite/src/pipedal/ScratchClass.tsx new file mode 100644 index 0000000..c6655f8 --- /dev/null +++ b/vite/src/pipedal/ScratchClass.tsx @@ -0,0 +1,91 @@ +// Copyright (c) 2022 Robin Davies +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import ResizeResponsiveComponent from './ResizeResponsiveComponent'; +import { Theme } from '@mui/material/styles'; +import WithStyles from './WithStyles'; +import { withStyles } from "tss-react/mui"; +import {createStyles} from './WithStyles'; + +import { PiPedalModel, PiPedalModelFactory } from './PiPedalModel'; + +const styles = (theme: Theme) => createStyles({ + pgraph: { + paddingBottom: 16 + } +}); + + +export interface ScratchClassProps extends WithStyles { +} + +export interface ScratchClassState { + screenWidth: number, + screenHeight: number +} + + + +const ScratchClass = withStyles( + class extends ResizeResponsiveComponent { + private model: PiPedalModel; + constructor(props: ScratchClassProps) { + super(props); + + this.model = PiPedalModelFactory.getInstance(); + void this.model; // suppress unused variable warning + + this.state = { + screenWidth: this.windowSize.width, + screenHeight: this.windowSize.height + }; + } + mounted: boolean = false; + + + + onWindowSizeChanged(width: number, height: number): void { + this.setState({ screenWidth: width, screenHeight: height }); + } + + + componentDidMount() { + super.componentDidMount(); + this.mounted = true; + } + componentWillUnmount() { + this.mounted = false; + super.componentWillUnmount(); + } + + + componentDidUpdate(prevProps: ScratchClassProps) { + } + + + + render() { + const classes = withStyles.getClasses(this.props); + void classes; // suppress unused variable warning + return (
); + } + }, + styles); + +export default ScratchClass; \ No newline at end of file diff --git a/vite/src/pipedal/svg/mod_ui.svg b/vite/src/pipedal/svg/mod_ui.svg new file mode 100644 index 0000000..89f032a --- /dev/null +++ b/vite/src/pipedal/svg/mod_ui.svg @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/vite/src/pipedal/svg/pp_ui.svg b/vite/src/pipedal/svg/pp_ui.svg new file mode 100644 index 0000000..16bd714 --- /dev/null +++ b/vite/src/pipedal/svg/pp_ui.svg @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/vite/vite.config.ts b/vite/vite.config.ts index 8a12749..62dcc1e 100644 --- a/vite/vite.config.ts +++ b/vite/vite.config.ts @@ -8,4 +8,12 @@ export default defineConfig({ chunkSizeWarningLimit: 2000 }, plugins: [react(),svgr()], + server: { + proxy: { + '/resources': { + target: 'http://localhost:8080', + changeOrigin: false, + }, + } +} }) From 890368352f0fc7412895275cddba3aa7b8aa291d Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Thu, 10 Jul 2025 11:37:02 -0400 Subject: [PATCH 02/18] MOD Gui support. --- PiPedalCommon/src/HtmlHelper.cpp | 245 +++++-- PiPedalCommon/src/include/HtmlHelper.hpp | 6 + PiPedalCommon/src/util.cpp | 4 + src/Lv2Effect.cpp | 57 +- src/Lv2Effect.hpp | 2 +- src/MapFeature.hpp | 3 + src/MapPathFeature.cpp | 44 ++ src/MapPathFeature.hpp | 13 +- src/ModFileTypes.hpp | 1 + src/ModGui.cpp | 2 +- src/Pedalboard.cpp | 13 + src/Pedalboard.hpp | 3 + src/PiPedalModel.cpp | 18 + src/PiPedalModel.hpp | 2 + src/PiPedalSocket.cpp | 30 + src/PiPedalUI.cpp | 8 + src/PiPedalUI.hpp | 7 + src/PluginHost.cpp | 94 ++- src/PluginHost.hpp | 5 +- src/StateInterface.cpp | 5 +- src/WebServerMod.cpp | 2 + todo.txt | 23 +- vite/public/css/modGui.css | 115 +++- vite/src/pipedal/AppThemed.tsx | 2 +- vite/src/pipedal/AutoZoom.tsx | 389 +++++++++++- vite/src/pipedal/FontTest.tsx | 4 - vite/src/pipedal/GxTunerView.tsx | 3 + vite/src/pipedal/JsonAtom.tsx | 196 ++++-- vite/src/pipedal/Lv2Plugin.tsx | 11 + vite/src/pipedal/MainPage.tsx | 78 ++- vite/src/pipedal/ModGuiHost.tsx | 599 +++++++++++++----- vite/src/pipedal/ModGuiTest.tsx | 346 ---------- vite/src/pipedal/Pedalboard.tsx | 3 + vite/src/pipedal/PiPedalModel.tsx | 176 ++++- vite/src/pipedal/PluginControlView.tsx | 126 ++-- vite/src/pipedal/Rect.tsx | 8 +- vite/src/pipedal/ScratchClass.tsx | 2 +- vite/src/pipedal/ToobCabSimView.tsx | 3 + vite/src/pipedal/ToobInputStageView.tsx | 17 +- vite/src/pipedal/ToobMLView.tsx | 19 +- vite/src/pipedal/ToobPlayerControl.tsx | 8 +- vite/src/pipedal/ToobPlayerView.tsx | 9 +- vite/src/pipedal/ToobPowerStage2View.tsx | 2 + vite/src/pipedal/ToobSpectrumAnalyzerView.tsx | 23 +- vite/src/pipedal/ToobToneStackView.tsx | 51 +- 45 files changed, 1971 insertions(+), 806 deletions(-) delete mode 100644 vite/src/pipedal/ModGuiTest.tsx diff --git a/PiPedalCommon/src/HtmlHelper.cpp b/PiPedalCommon/src/HtmlHelper.cpp index 607c7aa..1b887dc 100644 --- a/PiPedalCommon/src/HtmlHelper.cpp +++ b/PiPedalCommon/src/HtmlHelper.cpp @@ -24,22 +24,20 @@ using namespace pipedal; - // non-localizable. RFC 7231 Date Format ; -static const char*INVARIANT_WEEK_DAYS[] = - { "Sun","Mon", "Tue", "Wed","Thu", "Fri","Sat"}; +static const char *INVARIANT_WEEK_DAYS[] = + {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; // non-localizable. RFC 7231 Date Format -static const char*INVARIANT_MONTHS[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep","Oct","Nov", "Dec"}; +static const char *INVARIANT_MONTHS[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; // non-localizable. RFC 7231 Date Format -static const char*FORMAT = "%s, %02d %s %04d %02d:%02d:%02d GMT"; +static const char *FORMAT = "%s, %02d %s %04d %02d:%02d:%02d GMT"; std::string HtmlHelper::timeToHttpDate() { return timeToHttpDate(time(nullptr)); } - std::string HtmlHelper::timeToHttpDate(std::filesystem::file_time_type time) { @@ -56,29 +54,30 @@ std::string HtmlHelper::timeToHttpDate(time_t time) struct tm gmTm; - if (gmtime_r(&time,&gmTm) == nullptr) + if (gmtime_r(&time, &gmTm) == nullptr) { return "Mon, 01 Jan 1970 00:00:00 GMT"; } char szBuffer[sizeof("Mon, 01 Jan 1970 00:00:00 GMT+")]; - snprintf(szBuffer,sizeof(szBuffer), FORMAT, - INVARIANT_WEEK_DAYS[gmTm.tm_wday], - gmTm.tm_mday, - INVARIANT_MONTHS[gmTm.tm_mon], - gmTm.tm_year+1900, - gmTm.tm_hour, - gmTm.tm_min, - gmTm.tm_sec); + snprintf(szBuffer, sizeof(szBuffer), FORMAT, + INVARIANT_WEEK_DAYS[gmTm.tm_wday], + gmTm.tm_mday, + INVARIANT_MONTHS[gmTm.tm_mon], + gmTm.tm_year + 1900, + gmTm.tm_hour, + gmTm.tm_min, + gmTm.tm_sec); return szBuffer; - } - static int hexN(char c) { - if (c >= '0' && c <= '9') return c-'0'; - if (c >= 'a' && c <= 'f') return 10+c-'a'; - if (c >= 'A' && c <= 'F') return 10+c-'A'; + if (c >= '0' && c <= '9') + return c - '0'; + if (c >= 'a' && c <= 'f') + return 10 + c - 'a'; + if (c >= 'A' && c <= 'F') + return 10 + c - 'A'; throw std::invalid_argument("Malformed URL."); } static char hexChar(char c1, char c2) @@ -86,15 +85,19 @@ static char hexChar(char c1, char c2) return (char)((hexN(c1) << 4) + hexN(c2)); } -class SafeCharacterMap { +class SafeCharacterMap +{ bool safeCharacter[256]; + public: - SafeCharacterMap() + SafeCharacterMap() { - for (int i = 0; i < 0x20; ++i) { + for (int i = 0; i < 0x20; ++i) + { safeCharacter[i] = false; } - for (int i = 0x20; i < 0x80; ++i) { + for (int i = 0x20; i < 0x80; ++i) + { safeCharacter[i] = true; } for (int i = 0x80; i < 256; ++i) @@ -102,27 +105,25 @@ public: safeCharacter[i] = false; } const char *unsafeCharacters = ":/+?=#%@ "; - for (const char*p = unsafeCharacters; *p != 0; ++p) + for (const char *p = unsafeCharacters; *p != 0; ++p) { safeCharacter[(uint8_t)*p] = false; } } - - bool isSafeCharacter(char c) { return safeCharacter[(uint8_t)c];} + bool isSafeCharacter(char c) { return safeCharacter[(uint8_t)c]; } } g_safeCharacterMap; - -std::string HtmlHelper::encode_url_segment(const char*pStart, const char*pEnd, bool isQuerySegment ) +std::string HtmlHelper::encode_url_segment(const char *pStart, const char *pEnd, bool isQuerySegment) { std::stringstream s; - encode_url_segment(s,pStart,pEnd,isQuerySegment); + encode_url_segment(s, pStart, pEnd, isQuerySegment); return s.str(); } static char hexChars[] = "0123456789ABCDEF"; -void HtmlHelper::encode_url_segment(std::ostream&os, const char*pStart, const char *pEnd, bool isQuerySegment) +void HtmlHelper::encode_url_segment(std::ostream &os, const char *pStart, const char *pEnd, bool isQuerySegment) { while (pStart != pEnd) { @@ -130,21 +131,21 @@ void HtmlHelper::encode_url_segment(std::ostream&os, const char*pStart, const ch if (g_safeCharacterMap.isSafeCharacter(c)) { os << c; - } else if (c == ' ' && isQuerySegment) + } + else if (c == ' ' && isQuerySegment) { os << '+'; os << c; - } else { + } + else + { os << '%' << hexChars[(c >> 4) & 0x0f] << hexChars[c & 0x0F]; } } } - - - -std::string HtmlHelper::decode_url_segment(const char*pStart, const char*pEnd, bool isQuery) +std::string HtmlHelper::decode_url_segment(const char *pStart, const char *pEnd, bool isQuery) { std::stringstream s; auto p = pStart; @@ -155,16 +156,23 @@ std::string HtmlHelper::decode_url_segment(const char*pStart, const char*pEnd, b if (c == '+') { s << ' '; - } else if (c != '%') + } + else if (c != '%') { s << c; - } else { - if (pStart+2 < pEnd) + } + else + { + if (pStart + 2 < pEnd) + { + char c1 = *p; + ++p; + char c2 = *p; + ++p; + s << hexChar(c1, c2); + } + else { - char c1 = *p; ++p; - char c2 = *p; ++p; - s << hexChar(c1,c2); - } else { throw std::invalid_argument("Malformed URL."); } } @@ -172,9 +180,9 @@ std::string HtmlHelper::decode_url_segment(const char*pStart, const char*pEnd, b return s.str(); } -std::string HtmlHelper::decode_url_segment(const char*text, bool isQuery) +std::string HtmlHelper::decode_url_segment(const char *text, bool isQuery) { - return decode_url_segment(text, text + strlen(text),isQuery); + return decode_url_segment(text, text + strlen(text), isQuery); } void HtmlHelper::utf32_to_utf8_stream(std::ostream &s, uint32_t uc) @@ -182,20 +190,27 @@ void HtmlHelper::utf32_to_utf8_stream(std::ostream &s, uint32_t uc) if (uc < 0x80u) { s << (char)uc; - } else if (uc < 0x800u) { + } + else if (uc < 0x800u) + { s << (char)(0xC0 + (uc >> 6)); s << (char)(0x80 + (uc & 0x3F)); - - } else if (uc < 0x10000u) { + } + else if (uc < 0x10000u) + { s << (char)(0xE0 + (uc >> 12)); s << (char)(0x80 + ((uc >> 6) & 0x3F)); s << (char)(0x80 + (uc & 0x3F)); - } else if (uc < 0x0110000) { + } + else if (uc < 0x0110000) + { s << (char)(0xF0 + (uc >> 18)); s << (char)(0x80 + ((uc >> 12) & 0x3F)); s << (char)(0x80 + ((uc >> 6) & 0x3F)); s << (char)(0x80 + (uc & 0x3F)); - } else { + } + else + { throw std::range_error("Illegal UTF-32 character."); } } @@ -205,20 +220,22 @@ const std::string ESPECIALS = "()<>@,;:\"/[]?.="; #define MAX_FILENAME_LENGTH 96 #define MAX_SEGMENT_LENGTH 74 // 75 per RFC2047.2. But leave space for a ';' to allow easier breaking of lines. -std::string HtmlHelper::Rfc5987EncodeFileName(const std::string&name) +std::string HtmlHelper::Rfc5987EncodeFileName(const std::string &name) { // Encode all characters. Let the browser handle safe-ifying the actual name, since that's os dependent. std::stringstream s; std::string prefix = "UTF-8''"; std::string postfix = ""; s << prefix; - for (char c: name) + for (char c : name) { uint8_t uc = (uint8_t)c; if (uc < 0x20 || uc >= 0x80 || ESPECIALS.find(c) != std::string::npos) { s << '%' << hexChars[uc >> 4] << hexChars[uc & 0x0F]; - } else { + } + else + { s << c; } } @@ -226,7 +243,6 @@ std::string HtmlHelper::Rfc5987EncodeFileName(const std::string&name) return s.str(); } - #define MAX_FILE_NAME_LENGHT 96 const std::string SF_SPECIALS = " <>@;:\"\'/[]?="; @@ -249,23 +265,126 @@ std::string HtmlHelper::SafeFileName(const std::string &name) return s.str(); } -std::string HtmlHelper::HtmlEncode(const std::string& text) +std::string HtmlHelper::HtmlEncode(const std::string &text) { std::stringstream os; - for (char c: text) + for (char c : text) { - switch(c) + switch (c) { - case '<': os << "<"; break; - case '>': os << ">"; break; - case '&': os << "&"; break; - default: os << c; break; - + case '<': + os << "<"; + break; + case '>': + os << ">"; + break; + case '&': + os << "&"; + break; + default: + os << c; + break; } } return os.str(); } +static const uint64_t crc64_table[256] = { + 0x0000000000000000ULL, 0x42F0E1EBA9EA3693ULL, 0x85E1C3D753D46D26ULL, 0xC711223CFA3E5BB5ULL, + 0x493366450E42ECDFULL, 0x0BC387AEA7A8DA4CULL, 0xCCD2A5925D9681F9ULL, 0x8E224479F47CB76AULL, + 0x9266CC8A1C85D9BEULL, 0xD0962D61B56FEF2DULL, 0x17870F5D4F51B498ULL, 0x5577EEB6E6BB820BULL, + 0xDB55AACF12C73561ULL, 0x99A54B24BB2D03F2ULL, 0x5EB4691841135847ULL, 0x1C4488F3E8F96ED4ULL, + 0x663D78FF90E185EFULL, 0x24CD9914390BB37CULL, 0xE3DCBB28C335E8C9ULL, 0xA12C5AC36ADFDE5AULL, + 0x2F0E1EBA9EA36930ULL, 0x6DFEFF5137495FA3ULL, 0xAAEFDD6DCD770416ULL, 0xE81F3C86649D3285ULL, + 0xF45BB4758C645C51ULL, 0xB6AB559E258E6AC2ULL, 0x71BA77A2DFB03177ULL, 0x334A9649765A07E4ULL, + 0xBD68D2308226B08EULL, 0xFF9833DB2BCC861DULL, 0x388911E7D1F2DDA8ULL, 0x7A79F00C7818EB3BULL, + 0xCC7AF1FF21C30BDEULL, 0x8E8A101488293D4DULL, 0x499B3228721766F8ULL, 0x0B6BD3C3DBFD506BULL, + 0x854997BA2F81E701ULL, 0xC7B97651866BD192ULL, 0x00A8546D7C558A27ULL, 0x4258B586D5BFBCB4ULL, + 0x5E1C3D753D46D260ULL, 0x1CECDC9E94ACE4F3ULL, 0xDBFDFEA26E92BF46ULL, 0x990D1F49C77889D5ULL, + 0x172F5B3033043EBFULL, 0x55DFBADB9AEE082CULL, 0x92CE98E760D05399ULL, 0xD03E790CC93A650AULL, + 0xAA478900B1228E31ULL, 0xE8B768EB18C8B8A2ULL, 0x2FA64AD7E2F6E317ULL, 0x6D56AB3C4B1CD584ULL, + 0xE374EF45BF6062EEULL, 0xA1840EAE168A547DULL, 0x66952C92ECB40FC8ULL, 0x2465CD79455E395BULL, + 0x3821458AADA7578FULL, 0x7AD1A461044D611CULL, 0xBDC0865DFE733AA9ULL, 0xFF3067B657990C3AULL, + 0x711223CFA3E5BB50ULL, 0x33E2C2240A0F8DC3ULL, 0xF4F3E018F031D676ULL, 0xB60301F359DBE0E5ULL, + 0xDA050215EA6C212FULL, 0x98F5E3FE438617BCULL, 0x5FE4C1C2B9B84C09ULL, 0x1D14202910527A9AULL, + 0x93366450E42ECDF0ULL, 0xD1C685BB4DC4FB63ULL, 0x16D7A787B7FAA0D6ULL, 0x5427466C1E109645ULL, + 0x4863CE9FF6E9F891ULL, 0x0A932F745F03CE02ULL, 0xCD820D48A53D95B7ULL, 0x8F72ECA30CD7A324ULL, + 0x0150A8DAF8AB144EULL, 0x43A04931514122DDULL, 0x84B16B0DAB7F7968ULL, 0xC6418AE602954FFBULL, + 0xBC387AEA7A8DA4C0ULL, 0xFEC89B01D3679253ULL, 0x39D9B93D2959C9E6ULL, 0x7B2958D680B3FF75ULL, + 0xF50B1CAF74CF481FULL, 0xB7FBFD44DD257E8CULL, 0x70EADF78271B2539ULL, 0x321A3E938EF113AAULL, + 0x2E5EB66066087D7EULL, 0x6CAE578BCFE24BEDULL, 0xABBF75B735DC1058ULL, 0xE94F945C9C3626CBULL, + 0x676DD025684A91A1ULL, 0x259D31CEC1A0A732ULL, 0xE28C13F23B9EFC87ULL, 0xA07CF2199274CA14ULL, + 0x167FF3EACBAF2AF1ULL, 0x548F120162451C62ULL, 0x939E303D987B47D7ULL, 0xD16ED1D631917144ULL, + 0x5F4C95AFC5EDC62EULL, 0x1DBC74446C07F0BDULL, 0xDAAD56789639AB08ULL, 0x985DB7933FD39D9BULL, + 0x84193F60D72AF34FULL, 0xC6E9DE8B7EC0C5DCULL, 0x01F8FCB784FE9E69ULL, 0x43081D5C2D14A8FAULL, + 0xCD2A5925D9681F90ULL, 0x8FDAB8CE70822903ULL, 0x48CB9AF28ABC72B6ULL, 0x0A3B7B1923564425ULL, + 0x70428B155B4EAF1EULL, 0x32B26AFEF2A4998DULL, 0xF5A348C2089AC238ULL, 0xB753A929A170F4ABULL, + 0x3971ED50550C43C1ULL, 0x7B810CBBFCE67552ULL, 0xBC902E8706D82EE7ULL, 0xFE60CF6CAF321874ULL, + 0xE224479F47CB76A0ULL, 0xA0D4A674EE214033ULL, 0x67C58448141F1B86ULL, 0x253565A3BDF52D15ULL, + 0xAB1721DA49899A7FULL, 0xE9E7C031E063ACECULL, 0x2EF6E20D1A5DF759ULL, 0x6C0603E6B3B7C1CAULL, + 0xF6FAE5C07D3274CDULL, 0xB40A042BD4D8425EULL, 0x731B26172EE619EBULL, 0x31EBC7FC870C2F78ULL, + 0xBFC9838573709812ULL, 0xFD39626EDA9AAE81ULL, 0x3A28405220A4F534ULL, 0x78D8A1B9894EC3A7ULL, + 0x649C294A61B7AD73ULL, 0x266CC8A1C85D9BE0ULL, 0xE17DEA9D3263C055ULL, 0xA38D0B769B89F6C6ULL, + 0x2DAF4F0F6FF541ACULL, 0x6F5FAEE4C61F773FULL, 0xA84E8CD83C212C8AULL, 0xEABE6D3395CB1A19ULL, + 0x90C79D3FEDD3F122ULL, 0xD2377CD44439C7B1ULL, 0x15265EE8BE079C04ULL, 0x57D6BF0317EDAA97ULL, + 0xD9F4FB7AE3911DFDULL, 0x9B041A914A7B2B6EULL, 0x5C1538ADB04570DBULL, 0x1EE5D94619AF4648ULL, + 0x02A151B5F156289CULL, 0x4051B05E58BC1E0FULL, 0x87409262A28245BAULL, 0xC5B073890B687329ULL, + 0x4B9237F0FF14C443ULL, 0x0962D61B56FEF2D0ULL, 0xCE73F427ACC0A965ULL, 0x8C8315CC052A9FF6ULL, + 0x3A80143F5CF17F13ULL, 0x7870F5D4F51B4980ULL, 0xBF61D7E80F251235ULL, 0xFD913603A6CF24A6ULL, + 0x73B3727A52B393CCULL, 0x31439391FB59A55FULL, 0xF652B1AD0167FEEAULL, 0xB4A25046A88DC879ULL, + 0xA8E6D8B54074A6ADULL, 0xEA16395EE99E903EULL, 0x2D071B6213A0CB8BULL, 0x6FF7FA89BA4AFD18ULL, + 0xE1D5BEF04E364A72ULL, 0xA3255F1BE7DC7CE1ULL, 0x64347D271DE22754ULL, 0x26C49CCCB40811C7ULL, + 0x5CBD6CC0CC10FAFCULL, 0x1E4D8D2B65FACC6FULL, 0xD95CAF179FC497DAULL, 0x9BAC4EFC362EA149ULL, + 0x158E0A85C2521623ULL, 0x577EEB6E6BB820B0ULL, 0x906FC95291867B05ULL, 0xD29F28B9386C4D96ULL, + 0xCEDBA04AD0952342ULL, 0x8C2B41A1797F15D1ULL, 0x4B3A639D83414E64ULL, 0x09CA82762AAB78F7ULL, + 0x87E8C60FDED7CF9DULL, 0xC51827E4773DF90EULL, 0x020905D88D03A2BBULL, 0x40F9E43324E99428ULL, + 0x2CFFE7D5975E55E2ULL, 0x6E0F063E3EB46371ULL, 0xA91E2402C48A38C4ULL, 0xEBEEC5E96D600E57ULL, + 0x65CC8190991CB93DULL, 0x273C607B30F68FAEULL, 0xE02D4247CAC8D41BULL, 0xA2DDA3AC6322E288ULL, + 0xBE992B5F8BDB8C5CULL, 0xFC69CAB42231BACFULL, 0x3B78E888D80FE17AULL, 0x7988096371E5D7E9ULL, + 0xF7AA4D1A85996083ULL, 0xB55AACF12C735610ULL, 0x724B8ECDD64D0DA5ULL, 0x30BB6F267FA73B36ULL, + 0x4AC29F2A07BFD00DULL, 0x08327EC1AE55E69EULL, 0xCF235CFD546BBD2BULL, 0x8DD3BD16FD818BB8ULL, + 0x03F1F96F09FD3CD2ULL, 0x41011884A0170A41ULL, 0x86103AB85A2951F4ULL, 0xC4E0DB53F3C36767ULL, + 0xD8A453A01B3A09B3ULL, 0x9A54B24BB2D03F20ULL, 0x5D45907748EE6495ULL, 0x1FB5719CE1045206ULL, + 0x919735E51578E56CULL, 0xD367D40EBC92D3FFULL, 0x1476F63246AC884AULL, 0x568617D9EF46BED9ULL, + 0xE085162AB69D5E3CULL, 0xA275F7C11F7768AFULL, 0x6564D5FDE549331AULL, 0x279434164CA30589ULL, + 0xA9B6706FB8DFB2E3ULL, 0xEB46918411358470ULL, 0x2C57B3B8EB0BDFC5ULL, 0x6EA7525342E1E956ULL, + 0x72E3DAA0AA188782ULL, 0x30133B4B03F2B111ULL, 0xF7021977F9CCEAA4ULL, 0xB5F2F89C5026DC37ULL, + 0x3BD0BCE5A45A6B5DULL, 0x79205D0E0DB05DCEULL, 0xBE317F32F78E067BULL, 0xFCC19ED95E6430E8ULL, + 0x86B86ED5267CDBD3ULL, 0xC4488F3E8F96ED40ULL, 0x0359AD0275A8B6F5ULL, 0x41A94CE9DC428066ULL, + 0xCF8B0890283E370CULL, 0x8D7BE97B81D4019FULL, 0x4A6ACB477BEA5A2AULL, 0x089A2AACD2006CB9ULL, + 0x14DEA25F3AF9026DULL, 0x562E43B4931334FEULL, 0x913F6188692D6F4BULL, 0xD3CF8063C0C759D8ULL, + 0x5DEDC41A34BBEEB2ULL, 0x1F1D25F19D51D821ULL, 0xD80C07CD676F8394ULL, 0x9AFCE626CE85B507ULL}; + +uint64_t HtmlHelper::crc64(uint8_t *data, size_t length, uint64_t crc) +{ + + crc = crc ^ uint64_t(-1); + for (size_t i = 0; i < length; ++i) + { + uint8_t c = data[i]; + crc = crc64_table[(crc ^ (uint8_t)c) & 0xFF] ^ (crc >> 8); + } + return crc ^ uint64_t(-1); +} +uint64_t HtmlHelper::crc64(const std::string&value, uint64_t crc) +{ + crc = crc ^ uint64_t(-1); + for (auto c: value) + { + crc = crc64_table[(crc ^ (uint8_t)c) & 0xFF] ^ (crc >> 8); + } + return crc ^ uint64_t(-1); +} + + +std::string HtmlHelper::generateEtag(const std::filesystem::path &path) +{ + uint64_t crc = 0; + crc = crc64(path.string()); + auto fTime = std::filesystem::last_write_time(path); + crc = crc64((uint8_t*)&fTime, sizeof(fTime)); + return std::to_string(crc); +} diff --git a/PiPedalCommon/src/include/HtmlHelper.hpp b/PiPedalCommon/src/include/HtmlHelper.hpp index fc0d5cb..0af60f2 100644 --- a/PiPedalCommon/src/include/HtmlHelper.hpp +++ b/PiPedalCommon/src/include/HtmlHelper.hpp @@ -29,6 +29,7 @@ namespace pipedal { class HtmlHelper { public: + static std::string timeToHttpDate(); static std::string timeToHttpDate(time_t time); static std::string timeToHttpDate(std::filesystem::file_time_type time); @@ -57,6 +58,11 @@ public: static std::string SafeFileName(const std::string &name); static std::string HtmlEncode(const std::string& text); + static uint64_t crc64(uint8_t *data, size_t length,uint64_t crc = 0); + static uint64_t crc64(const std::string&value, uint64_t crc = 0); + + static std::string generateEtag(const std::filesystem::path &path); + }; } // namespace. \ No newline at end of file diff --git a/PiPedalCommon/src/util.cpp b/PiPedalCommon/src/util.cpp index 828ccf5..52838ee 100644 --- a/PiPedalCommon/src/util.cpp +++ b/PiPedalCommon/src/util.cpp @@ -218,6 +218,10 @@ bool pipedal::IsSubdirectory(const std::filesystem::path &path, const std::files if ((*i) != (*iPath)) { + if (*i == "" && ++i == basePath.end()) // match xyz/ (trailing /) + { + break; + } return false; } ++iPath; diff --git a/src/Lv2Effect.cpp b/src/Lv2Effect.cpp index 6c0b47c..740a59f 100644 --- a/src/Lv2Effect.cpp +++ b/src/Lv2Effect.cpp @@ -100,7 +100,7 @@ Lv2Effect::Lv2Effect( lilv_node_free(uriNode); { AutoLilvNode bundleUri = lilv_plugin_get_bundle_uri(pPlugin); - char *bundleUriString = lilv_file_uri_parse(bundleUri.AsUri().c_str(), nullptr); + char* bundleUriString = lilv_file_uri_parse(bundleUri.AsUri().c_str(), nullptr); std::string storagePath = pHost_->GetPluginStoragePath(); @@ -108,7 +108,7 @@ Lv2Effect::Lv2Effect( pHost_->GetMapFeature().GetMap(), logFeature.GetLog(), bundleUriString, - storagePath); + storagePath); mapPathFeature.Prepare(&(pHost_->GetMapFeature())); mapPathFeature.SetPluginStoragePath(pHost_->GetPluginStoragePath()); @@ -117,11 +117,12 @@ Lv2Effect::Lv2Effect( const auto &fileProperties = info_->piPedalUI()->fileProperties(); for (const auto &fileProperty : fileProperties) { - if (!fileProperty->resourceDirectory().empty()) - { - mapPathFeature.AddResourceFileMapping({makeAbsolutePath(fileProperty->resourceDirectory(), bundleUriString), - makeAbsolutePath(fileProperty->directory(), pHost_->GetPluginStoragePath())}); - } + fs::path targetPath = fileProperty->directory() / std::filesystem::path(bundleUriString).parent_path().filename(); + mapPathFeature.AddResourceFileMapping({ + bundleUriString, + storagePath / targetPath, + fileProperty->fileTypes() + }); } } @@ -243,14 +244,41 @@ Lv2Effect::Lv2Effect( // now that we've loaded the preset, clear the uri, and save new state // Why? because lilv doesn't provide facilities for reading state. pedalboardItem.lv2State(this->stateInterface->Save()); + RestoreState(pedalboardItem); // reload it with OUR map/unmap handling. pedalboardItem.lilvPresetUri(""); } else { - RestoreState(pedalboardItem); + if (!RestoreState(pedalboardItem)) + { + if (info->hasDefaultState()) + { + // restore the default state. + try + { + // REsTORE from LV2_STATE__state default state. + AutoLilvNode pluginNode = lilv_new_uri(pWorld, info->uri().c_str()); + LilvState *pState = lilv_state_new_from_world(pWorld, pHost->GetMapFeature().GetMap(), pluginNode); + if (pState) + { + if (this->stateInterface) + { + this->stateInterface->RestoreState(pState); + } + lilv_state_free(pState); + } + pedalboardItem.lv2State(this->stateInterface->Save()); + RestoreState(pedalboardItem); // do it with OUR map/unmap file handling. + } + catch (const std::exception &e) + { + Lv2Log::warning(SS("Failed to restore default state for " << info->name() << ": " << e.what())); + } + } + } } } -void Lv2Effect::RestoreState(PedalboardItem &pedalboardItem) +bool Lv2Effect::RestoreState(PedalboardItem &pedalboardItem) { // Restore state if present. if (this->stateInterface) @@ -260,20 +288,18 @@ void Lv2Effect::RestoreState(PedalboardItem &pedalboardItem) if (pedalboardItem.lv2State().isValid_) { this->stateInterface->Restore(pedalboardItem.lv2State()); + return true; } - else - { - // set the state to default state. - auto savedState = this->stateInterface->Save(); - pedalboardItem.lv2State(savedState); - } + return false; } catch (const std::exception &e) { std::string name = pedalboardItem.pluginName(); Lv2Log::warning(SS(name << ": " << e.what())); + return false; } } + return true; } void Lv2Effect::ConnectControlPorts() @@ -1116,4 +1142,3 @@ void Lv2Effect::SetPathPatchProperty(const std::string &propertyUri, const std:: { mainThreadPathProperties[propertyUri] = jsonAtom; } - diff --git a/src/Lv2Effect.hpp b/src/Lv2Effect.hpp index 6fe1117..0dd80e3 100644 --- a/src/Lv2Effect.hpp +++ b/src/Lv2Effect.hpp @@ -61,7 +61,7 @@ namespace pipedal FileBrowserFilesFeature fileBrowserFilesFeature; std::unique_ptr stateInterface; - void RestoreState(PedalboardItem&pedalboardItem); + bool RestoreState(PedalboardItem&pedalboardItem); LogFeature logFeature; std::map patchPropertyPrototypes; diff --git a/src/MapFeature.hpp b/src/MapFeature.hpp index 7c9c38b..1481e8e 100644 --- a/src/MapFeature.hpp +++ b/src/MapFeature.hpp @@ -65,5 +65,8 @@ namespace pipedal { const LV2_URID_Map *GetMap() const { return ↦} LV2_URID_Map *GetMap() { return ↦} + const LV2_URID_Unmap *GetUnmap() const { return &unmap;} + LV2_URID_Unmap *GetUnmap() { return &unmap;} + }; } diff --git a/src/MapPathFeature.cpp b/src/MapPathFeature.cpp index aedd4e7..ca56020 100644 --- a/src/MapPathFeature.cpp +++ b/src/MapPathFeature.cpp @@ -22,9 +22,12 @@ #include #include "json.hpp" #include +#include "PluginHost.hpp" +#include "util.hpp" using namespace pipedal; +namespace fs = std::filesystem; MapPathFeature::MapPathFeature() { @@ -69,6 +72,27 @@ void MapPathFeature::FnFreePath(LV2_State_Free_Path_Handle handle, char* path) return ((MapPathFeature *)handle)->AbsolutePath(abstract_path); } +static std::string CreateMappathLink(const fs::path&sourceFile, const fs::path &resourceDirectory, const fs::path &targetDirectory) +{ + try { + fs::path targetFile = targetDirectory / sourceFile.filename(); + if (fs::exists(targetFile)) { + return targetFile; + } + fs::create_directories(targetDirectory); + fs::create_symlink(sourceFile,targetFile); + return targetFile; + }catch (const std::exception &e) { + Lv2Log::error(SS("Failed to convert resource file to media file. " + << sourceFile + << " -> " + << targetDirectory + << " (" << e.what() << ")" + )); + return sourceFile; + } +} + char *MapPathFeature::AbsolutePath(const char *abstract_path) { if (strlen(abstract_path) == 0) @@ -76,7 +100,27 @@ char *MapPathFeature::AbsolutePath(const char *abstract_path) return strdup(""); } std::filesystem::path t (abstract_path); + std::string extension = t.extension(); if (t.is_absolute()) { + + // Handle bundle files, mapping them to the storage path for this plugin. + for (const auto&mapping: this->resourceFileMappings) + { + if (IsSubdirectory(t,mapping.resourcePath)) + { + bool allowed = false; + for (const auto&fileType: mapping.fileTypes) { + if (fileType.IsValidExtension(extension)) { + allowed = true; + break; + } + } + if (allowed) { + std::string result = CreateMappathLink(t,mapping.resourcePath, mapping.storagePath); + return strdup(result.c_str()); + } + } + } return strdup(abstract_path); } std::filesystem::path result = storagePath / t; diff --git a/src/MapPathFeature.hpp b/src/MapPathFeature.hpp index 655c42f..bd8062d 100644 --- a/src/MapPathFeature.hpp +++ b/src/MapPathFeature.hpp @@ -21,17 +21,24 @@ #include "lv2/state/state.h" #include #include "MapFeature.hpp" +#include +#include +#include +#include "PiPedalUI.hpp" namespace pipedal { + class Lv2PluginInfo; struct ResourceFileMapping { - std::string resourcePath; // absolute path of the resource directory. - std::string storagePath; // absolute path of where resource directory files get placed. + std::filesystem::path resourcePath; // absolute path of the resource directory. + std::filesystem::path storagePath; // absolute path of where resource directory files get placed. + std::vector fileTypes; }; class MapPathFeature { public: MapPathFeature(); + void Prepare(MapFeature* map); void SetPluginStoragePath(const std::string&path) { storagePath = path;} @@ -46,6 +53,8 @@ namespace pipedal const LV2_Feature*GetMakePathFeature() { return &makePathFeature;} const LV2_Feature*GetFreePathFeature() { return &freePathFeature;} private: + + std::shared_ptr pluginInfo; char *AbsolutePath(const char *abstract_path); static char *FnAbsolutePath(LV2_State_Map_Path_Handle handle, const char *abstract_path); diff --git a/src/ModFileTypes.hpp b/src/ModFileTypes.hpp index e6065fd..70ad28a 100644 --- a/src/ModFileTypes.hpp +++ b/src/ModFileTypes.hpp @@ -57,6 +57,7 @@ namespace pipedal const std::vector fileTypesX; // mixture of .ext and mime types. Use fileExtensions instead. const std::set fileExtensions; + }; static const std::vector &ModDirectories(); diff --git a/src/ModGui.cpp b/src/ModGui.cpp index 1ed55ed..0ec6915 100644 --- a/src/ModGui.cpp +++ b/src/ModGui.cpp @@ -439,7 +439,7 @@ json_variant pipedal::MakeModGuiTemplateData( // Feed them no files; they will be added later. json_variant filesObj = json_variant::make_array(); json_variant fileObj = json_variant::make_object(); - fileObj["fileType"] = "{{filetype}}"; // magic tags that we will use to generate files at runtime. + fileObj["filetype"] = "{{filetype}}"; // magic tags that we will use to generate files at runtime. fileObj["fullname"] = "{{fullname}}"; fileObj["basename"] = "{{basename}}"; filesObj.as_array()->push_back(fileObj); diff --git a/src/Pedalboard.cpp b/src/Pedalboard.cpp index ce694ab..9296906 100644 --- a/src/Pedalboard.cpp +++ b/src/Pedalboard.cpp @@ -115,6 +115,18 @@ const ControlValue* PedalboardItem::GetControlValue(const std::string&symbol) co return nullptr; } +bool Pedalboard::SetItemUseModUi(int64_t pedalItemId, bool enabled) +{ + PedalboardItem*item = GetItem(pedalItemId); + if (!item) return false; + if (item->useModUi() != enabled) + { + item->useModUi(enabled); + return true; + } + return false; + +} bool Pedalboard::SetItemEnabled(int64_t pedalItemId, bool enabled) { PedalboardItem*item = GetItem(pedalItemId); @@ -513,6 +525,7 @@ JSON_MAP_BEGIN(PedalboardItem) JSON_MAP_REFERENCE(PedalboardItem,lilvPresetUri) JSON_MAP_REFERENCE(PedalboardItem,pathProperties) JSON_MAP_REFERENCE(PedalboardItem,title) + JSON_MAP_REFERENCE(PedalboardItem,useModUi) JSON_MAP_END() diff --git a/src/Pedalboard.hpp b/src/Pedalboard.hpp index 1dcf00b..8ef6fd9 100644 --- a/src/Pedalboard.hpp +++ b/src/Pedalboard.hpp @@ -99,6 +99,7 @@ public: std::string lilvPresetUri_; std::map pathProperties_; std::string title_; + bool useModUi_ = false; // non persistent state. PropertyMap patchProperties; @@ -128,6 +129,7 @@ public: GETTER_SETTER(stateUpdateCount) GETTER_SETTER_REF(lv2State) GETTER_SETTER_REF(title) + GETTER_SETTER(useModUi) Lv2PluginState&lv2State() { return lv2State_; } // non-const version. GETTER_SETTER_REF(lilvPresetUri) @@ -203,6 +205,7 @@ public: bool SetControlValue(int64_t pedalItemId, const std::string &symbol, float value); bool SetItemTitle(int64_t pedalItemId, const std::string &title); bool SetItemEnabled(int64_t pedalItemId, bool enabled); + bool SetItemUseModUi(int64_t pedalItemId, bool enabled); void SetCurrentSnapshotModified(bool modified); bool IsStructureIdentical(const Pedalboard &other) const; // caan we just send a snapshot-style uddate instead of reloading plugins? All settings are ignored. diff --git a/src/PiPedalModel.cpp b/src/PiPedalModel.cpp index d3b300a..fcc8eb5 100644 --- a/src/PiPedalModel.cpp +++ b/src/PiPedalModel.cpp @@ -617,6 +617,24 @@ void PiPedalModel::UpdateCurrentPedalboard(int64_t clientId, Pedalboard &pedalbo } } +void PiPedalModel::SetPedalboardItemUseModUi(int64_t clientId, int64_t instanceId, bool enabled) +{ + std::lock_guard guard{mutex}; + { + this->pedalboard.SetItemUseModUi(instanceId, enabled); + + // Notify clients. + std::vector t{subscribers.begin(), subscribers.end()}; + for (auto &subscriber : t) + { + subscriber->OnItemUseModUiChanged(clientId, instanceId, enabled); + } + this->SetPresetChanged(clientId, true); + + } +} + + void PiPedalModel::SetPedalboardItemEnable(int64_t clientId, int64_t pedalItemId, bool enabled) { std::lock_guard guard{mutex}; diff --git a/src/PiPedalModel.hpp b/src/PiPedalModel.hpp index 3218b63..0a54af1 100644 --- a/src/PiPedalModel.hpp +++ b/src/PiPedalModel.hpp @@ -59,6 +59,7 @@ namespace pipedal virtual int64_t GetClientId() = 0; virtual void OnItemEnabledChanged(int64_t clientId, int64_t pedalItemId, bool enabled) = 0; + virtual void OnItemUseModUiChanged(int64_t clientId, int64_t pedalItemId, bool enabled) = 0; virtual void OnControlChanged(int64_t clientId, int64_t pedalItemId, const std::string &symbol, float value) = 0; virtual void OnInputVolumeChanged(float value) = 0; virtual void OnOutputVolumeChanged(float value) = 0; @@ -348,6 +349,7 @@ namespace pipedal void RemoveNotificationSubsription(std::shared_ptr pSubscriber); void SetPedalboardItemEnable(int64_t clientId, int64_t instanceId, bool enabled); + void SetPedalboardItemUseModUi(int64_t clientId, int64_t instanceId, bool enabled); void SetControl(int64_t clientId, int64_t pedalItemId, const std::string &symbol, float value); void PreviewControl(int64_t clientId, int64_t pedalItemId, const std::string &symbol, float value); diff --git a/src/PiPedalSocket.cpp b/src/PiPedalSocket.cpp index 32c5ea2..f54c14f 100644 --- a/src/PiPedalSocket.cpp +++ b/src/PiPedalSocket.cpp @@ -428,6 +428,22 @@ JSON_MAP_REFERENCE(PedalboardItemEnabledBody, instanceId) JSON_MAP_REFERENCE(PedalboardItemEnabledBody, enabled) JSON_MAP_END() +class PedalboardItemUseModGuiBody +{ +public: + int64_t clientId_ = -1; + int64_t instanceId_ = -1; + bool useModUi_ = true; + + DECLARE_JSON_MAP(PedalboardItemUseModGuiBody); +}; +JSON_MAP_BEGIN(PedalboardItemUseModGuiBody) +JSON_MAP_REFERENCE(PedalboardItemUseModGuiBody, clientId) +JSON_MAP_REFERENCE(PedalboardItemUseModGuiBody, instanceId) +JSON_MAP_REFERENCE(PedalboardItemUseModGuiBody, useModUi) +JSON_MAP_END() + + class UpdateCurrentPedalboardBody { public: @@ -1303,6 +1319,11 @@ public: pReader->read(&body); model.SetPedalboardItemEnable(body.clientId_, body.instanceId_, body.enabled_); } + else if (message == "setPedalboardItemUseModUi") { + PedalboardItemUseModGuiBody body; + pReader->read(&body); + model.SetPedalboardItemUseModUi(body.clientId_, body.instanceId_, body.useModUi_); + } else if (message == "updateCurrentPedalboard") { { @@ -2221,6 +2242,15 @@ private: body.enabled_ = enabled; Send("onItemEnabledChanged", body); } + virtual void OnItemUseModUiChanged(int64_t clientId, int64_t pedalItemId, bool enabled) + { + PedalboardItemEnabledBody body; + body.clientId_ = clientId; + body.instanceId_ = pedalItemId; + body.enabled_ = enabled; + Send("onUseItemModUiChanged", body); + } + }; std::atomic PiPedalSocketHandler::nextClientId = 0; diff --git a/src/PiPedalUI.cpp b/src/PiPedalUI.cpp index abe46f6..fd3215f 100644 --- a/src/PiPedalUI.cpp +++ b/src/PiPedalUI.cpp @@ -140,6 +140,7 @@ UiFileType::UiFileType(PluginHost *pHost, const LilvNode *node) + UiFileProperty::UiFileProperty(PluginHost *pHost, const LilvNode *node, const std::filesystem::path &resourcePath) { auto pWorld = pHost->getWorld(); @@ -455,6 +456,13 @@ bool UiFileType::IsValidExtension(const std::string&extension) const { return false; } +UiFileType::UiFileType(const std::string&label, const std::string &mimeType,const std::string &fileType) +: label_(label) +, mimeType_(mimeType) +, fileExtension_(fileType) +{ +} + UiFileType::UiFileType(const std::string&label, const std::string &fileType) : label_(label) , fileExtension_(fileType) diff --git a/src/PiPedalUI.hpp b/src/PiPedalUI.hpp index 9a2ef3f..53f274d 100644 --- a/src/PiPedalUI.hpp +++ b/src/PiPedalUI.hpp @@ -75,6 +75,7 @@ namespace pipedal { class PluginHost; + class ModFileTypes; class UiFileType { @@ -87,12 +88,16 @@ namespace pipedal UiFileType() {} UiFileType(PluginHost *pHost, const LilvNode *node); UiFileType(const std::string &label, const std::string &fileType); + UiFileType(const std::string &label, const std::string&mimeType, const std::string &fileType); static std::vector GetArray(PluginHost *pHost, const LilvNode *node, const LilvNode *uri); const std::string &label() const { return label_; } + void label(const std::string &value) { label_ = value; } const std::string &fileExtension() const { return fileExtension_; } + void fileExtension(const std::string &value) { fileExtension_ = value; } const std::string &mimeType() const { return mimeType_; } + void mimeType(const std::string &value) { mimeType_ = value; } bool IsValidExtension(const std::string &extension) const; public: @@ -160,6 +165,8 @@ namespace pipedal const std::vector &fileTypes() const { return fileTypes_; } std::vector &fileTypes() { return fileTypes_; } + void fileTypes(const std::vector &value) { fileTypes_ = value; } + void fileTypes(std::vector &&value) { fileTypes_ = std::move(value); } const std::string &patchProperty() const { return patchProperty_; } diff --git a/src/PluginHost.cpp b/src/PluginHost.cpp index 1f4d2a1..4b09185 100644 --- a/src/PluginHost.cpp +++ b/src/PluginHost.cpp @@ -647,6 +647,37 @@ bool Lv2PluginInfo::HasFactoryPresets(PluginHost *lv2Host, const LilvPlugin *plu return result; } +static std::vector ToPiPedalFileTypes( + const std::set &modFileTypes) +{ + std::vector result; + for (const auto &fileType : modFileTypes) + { + UiFileType uiFileType; + std::string type = fileType; + if (type.find("/") != std::string::npos) // mime type? + { + UiFileType t = UiFileType(type,type,""); + result.push_back(t); + } + else + { + // add a leading dot. + if (!type.starts_with(".")) { + type = "." + type; + } + auto t = UiFileType(SS(type << " file"), type); + result.push_back(t); + } + } + std::sort(result.begin(), result.end(), + [](const UiFileType &left, const UiFileType &right) + { + return left.label() < right.label(); + }); + return result; +} + Lv2PluginInfo::FindWritablePathPropertiesResult Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin *pPlugin) { @@ -710,6 +741,13 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin // "nam,nammodel" fileTypes = mod__fileTypes.AsString(); } + std::string modFileExtensions; + AutoLilvNode mod__extensionsNode = lilv_world_get(pWorld, propertyUri, lv2Host->lilvUris->mod__supportedExtensions, nullptr); + { + // "wav,flac,mp3" + modFileExtensions = mod__extensionsNode.AsString(); + } + std::string fileExtensions = modFileExtensions; ModFileTypes modFileTypes(fileTypes); // Legacy case: audio_uploads/ exists. @@ -734,6 +772,12 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin std::string modName = modFileTypes.rootDirectories()[0]; auto modDirectory = modFileTypes.GetModDirectory(modName); fileProperty->directory(modDirectory->pipedalPath); + std::set fileExtensions = modDirectory->fileExtensions; + if (!modFileExtensions.empty()) { + auto extensions = split(modFileExtensions, ','); + fileExtensions = std::set(extensions.begin(), extensions.end()); + } + fileProperty->fileTypes(ToPiPedalFileTypes(fileExtensions)); } } @@ -750,8 +794,11 @@ Lv2PluginInfo::FindWritablePathProperties(PluginHost *lv2Host, const LilvPlugin if (fileProperties.size() != 0) { - std::sort(fileProperties.begin(), fileProperties.end(), [](const UiFileProperty::ptr &left, const UiFileProperty::ptr &right) - { + std::sort( + fileProperties.begin(), + fileProperties.end(), + [](const UiFileProperty::ptr &left, const UiFileProperty::ptr &right) + { // properies with indexes first. int32_t indexL = left->index(); if (indexL < 0) @@ -888,7 +935,7 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP // a lv2:Parameter? if (lilv_world_ask(pWorld, propertyUri, lv2Host->lilvUris->isA, lv2Host->lilvUris->lv2core__Parameter)) { - Lv2PatchPropertyInfo propertyInfo{lv2Host, propertyUri}; + Lv2PatchPropertyInfo propertyInfo{lv2Host, propertyUri}; propertyInfo.writable(true); patchProperties_.push_back(std::move(propertyInfo)); } @@ -915,18 +962,33 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP break; } } - if (!found) + if (!found) { if (lilv_world_ask(pWorld, propertyUri, lv2Host->lilvUris->isA, lv2Host->lilvUris->lv2core__Parameter)) { - Lv2PatchPropertyInfo propertyInfo{lv2Host, propertyUri}; + Lv2PatchPropertyInfo propertyInfo{lv2Host, propertyUri}; propertyInfo.readable(true); patchProperties_.push_back(std::move(propertyInfo)); } } } } + // default state. + { + AutoLilvNodes stateNodes = lilv_plugin_get_value(pPlugin, lv2Host->lilvUris->state__state); + if (stateNodes) + { + auto stateNode = lilv_nodes_get_first(stateNodes); + LilvState *defaultState = lilv_state_new_from_world(pWorld, lv2Host->GetMapFeature().GetMap(), stateNode); + if (defaultState) + { + Lv2Log::debug("Plugin %s (%s) has default state.", this->name_.c_str(), this->uri_.c_str()); + this->hasDefaultState_ = true; + lilv_state_free(defaultState); + } + } + } } // Fetch pipedal plugin UI @@ -976,6 +1038,10 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP ++nOutputs; } } + if (nOutputs == 0 || nInputs == 0) + { + isValid = false; + } this->modGui_ = ModGui::Create(lv2Host, pPlugin); this->is_valid_ = isValid; } @@ -1776,7 +1842,7 @@ Lv2PatchPropertyInfo::Lv2PatchPropertyInfo(PluginHost *pluginHost, const LilvNod { LilvWorld *pWorld = pluginHost->getWorld(); this->uri_ = nodeAsString(propertyUri); - + AutoLilvNode range = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->rdfs__range, nullptr); if (range) { @@ -1791,7 +1857,9 @@ Lv2PatchPropertyInfo::Lv2PatchPropertyInfo(PluginHost *pluginHost, const LilvNod if (shortName) { this->shortName_ = shortName.AsString(); - } else { + } + else + { this->shortName_ = this->label_; } @@ -1799,14 +1867,16 @@ Lv2PatchPropertyInfo::Lv2PatchPropertyInfo(PluginHost *pluginHost, const LilvNod this->index_ = indexNode.AsInt(-1); AutoLilvNode modFileTypesNode = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->mod__fileTypes, nullptr); - if (modFileTypesNode) { + if (modFileTypesNode) + { std::string strFileTypes = modFileTypesNode.AsString(); - this->fileTypes_ = split(strFileTypes,','); + this->fileTypes_ = split(strFileTypes, ','); } AutoLilvNode modSupportedExtensionsNode = lilv_world_get(pWorld, propertyUri, pluginHost->lilvUris->mod__supportedExtensions, nullptr); - if (modSupportedExtensionsNode) { + if (modSupportedExtensionsNode) + { std::string strSupportedExtensions = modSupportedExtensionsNode.AsString(); - this->supportedExtensions_ = split(strSupportedExtensions,','); + this->supportedExtensions_ = split(strSupportedExtensions, ','); } } @@ -1908,6 +1978,8 @@ json_map::storage_type Lv2PluginInfo::jmap{{ json_map::reference("has_factory_presets", &Lv2PluginInfo::has_factory_presets_), json_map::reference("modGui", &Lv2PluginInfo::modGui_), json_map::reference("patchProperties", &Lv2PluginInfo::patchProperties_), + json_map::reference("hasDefaultState", &Lv2PluginInfo::hasDefaultState_), + }}; json_map::storage_type Lv2PluginClass::jmap{{ diff --git a/src/PluginHost.hpp b/src/PluginHost.hpp index 6e2b995..5b9c202 100644 --- a/src/PluginHost.hpp +++ b/src/PluginHost.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Robin Davies +// Copyright (c) 2025 Robin E. R. Davies // // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in @@ -417,6 +417,8 @@ namespace pipedal std::vector> ports_; std::vector> port_groups_; std::vector patchProperties_; + + bool hasDefaultState_; bool is_valid_ = false; PiPedalUI::ptr piPedalUI_; @@ -450,6 +452,7 @@ namespace pipedal LV2_PROPERTY_GETSET(hasUnsupportedPatchProperties) LV2_PROPERTY_GETSET(modGui) LV2_PROPERTY_GETSET(patchProperties) + LV2_PROPERTY_GETSET(hasDefaultState) const Lv2PortInfo &getPort(const std::string &symbol) { diff --git a/src/StateInterface.cpp b/src/StateInterface.cpp index 83fe213..a9abc54 100644 --- a/src/StateInterface.cpp +++ b/src/StateInterface.cpp @@ -23,6 +23,7 @@ #include "json.hpp" #include #include +#include "Lv2Log.hpp" using namespace pipedal; @@ -83,6 +84,7 @@ static void CheckState(LV2_State_Status status) case LV2_State_Status::LV2_STATE_SUCCESS: return; default: + case LV2_State_Status::LV2_STATE_ERR_UNKNOWN: lv2Error = "Unknown error."; break; case LV2_State_Status::LV2_STATE_ERR_BAD_TYPE: @@ -126,7 +128,8 @@ Lv2PluginState StateInterface::Save() } catch (const std::exception &e) { - throw std::logic_error(SS("State save failed. " << e.what())); + Lv2Log::debug(SS("State save failed. " << e.what())); + return Lv2PluginState(); // an invalid state. } return std::move(callState.state); diff --git a/src/WebServerMod.cpp b/src/WebServerMod.cpp index e557ac8..9400f0a 100644 --- a/src/WebServerMod.cpp +++ b/src/WebServerMod.cpp @@ -103,6 +103,8 @@ static void setCacheControl(HttpResponse &res, const fs::path &path) res.set("Cache-Control", "public, max-age=31536000"); // 1 month auto lastModified = std::filesystem::last_write_time(path); res.set(HttpField::LastModified, HtmlHelper::timeToHttpDate(lastModified)); + // Set ETag for cache validation + res.set("ETag", pipedal::HtmlHelper::generateEtag(path)); } else { diff --git a/todo.txt b/todo.txt index 7e60566..c217866 100644 --- a/todo.txt +++ b/todo.txt @@ -1,15 +1,34 @@ -check reload after change of LV2 plugins. +Magic zoom. + +request cacheing not working. + +MOD ir uses some scheme to limit the minimum buffer size, which is not implemented in Pipedal. + +MOD ir layout issues. + +MOD gui control should disable, not disappear. + +MOD ir font (cooper-hewitt) + +detect self-set control values to prevent weird jitter in mod ui levels. + +ZAMEq2 Low control not working. + + +Modgui view should be persistent/per-plugin Vu Meters, move rendering to background images, in order to reduce layout overhead. +check reload after change of LV2 plugins. + Remove FullScreenIME in PluginControlView.tsx Exactly one underrun per seek in Toob Player Test autohotspot detection. - +Ellipsis on plugin Title check filetime conversion in gcc 12.2! (missing c++ 20 time conversion functions) AudioFiles.cpp fileTimeToInt64 diff --git a/vite/public/css/modGui.css b/vite/public/css/modGui.css index 2684d65..44587c1 100644 --- a/vite/public/css/modGui.css +++ b/vite/public/css/modGui.css @@ -1,3 +1,44 @@ + +@font-face { + font-family: 'cooper hewitt'; + src: url('../fonts/cooper/cooperhewitt-light-webfont.woff2') format('woff2'); + font-weight: 300; + font-style: normal; + font-display: swap +} + +@font-face { + font-family: 'cooper hewitt'; + src: url('../fonts/cooper/cooperhewitt-lightitalic-webfont.woff2') format('woff2'); + font-weight: 300; + font-style: italic; + font-display: swap +} + +@font-face { + font-family: 'cooper hewitt'; + src: url('../fonts/cooper/cooperhewitt-bookitalic-webfont.woff2') format('woff2'); + font-weight: 400; + font-style: italic; + font-display: swap +} + +@font-face { + font-family: 'cooper hewitt'; + src: url('../fonts/cooper/cooperhewitt-book-webfont.woff2') format('woff2'); + font-weight: 400; + font-style: normal; + font-display: swap +} + +@font-face { + font-family: 'cooper hewitt'; + src: url('../fonts/cooper/cooperhewitt-semibold-webfont.woff2') format('woff2'); + font-weight: 600; + font-style: normal; + font-display: swap +} + .mod-pedal { } @@ -40,6 +81,11 @@ margin-bottom: 20px; } +.mod-pedal-settings .mod-control-group { + margin:0; + padding:0 18px; +} + .ppmod-dial-control-image { width: 48px; height: 48px; @@ -61,4 +107,71 @@ white-space: nowrap; overflow: hidden; } - \ No newline at end of file + + +.mod-pedal .mod-drag-handle { + bottom:0; + left:0; + right:0; + top:0; + cursor:default; /* we dont do drag */ + + position:absolute; + z-index: 0; +} + +.mod-pedal .mod-control-group { + z-index: 20; +} + +.mod-pedal .mod-pedal-input, +.mod-pedal .mod-pedal-output { + z-index:30; +} + + + + +/* mod clearfix hack */ +.mod-pedal .clearfix:before, +.mod-pedal .clearfix:after { + content: "."; + display: block; + height: 0; + overflow: hidden; +} +.mod-pedal.clearfix:after { clear: both; } + +/* enumeration list entries for embedded property browsers. */ + +.ppmod-dotdot-flex { + display: flex; + align-items: center; + flex-flow: row nowrap; +} + +.ppmod-dotdot-text { + white-space: nowrap; + flex: 1 0 auto; + font-size: 0.8em; + padding-right: 8px; +} + +.ppmod-dotdot-path { + white-space: nowrap; + font-size: 0.8em; + flex: 0 1 auto; + overflow: hidden; +} + +.ppmod-dotdot-breadcrumb_link { + display: inline; + white-space: nowrap; + text-decoration: underline +} + +.ppmod-dotdot-breadcrumb_current { + display: inline; + white-space: nowrap; +} + diff --git a/vite/src/pipedal/AppThemed.tsx b/vite/src/pipedal/AppThemed.tsx index bf2eddf..f7e1d1e 100644 --- a/vite/src/pipedal/AppThemed.tsx +++ b/vite/src/pipedal/AppThemed.tsx @@ -813,7 +813,7 @@ export {(!this.state.tinyToolBar) && !this.state.performanceView ? ( - + createStyles({ + pgraph: { + paddingBottom: 16 + } +}); + + +export interface AutoZoomProps extends WithStyles { + leftPad: number, + rightPad: number, + children?: React.ReactNode, + contentReady: boolean, + showZoomed: boolean, + setShowZoomed: (value: boolean) => void; +} + +export interface AutoZoomState { + screenWidth: number, + screenHeight: number, +} + + + +const AutoZoom = withStyles( + class extends ResizeResponsiveComponent { + private model: PiPedalModel; + constructor(props: AutoZoomProps) { + super(props); + + this.model = PiPedalModelFactory.getInstance(); + void this.model; // suppress unused variable warning + + this.state = { + screenWidth: this.windowSize.width, + screenHeight: this.windowSize.height, + }; + } + mounted: boolean = false; + + + + onWindowSizeChanged(width: number, height: number): void { + this.setState({ screenWidth: width, screenHeight: height }); + } + + + componentDidMount() { + super.componentDidMount(); + this.mounted = true; + if (this.normalRef) { + this.updateZoom(this.normalRef); + } + } + componentWillUnmount() { + this.mounted = false; + this.cancelZoomUpdate(); + this.cancelMaximizedZoomUpdate(); + super.componentWillUnmount(); + } + + + componentDidUpdate(prevProps: AutoZoomProps) { + if (prevProps.contentReady !== this.props.contentReady) { + if (this.normalRef) { + this.updateZoom(this.normalRef); + } + if (this.maximizedRef) { + this.updateMaximizedZoom(); + } + } + } + + resizeObserver: ResizeObserver | null = null; + + + calculateZoomedClientRect( + clientRect: Rect, + contentWidth: number, + contentHeight: number, + buttonPadding: number + ): Rect { + + let rightButtonZoom = Math.min((clientRect.width - buttonPadding) / contentWidth, clientRect.height / contentHeight); + let topButtonZoom = Math.min((clientRect.width - buttonPadding) / contentWidth, (clientRect.height - buttonPadding) / contentHeight); + + let effectiveClientRect = clientRect.copy(); + if (rightButtonZoom > topButtonZoom) { + effectiveClientRect.width -= buttonPadding; + } else { + effectiveClientRect.y += buttonPadding; + effectiveClientRect.height -= buttonPadding; + } + + let zoom = Math.min(effectiveClientRect.width / contentWidth, effectiveClientRect.height / contentHeight); + if (zoom > 1) { + zoom = 1; + } + let leftPad = (effectiveClientRect.width - contentWidth * zoom) / 2; + if (leftPad < 0) { + leftPad = 0; + } + let topPad = (effectiveClientRect.height - contentHeight * zoom) / 4; + if (topPad < 0) { + topPad = 0; + } + return new Rect(effectiveClientRect.x + leftPad, effectiveClientRect.y + topPad, contentWidth * zoom, contentHeight * zoom); + } + + updateZoom(ref: HTMLDivElement) { + if (!this.mounted || !ref) { + return; + } + let content = ref.firstElementChild as HTMLElement | null; + + if (content) { + const { leftPad, rightPad } = this.props; + let bounds = new Rect(leftPad, 0, ref.clientWidth - leftPad - rightPad, ref.clientHeight - 8); + let zoomedClientRect = this.calculateZoomedClientRect( + bounds, content.clientWidth, content.clientHeight, 48); + content.style.left = "0px"; + content.style.top = "0px"; + content.style.transformOrigin = "0 0"; // top-left corner + content.style.transform = + `translate(${zoomedClientRect.x}px, ${zoomedClientRect.y}px) scale(${zoomedClientRect.width / content.clientWidth}, ${zoomedClientRect.height / content.clientHeight})`; + + if (this.zoomButton) { + this.zoomButton.style.display = zoomedClientRect.width < content.clientWidth ? "block" : "none"; + let rightSizeSpace = ref.clientWidth - zoomedClientRect.right; + if (rightSizeSpace - rightPad >= 48) { + this.zoomButton.style.top = `${zoomedClientRect.y + 24}px`; + this.zoomButton.style.left = `${zoomedClientRect.right + 4}px`; + } else { + this.zoomButton.style.top = `${zoomedClientRect.y - 48}px`; + this.zoomButton.style.left = `${zoomedClientRect.right - 64 - 12}px`; + } + } + + // save the position of the Mod UI in page coordinates for later zooming. + this.zoomStartRect = zoomedClientRect.copy(); + let refBounds = ref.getBoundingClientRect(); + this.zoomStartRect.x += refBounds.left; + this.zoomStartRect.y += refBounds.top; + } + } + + updateMaximizedZoom() { + let ref = this.maximizedRef; + if (!this.mounted || !ref) { + return; + } + let content = ref.firstElementChild as HTMLElement | null; + + if (content) { + let leftPad = 16; let rightPad = 16; + let topPad = 16, bottomPad = 16; + let bounds: Rect; + bounds = new Rect(leftPad, topPad, ref.clientWidth - leftPad - rightPad, ref.clientHeight - topPad - bottomPad); + + let zoomedClientRect = this.calculateZoomedClientRect( + bounds, content.clientWidth, content.clientHeight, 48); + content.style.left = "0px"; + content.style.top = "0px"; + content.style.transformOrigin = "0 0"; // top-left corner + content.style.transform = `translate(${zoomedClientRect.x}px, ${zoomedClientRect.y}px) scale(${zoomedClientRect.width / content.clientWidth}, ${zoomedClientRect.height / content.clientHeight})`; + //console.log("Zoomed to: ", zoomedClientRect.toString()); + + } + } + + + private animateFrameHandle: number | null = null; + cancelZoomUpdate() { + if (this.animateFrameHandle) { + window.cancelAnimationFrame(this.animateFrameHandle); + this.animateFrameHandle = null; + } + } + requestZoomUpdate() { + if (this.animateFrameHandle) { + return; // already scheduled + } + this.animateFrameHandle = window.requestAnimationFrame(() => { + this.animateFrameHandle = null; + if (this.normalRef) { + this.updateZoom(this.normalRef); + } + }); + } + private maximizedAnimateFrameHandle: number | null = null; + + cancelMaximizedZoomUpdate() { + if (this.maximizedAnimateFrameHandle) { + window.cancelAnimationFrame(this.maximizedAnimateFrameHandle); + this.maximizedAnimateFrameHandle = null; + } + } + requestMaximizedZoomUpdate() { + if (this.maximizedAnimateFrameHandle) { + return; // already scheduled + } + this.maximizedAnimateFrameHandle = window.requestAnimationFrame(() => { + this.maximizedAnimateFrameHandle = null; + if (this.maximizedRef) { + this.updateMaximizedZoom(); + } + }); + } + + + private zoomButton: HTMLElement | null = null; + private normalRef: HTMLDivElement | null = null; + + setNormalRef(ref: HTMLDivElement | null) { + this.normalRef = ref; + if (ref) { + this.zoomButton = ref.querySelector("#maximize-button") as HTMLDivElement | null; + this.resizeObserver = new ResizeObserver(() => { + this.requestZoomUpdate(); + }); + this.resizeObserver.observe(ref); + let child = ref.firstElementChild as HTMLElement | null; + if (child) { + this.resizeObserver.observe(child); + } + this.requestZoomUpdate(); + } else { + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + this.resizeObserver = null; + this.zoomButton = null; + } + this.zoomStartRect = null; + } + } + + + private maximizedRef: HTMLDivElement | null = null; + private maximedResizeObserver: ResizeObserver | null = null; + + setMaximizedRef(ref: HTMLDivElement | null) { + this.maximizedRef = ref; + if (ref) { + this.maximedResizeObserver = new ResizeObserver(() => { + this.requestMaximizedZoomUpdate(); + }); + this.maximedResizeObserver.observe(ref); + let child = ref.firstElementChild as HTMLElement | null; + if (child) { + this.maximedResizeObserver.observe(child); + } + this.requestMaximizedZoomUpdate(); + } else { + if (this.maximedResizeObserver) { + this.maximedResizeObserver.disconnect(); + this.maximedResizeObserver = null; + } + } + } + + private zoomStartRect: Rect | null = null; + + startZoom() { + if (!this.zoomStartRect) { + return; + } + this.props.setShowZoomed(true); + } + + render() { + const classes = withStyles.getClasses(this.props); + void classes; // suppress unused variable warning + return (
{ this.setNormalRef(ref); }}> +
+ {!this.props.showZoomed && this.props.children} +
+
+ { + this.startZoom(); + }} + > + + +
+ {this.props.showZoomed && ( + ({ + zIndex: this.props.showZoomed ? 1101 : -1, + overflow: "clip", + background: theme.palette.mode === 'dark' ? 'rgba(0, 0, 0, 0.9)' : 'rgba(255, 255, 255, 0.9)' + })} + open={this.props.showZoomed} + > +
{ this.setMaximizedRef(ref); }} + style={{ + position: "absolute", left: 0, top: 0, right: 0, bottom: 0, overflow: "hidden", + visibility: this.props.contentReady ? "visible" : "hidden" + }}> + +
+ { + this.props.showZoomed && this.props.children + } +
+ + { + e.stopPropagation(); + this.props.setShowZoomed(false); + }} + > + + +
+
+ )} +
); + } + }, + styles); + +export default AutoZoom; \ No newline at end of file diff --git a/vite/src/pipedal/FontTest.tsx b/vite/src/pipedal/FontTest.tsx index 0356b14..007ddc8 100644 --- a/vite/src/pipedal/FontTest.tsx +++ b/vite/src/pipedal/FontTest.tsx @@ -63,10 +63,6 @@ function FontTest() { {TypeSample({ fontFamily: "Pirulen", cssRef: "/fonts/pirulen/stylesheet.css", fontWeights: [400] })} {TypeSample({ fontFamily: "Questrial", cssRef: "/fonts/questrial/stylesheet.css", fontWeights: [400] })} - {TypeSample({ fontFamily: "Pirulen", cssRef: "/fonts/pirulen/stylesheet.css", fontWeights: [400] })} - {TypeSample({ fontFamily: "Pirulen", cssRef: "/fonts/pirulen/stylesheet.css", fontWeights: [400] })} - {TypeSample({ fontFamily: "Pirulen", cssRef: "/fonts/pirulen/stylesheet.css", fontWeights: [400] })} -
); diff --git a/vite/src/pipedal/GxTunerView.tsx b/vite/src/pipedal/GxTunerView.tsx index 302860a..2a512e4 100644 --- a/vite/src/pipedal/GxTunerView.tsx +++ b/vite/src/pipedal/GxTunerView.tsx @@ -110,6 +110,9 @@ const GxTunerView = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui= {(instanceId: number, showModGui: boolean) => {}} + />); } }, diff --git a/vite/src/pipedal/JsonAtom.tsx b/vite/src/pipedal/JsonAtom.tsx index 18fd260..330e97f 100644 --- a/vite/src/pipedal/JsonAtom.tsx +++ b/vite/src/pipedal/JsonAtom.tsx @@ -20,118 +20,214 @@ // Utility class for constructing Json atoms. class JsonAtom { - static Property(value: string): any + + static _Bool(value: boolean): any { - return { - "otype_": "Property", - "value": value - }; - } - static Bool(value: boolean): any - { - return { + return new JsonAtom({ "otype_": "Bool", "value": value - }; + }); } - static Int(value: number): any + isBool(): boolean { - return { + return this.isObject() && this.json.otype_ === "Bool"; + } + asBool(): boolean { + if (this.isBool()) { + return this.json.value as boolean; + } + throw new Error("JsonAtom is not a Bool"); + } + static _Int(value: number): JsonAtom + { + return new JsonAtom({ "otype_": "Int", "value": value - }; + }); } - static Long(value: number): any + isInt(): boolean { - return { + return this.isObject() && this.json.otype_ === "Int"; + } + asInt(): number { + if (this.isInt()) { + return this.json.value as number;; + } + throw new Error("JsonAtom is not an Int"); + } + static _Long(value: number): JsonAtom + { + return new JsonAtom({ "otype_": "Long", "value": value - }; + }); } - static Float(value: number): any + + isLong(): boolean { - return value; + return this.isObject() && this.json.otype_ === "Long"; } - static Double(value: number): any + asLong(): number { + if (this.isLong()) { + return this.json.value as number; + } + throw new Error("JsonAtom is not a Long"); + } + static _Float(value: number): JsonAtom { - return { + return new JsonAtom(value); + } + static _Double(value: number): JsonAtom + { + return new JsonAtom({ "otype_": "Double", "value": value - }; + }); } - static String(value: string): any + static _String(value: string): JsonAtom { - return value; + return new JsonAtom(value); } - static Path(value: string): any + isString() : boolean { - return { + return this.json && typeof this.json === 'string'; + } + asString(): string { + if (this.isString()) { + return this.json as string; + } + throw new Error("JsonAtom is not a String"); + } + + static _Path(value: string): JsonAtom + { + return new JsonAtom({ "otype_": "Path", "value": value - }; + }); } - static Uri(value: string): any + isPath(): boolean { - return { + return this.isObject() && this.json.otype_ === "Path"; + } + asPath(): string { + if (this.isPath()) { + return this.json.value as string; + } + throw new Error("JsonAtom is not a Path"); + } + static _Uri(value: string): JsonAtom + { + return new JsonAtom({ "otype_": "URI", "value": value - }; + }); } - static Urid(value: string): any + isUri(): boolean { - return { + return this.isObject() && this.json.otype_ === "URI"; + } + asUri(): string { + if (this.isUri()) { + return this.json.value as string; + } + throw new Error("JsonAtom is not a URI"); + } + static _Urid(value: string): JsonAtom + { + return new JsonAtom({ "otype_": "URID", "value": value - }; + }); } - static Object(type: string): any + isUrid(): boolean { - return { + return this.isObject() && this.json.otype_ === "URID"; + } + asUrid(): string { + if (this.isUrid()) { + return this.json.value as string; + } + throw new Error("JsonAtom is not a URID"); + } + static _Object(type: string): JsonAtom + { + return new JsonAtom({ "otype_": type - }; + }); } - static Tuple(values: any[]): any + isObject(type?: string): boolean { - return { + if (this.json && typeof this.json === 'object' && !Array.isArray(this.json)) { + if (!type) return true; + return type === this.json.otype_; + } + return false; + } + asObject(type?: string): Object { + if (this.isObject(type)) { + return this.json as Object; + } + throw new Error(`JsonAtom is not an Object of type ${type}`); + } + static _Tuple(values: any[]): JsonAtom + { + return new JsonAtom({ "otype_": "Tuple", "value": values - }; + }); } - static IntVector(values: []): any + static _IntVector(values: []): JsonAtom { - return { + return new JsonAtom({ "otype_": "Vector", "vtype_": "Int", "value": values - }; + }); } - static LongVector(values: []): any + static _LongVector(values: []): JsonAtom { - return { + return new JsonAtom({ "otype_": "Vector", "vtype_": "Long", "value": values - }; + }); } - static FloatVector(values: []): any + static _FloatVector(values: []): JsonAtom { - return { + return new JsonAtom({ "otype_": "Vector", "vtype_": "Float", "value": values - }; + }); } - static DoubleVector(values: []): any + static _DoubleVector(values: []): JsonAtom { - return { + return new JsonAtom({ "otype_": "Vector", "vtype_": "Float", "value": values - }; + }); } + constructor(json: any) { + this.json = json; + } + isArray(): boolean { + return this.json && Array.isArray(this.json); + } + isFloat(): boolean { + return this.json && typeof this.json === 'number'; + } + isNull(): boolean { + return this.json === null; + } + asAny(): any { + return this.json; + } + private json: any; }; export default JsonAtom; diff --git a/vite/src/pipedal/Lv2Plugin.tsx b/vite/src/pipedal/Lv2Plugin.tsx index cc7fb19..1256d09 100644 --- a/vite/src/pipedal/Lv2Plugin.tsx +++ b/vite/src/pipedal/Lv2Plugin.tsx @@ -1021,6 +1021,17 @@ export class UiPlugin implements Deserializable { return null; } + getFilePropertyByUri(patchPropertyUri: string): UiFileProperty | null { + for (let i = 0; i < this.fileProperties.length; ++i) + { + let fileProperty = this.fileProperties[i]; + if (fileProperty.patchProperty === patchPropertyUri) { + return fileProperty; + } + } + return null; + } + uri: string = ""; name: string = ""; minorVersion: number = 0; diff --git a/vite/src/pipedal/MainPage.tsx b/vite/src/pipedal/MainPage.tsx index 8c1b960..654006f 100644 --- a/vite/src/pipedal/MainPage.tsx +++ b/vite/src/pipedal/MainPage.tsx @@ -63,6 +63,7 @@ import PipedalUiIcon from './svg/pp_ui.svg?react'; import SnapshotDialog from './SnapshotDialog'; import { css } from '@emotion/react'; +import { setDefaultModGuiPreference } from './ModGuiHost'; const SPLIT_CONTROLBAR_THRESHHOLD = 750; @@ -253,6 +254,7 @@ export const MainPage = this.setState({ pedalboard: value, selectedPedal: selectedItem, + showModUi: value.maybeGetItem(selectedItem)?.useModUi ?? false, selectedSnapshot: value.selectedSnapshot }); } @@ -279,6 +281,14 @@ export const MainPage = this.model.pedalboard.removeOnChangedHandler(this.onPedalboardChanged); super.componentWillUnmount(); } + + componentDidUpdate(prevProps: MainProps, prevState: MainState) { + if (prevState.selectedPedal !== this.state.selectedPedal + || prevState.pedalboard !== this.state.pedalboard + ) { + this.setState({showModUi: this.state.pedalboard.maybeGetItem(this.state.selectedPedal)?.useModUi??false}); + } + } updateResponsive() { this.setState({ splitControlBar: this.getSplitToolbar(), @@ -369,6 +379,15 @@ export const MainPage = } + handleShowModUi() { + let newState = !this.state.showModUi; + this.model.setPedalboardItemUseModUi(this.state.selectedPedal, newState); + let item = this.model.pedalboard.get().maybeGetItem(this.state.selectedPedal); + if (item) { + setDefaultModGuiPreference(item.uri, newState); + } + } + onPedalboardPropertyChanged(instanceId: number, key: string, value: number) { this.model.setPedalboardControl(instanceId, key, value); } @@ -380,13 +399,14 @@ export const MainPage = if (pedalboardItem === null) return ""; return pedalboardItem.uri; } - titleBar(pedalboardItem: PedalboardItem | null,canShowModUi: boolean): React.ReactNode { + titleBar(pedalboardItem: PedalboardItem | null, canShowModUi: boolean): React.ReactNode { let title = ""; let author = ""; let infoPluginUri = ""; let presetsUri = ""; let missing = false; let canEditTitle = false; + let modGuiButtonVisible = false; if (pedalboardItem) { if (pedalboardItem.isEmpty()) { title = ""; @@ -416,6 +436,7 @@ export const MainPage = // if (uiPlugin.description.length > 20) { // } infoPluginUri = uiPlugin.uri; + modGuiButtonVisible = true; } } } @@ -442,20 +463,25 @@ export const MainPage = display: "flex", flexDirection: "row", height: 48, flexWrap: "nowrap", alignItems: "center" }}> -
+
{canEditTitle ? ( { this.handleEditPluginDisplayName(); }} > - - {title} - {this.state.displayAuthor && ( - {author} - )} - +
+ + {title} + {this.state.displayAuthor && ( + {author} + )} + +
) : (
@@ -474,22 +500,28 @@ export const MainPage =
- {canShowModUi && ( -
- - - {this.state.showModUi ? "PiPedal UI" : "MOD UI"} - - Use MOD UI or PiPedal UI for plugin -
- )} + {modGuiButtonVisible && ( +
+ + + {this.state.showModUi ? "PiPedal UI" : "MOD UI"} + + Use MOD UI or PiPedal UI for plugin. + {!canShowModUi && " The current plugin does not provide a MOD user interface."} + +
+ + )} onClick={() => { - this.setState({ showModUi: !this.state.showModUi }); + this.handleShowModUi() }} size="large"> - {!this.state.showModUi ? + {(!this.state.showModUi || !canShowModUi) ? ( ) : ( @@ -498,6 +530,7 @@ export const MainPage = }
+ )}
@@ -698,8 +731,9 @@ export const MainPage = ) : ( - GetControlView(pedalboardItem,this.state.showModUi && canShowModUi, + GetControlView(pedalboardItem, this.state.showModUi && canShowModUi, (instanceId: number, showModGui: boolean) => { + this.model.setPedalboardItemUseModUi(instanceId, showModGui) this.setState({ showModUi: showModGui }); } ) diff --git a/vite/src/pipedal/ModGuiHost.tsx b/vite/src/pipedal/ModGuiHost.tsx index 922a41c..11bbcff 100644 --- a/vite/src/pipedal/ModGuiHost.tsx +++ b/vite/src/pipedal/ModGuiHost.tsx @@ -21,17 +21,21 @@ * SOFTWARE. */ -import { UiPlugin, UiControl, ControlType } from './Lv2Plugin'; +import { UiPlugin, UiControl, ControlType, UiFileProperty } from './Lv2Plugin'; import React from 'react'; import CloseIcon from '@mui/icons-material/Close'; import IconButtonEx from './IconButtonEx'; import Typography from '@mui/material/Typography/Typography'; import ModGuiErrorBoundary from './ModGuiErrorBoundary'; import OkDialog from './OkDialog'; -import {pathParentDirectory} from './FileUtils'; +import { pathFileName, pathParentDirectory } from './FileUtils'; +import JsonAtom from './JsonAtom'; + +import { + PiPedalModel, PiPedalModelFactory, MonitorPortHandle, State, + ListenHandle, FileRequestResult +} from './PiPedalModel'; -import { PiPedalModel, PiPedalModelFactory, MonitorPortHandle, State, - ListenHandle, PatchPropertyListener } from './PiPedalModel'; const RANGE_SCALE = 120; // 120 pixels to move from 0 to 1. const FINE_RANGE_SCALE = RANGE_SCALE * 10; // 1200 pixels to move from 0 to 1. @@ -41,26 +45,50 @@ const WHEEL_RANGE_SCALE = 120 * 20; const FINE_WHEEL_RANGE_SCALE = WHEEL_RANGE_SCALE * 10; const ULTRA_FINE_WHEEL_RANGE_SCALE = WHEEL_RANGE_SCALE * 50; -export interface IModGuiHostSite { - monitorPort: ( - instanceId: number, - symbol: string, - interval: number, - callback: (value: number) => void) => MonitorPortHandle; - unmonitorPort: (handle: MonitorPortHandle) => void; - setPedalboardControl: (instanceId: number, symbol: string, value: number) => void; - monitorPatchProperty( - instanceId: number, - propertyUri: string, - onReceived: PatchPropertyListener - ): ListenHandle; +export type BypassChangedCallback = (value: boolean) => void; + +function HtmlEncode(value: string): string { + value = value.replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + return value; - cancelMonitorPatchProperty(listenHandle: ListenHandle): void; +} + +function htmlEncodeTest() { + let testString = "&<>'\"\\"; + + let encoded = HtmlEncode(testString); + let div = document.createElement("div"); + div.innerHTML = `
${encoded}
`; + let innerDiv = div.children[0] as HTMLDivElement; + if (innerDiv.getAttribute("data-text") !== testString) { + throw new Error("HtmlEncode failed to encode properly: " + encoded); + } + +} + +htmlEncodeTest(); + +function PathToString(json: any): string { + let t = new JsonAtom(json); + if (t.isPath()) { + return t.asPath(); + } + if (t.isString()) { + return t.asString(); + } + return ""; +} + + +function StringToPath(path: string): any { + return JsonAtom._Path(path).asAny(); +} - getPatchProperty(instanceId: number, uri: string): Promise; - setPatchProperty(instanceId: number, uri: string, value: any): Promise -}; export interface ModGuiHostProps { instanceId: number, @@ -69,7 +97,10 @@ export interface ModGuiHostProps { width?: number; height?: number; test?: boolean; - hostSite: IModGuiHostSite; + handleFileSelect: (instanceId: number, propertyUri: string, filePath: string) => void; + onContentReady: (ready: boolean) => void; + + } export interface ModGuiJs { set_port_value: (symbol: string, value: number) => void; @@ -92,7 +123,10 @@ interface CustomSelectPathControlProps { instanceId: number; plugin: UiPlugin; propertyUri: string, - hostSite: IModGuiHostSite; + hostSite: PiPedalModel; + + handleFileSelect: (instanceId: number, propertyUri: string, filePath: string) => void; + }; @@ -107,6 +141,7 @@ class CustomSelectPathControl implements ModGuiControl { this.props = props; } + private isInlineList: boolean = false; requestUpdate() { if (!this.mounted) return; @@ -130,23 +165,149 @@ class CustomSelectPathControl implements ModGuiControl { } } - requestFileUpdate() { + private getFileProperty(): UiFileProperty | null { + for (let property of this.props.plugin.fileProperties) { + if (property.patchProperty === this.props.propertyUri) { + return property; + } + } + return null; + } + + navBreadcrumbText(breadcrumbs: { pathname: string, displayName: string }[]): string { + let breadcrumbText = ""; + for (let i = 0; i < breadcrumbs.length - 1; ++i) { + let breadcrumb = breadcrumbs[i]; + breadcrumbText += " / "; + } + let breadcrumb = breadcrumbs[breadcrumbs.length - 1]; + breadcrumbText += "
" + + HtmlEncode(breadcrumb.displayName) + + "
"; + return breadcrumbText; + } + + makeEnumeratedListItem( + type: string, + basename: string, + fullname: string, + encodebaseName?: boolean + ): HTMLElement { + type = HtmlEncode(type); + fullname = HtmlEncode(fullname); + if (encodebaseName !== false) { + basename = HtmlEncode(basename); + } + let itemHtml = this.enumeratedListItemTemplate + .replace(/{{basename}}/g, basename) + .replace(/{{filetype}}/g, type) + .replace(/{{fullname}}/g, fullname); + let t = document.createElement("div"); + t.innerHTML = itemHtml; + let itemElement = t.firstElementChild as HTMLElement; + return itemElement; } + + fileRequestResult: FileRequestResult | null = null; + + async requestDirectoryUpdate() { + let model = PiPedalModelFactory.getInstance(); + let fileProperty = this.getFileProperty(); + if (!fileProperty) { + return; + } + + let files = await model.requestFileList2(this.navDirectory || "", fileProperty); + this.fileRequestResult = files; + if (!this.mounted) { + return; + } + if (this.enumeratedListContainerElement) { + this.enumeratedListContainerElement.innerHTML = ""; // remove all children. + + if (files.breadcrumbs.length >= 2) { + let parentDirectory = files.breadcrumbs[files.breadcrumbs.length - 2].pathname; + + let dotdotHtml = "
" + + "
[ ../ ]
" + + "
" + + this.navBreadcrumbText(files.breadcrumbs) + + "
"; + + let dotdotElement = this.makeEnumeratedListItem( + "directory", + dotdotHtml, + parentDirectory, + false + ); + dotdotElement.style.setProperty("border-bottom", "1px solid #888"); + this.enumeratedListContainerElement.appendChild(dotdotElement); + } else { + + // mod-role="enumeration-option" mod-filetype="{{filetype}}" mod-parameter-value="{{fullname}}" + let dotdotHtml = "
" + + "
 
" + + "
" + + this.navBreadcrumbText(files.breadcrumbs) + + "
"; + + let dotdotElement = this.makeEnumeratedListItem( + "directory", + dotdotHtml, + "", + false + ); + dotdotElement.style.setProperty("border-bottom", "1px solid #888"); + this.enumeratedListContainerElement.appendChild(dotdotElement); + + } + + for (let file of files.files) { + let displayName = file.displayName; + if (file.isDirectory) { + displayName = '[ ' + displayName + '/ ]'; + } + let fileType = file.isDirectory ? "directory" : "file"; + let itemElement = this.makeEnumeratedListItem( + fileType, + displayName, + file.pathname + ); + this.enumeratedListContainerElement.appendChild(itemElement); + } + this.updateSelection(); + } + + } + + private navDirectory: string | null = null; + + setNavDirectory(navDirectory: string | null) { + if (this.navDirectory !== navDirectory) { + this.navDirectory = navDirectory; + this.requestDirectoryUpdate(); + } + } private pathValue: string | null = null; - private browsePath: string | null = null; setPathValue(value: string) { if (this.pathValue !== value) { this.pathValue = value; - if (this.pathValue !== "") { + if (this.pathValue !== "" || this.navDirectory === null) { let browsePath = pathParentDirectory(value); - if (this.browsePath !== browsePath) { - this.browsePath = browsePath; - this.requestFileUpdate(); - } + this.setNavDirectory(browsePath); } this.requestUpdate(); } + if (this.enumeratedValueElement) { + this.enumeratedValueElement.textContent = pathFileName(this.pathValue); + } } private updateImage() { @@ -175,7 +336,8 @@ class CustomSelectPathControl implements ModGuiControl { } handlePropertyValueChange(value: any) { - + let path: string = PathToString(value); + this.setPathValue(path); } private mounted: boolean = false; @@ -183,29 +345,29 @@ class CustomSelectPathControl implements ModGuiControl { onMounted() { this.mounted = true; this.props.hostSite.monitorPatchProperty(this.props.instanceId, this.props.propertyUri, - (value: any) => { + (instanceId, propertyUri, value) => { this.handlePropertyValueChange(value); } ); this.props.hostSite.getPatchProperty(this.props.instanceId, this.props.propertyUri) - .then((value: any) => { - this.handlePropertyValueChange(value); - }). - catch((error: any) => { - if (error instanceof Error) { - console.error((error as Error).message); - } else { - console.error(error.toString()); - } - console.error(error); - }); + .then((value: any) => { + this.handlePropertyValueChange(value); + }). + catch((error: any) => { + if (error instanceof Error) { + console.error((error as Error).message); + } else { + console.error(error.toString()); + } + this.handlePropertyValueChange(""); + }); this.requestUpdate(); } onUnmount() { if (this.listenHandle) { this.props.hostSite.cancelMonitorPatchProperty(this.listenHandle); - this.listenHandle = null; + this.listenHandle = null; } this.mounted = false; this.cancelRequestUpdate(); @@ -226,40 +388,92 @@ class CustomSelectPathControl implements ModGuiControl { } } - handleSelected(value: string,strFileType: string) - { - this.setPathValue(value); - this.props.hostSite.setPatchProperty(this.props.instanceId, this.props.propertyUri, value); + + getValueElement(): HTMLElement | null { + return null; } + updateSelection() { + if (!this.frameElement) { + return; + } + let valueElement = this.getValueElement(); + if (valueElement) { + /// xxx: update the display value. + if (this.pathValue === null || this.pathValue === "") { + valueElement.textContent = "No file selected"; + return; + } + valueElement.textContent = this.pathValue; + } + if (this.isInlineList && this.enumeratedListContainerElement) { + for (let i = 0; i < this.enumeratedListContainerElement.children.length; i++) { + let child = this.enumeratedListContainerElement.children[i]; + let strValue = child.getAttribute("mod-parameter-value"); + let strType = child.getAttribute("mod-filetype"); + if (strValue === null) return; + if (strValue === this.pathValue && strType !== "directory") { + child.classList.add("selected"); + } else { + child.classList.remove("selected"); + } + }; + } + } handleClick(event: MouseEvent) { if (!this.frameElement) { return; } event.preventDefault(); event.stopPropagation(); - let enumeratedList = this.frameElement.querySelector(".mod-enumerated-list"); - if (enumeratedList) { - let element = enumeratedList as HTMLElement; - this.toggleVisibility(element) - } - if (event.target) { - let target = event.target as HTMLElement; - let role = target.getAttribute("mod-role"); - if (role === "enumeration-option") // a click in the drop-down list? - { - let strValue = target.getAttribute("mod-parameter-value"); - let strFileType = target.getAttribute("mod-filetype"); - if (strValue && strFileType) { - this.handleSelected(strValue,strFileType); - } + let valueElement = this.getValueElement(); + + if (event.target === valueElement) { + // A click on the value element, so launch the file browser. hooboy! + return; + } + if (!event.target) { + return; + } + let target = event.target as HTMLElement; + if (target.getAttribute("mod-role") === "enumeration-option") { + let strValue = target.getAttribute("mod-parameter-value"); + if (strValue === null) return; let strType = target.getAttribute("mod-filetype"); + if (strType === "directory") { + this.setNavDirectory(strValue); + return; } + + this.setPathValue(strValue); + this.updateSelection(); + this.props.hostSite.setPatchProperty(this.props.instanceId, this.props.propertyUri, StringToPath(strValue)); + return; } } private enumeratedListContainerElement: HTMLElement | null = null; private enumeratedListItemTemplate: string = ""; + private enumeratedValueElement: HTMLElement | null = null; + + getValueControlElement(): HTMLElement | null { + if (!this.frameElement) { + return null; + } + return this.frameElement.querySelector('[mod-role=input-parameter-value]') as HTMLElement | null; + } + + async handleValueClick(event: MouseEvent) { + event.preventDefault(); + event.stopPropagation(); + + + this.props.handleFileSelect( + this.props.instanceId, + this.props.propertyUri, + this.pathValue || "" + ); + } attach(frameElement: HTMLElement) { @@ -280,7 +494,15 @@ class CustomSelectPathControl implements ModGuiControl { } } } - void this.enumeratedListItemTemplate; // suppress unused variable warning + this.enumeratedValueElement = this.getValueControlElement(); + + this.isInlineList = this.enumeratedValueElement === null; + if (this.enumeratedValueElement) { + this.enumeratedValueElement.onclick = (event: MouseEvent) => { + this.handleValueClick(event); + } + } + } @@ -362,7 +584,7 @@ class CustomSelectControl implements ModGuiControl { this.frameElement.querySelectorAll('[mod-role=enumeration-option]') .forEach((inputControl: Element) => { let strValue = inputControl.getAttribute("mod-port-value"); - let value = parseFloat(strValue || ""); + let value = parseFloat(strValue || ""); inputControl.classList.remove("selected"); if (value === this.value) { inputControl.classList.add("selected"); @@ -431,8 +653,7 @@ class CustomSelectControl implements ModGuiControl { if (role === "enumeration-option") // a click in the drop-down list? { let strValue = target.getAttribute("mod-port-value"); - if (strValue && strValue !== "") - { + if (strValue && strValue !== "") { let value = parseFloat(strValue); if (!isNaN(value)) { this.setControlValue(value); @@ -455,14 +676,7 @@ class CustomSelectControl implements ModGuiControl { interface BypassLightControlProps { instanceId: number; - pluginControl: UiControl; - onValueChanged: (instanceId: number, symbol: string, value: number) => void; - monitorPort: ( - instanceId: number, - symbol: string, - interval: number, - callback: (value: number) => void) => MonitorPortHandle; - unmonitorPort: (handle: MonitorPortHandle) => void; + model: PiPedalModel; }; function ModMessage(message: string) { @@ -517,23 +731,22 @@ class BypassLightControl implements ModGuiControl { this.frameElement.classList.remove('on', 'off'); this.frameElement.classList.add( - this.value === this.props.pluginControl.min_value ? + this.value ? 'on' : 'off' ); } private mounted: boolean = false; - private monitorHandle: MonitorPortHandle | null = null; + private listenHandle: ListenHandle | null = null; onMounted() { this.mounted = true; - this.monitorHandle = this.props.monitorPort( + this.listenHandle = this.props.model.addPedalboardItemEnabledChangeListener( this.props.instanceId, - this.props.pluginControl.symbol, - 1.0 / 15, - (value: number) => { - if (value != this.value) { - this.setControlValue(value); + (instanceId: number, isEnabled: boolean) => { + let bypass = isEnabled ? 1.0: 0.0; + if (bypass !== this.value) { + this.setControlValue(bypass); } } ); @@ -541,9 +754,9 @@ class BypassLightControl implements ModGuiControl { } onUnmount() { - if (this.monitorHandle) { - this.props.unmonitorPort(this.monitorHandle); - this.monitorHandle = null; + if (this.listenHandle) { + this.props.model.removePedalboardItemEnabledChangeListener(this.listenHandle); + this.listenHandle = null; } this.mounted = false; this.cancelRequestUpdate(); @@ -647,7 +860,7 @@ class FilmstripControl implements ModGuiControl { return; } let range = this.valueToRange(this.value); - this.frameElement.style.transform = `rotate(${rotation * range-rotation/2}deg)`; + this.frameElement.style.transform = `rotate(${rotation * range - rotation / 2}deg)`; return; } @@ -712,9 +925,9 @@ class FilmstripControl implements ModGuiControl { let value = this.isPointerDown ? this.pointerDownValue : this.value; value = this.clampValue(value); - let isHorizontalStrip = - this.filmstripInfo.frameWidth/this.filmstripInfo.frameHeight - < this.filmstripInfo.width/this.filmstripInfo.height; + let isHorizontalStrip = + this.filmstripInfo.frameWidth / this.filmstripInfo.frameHeight + < this.filmstripInfo.width / this.filmstripInfo.height; if (isHorizontalStrip) { let range = this.valueToRange(value); @@ -1059,15 +1272,25 @@ class FilmstripControl implements ModGuiControl { } }; + function ModGuiHost(props: ModGuiHostProps) { - let xmodel: PiPedalModel = PiPedalModelFactory.getInstance(); + let model: PiPedalModel = PiPedalModelFactory.getInstance(); const { plugin, onClose } = props; const [hostDivRef, setHostDivRef] = React.useState(null); const [errorMessage, setErrorMessage] = React.useState(null); + const [contentReady, setContentReady] = React.useState(null); const [modGuiControls] = React.useState([]); - const [ready, setReady] = React.useState(xmodel.state.get() === State.Ready); + const [ready, setReady] = React.useState(model.state.get() === State.Ready); + const [maximizedUi] = React.useState(false); + function updateContentReady(value: boolean) { + if (value !== contentReady) { + setContentReady(value); + props.onContentReady(value); + } + } + if (!plugin.modGui) { return (
@@ -1076,6 +1299,7 @@ function ModGuiHost(props: ModGuiHostProps) { ); } + function addPortClass(element: Element, selector: string, className: string) { let children = element.querySelectorAll(selector); // call addClass to each element that matches the selector @@ -1091,13 +1315,13 @@ function ModGuiHost(props: ModGuiHostProps) { pluginControl: pluginControl, onValueChanged: (instanceId: number, symbol: string, value: number) => { try { - props.hostSite.setPedalboardControl(instanceId, symbol, value); + model.setPedalboardControl(instanceId, symbol, value); } catch (error) { } }, - monitorPort: props.hostSite.monitorPort, - unmonitorPort: props.hostSite.unmonitorPort + monitorPort: model.monitorPort.bind(model), + unmonitorPort: model.unmonitorPort.bind(model) } ); customSelectControl.attach(control as HTMLElement); @@ -1108,6 +1332,20 @@ function ModGuiHost(props: ModGuiHostProps) { } customSelectControl.onMounted(); } + function monitorBypassPort( + instanceId: number, + symbol: string, + interval: number, + callback: (value: number) => void): MonitorPortHandle { + return model.addPedalboardItemEnabledChangeListener( + instanceId, (instanceId,value) => { + callback(value ? 1 : 0); + } + ); + } + function unmonitorBypassPort(handle: MonitorPortHandle) { + model.removePedalboardItemEnabledChangeListener(handle as ListenHandle); + } function createFootswitchControl(control: Element, symbol: string, controlType: ControlType) { let uiControl = new UiControl(); uiControl.symbol = symbol; @@ -1124,14 +1362,24 @@ function ModGuiHost(props: ModGuiHostProps) { filmStrip: "/img/footswitch_strip.png", verticalStrip: true, onValueChanged: (instanceId: number, symbol: string, value: number) => { - try { - props.hostSite.setPedalboardControl(instanceId, symbol, value); - } catch (error) { + if (symbol === "_bypass") { + model.setPedalboardItemEnabled(instanceId, value !== 0); + } else { + try { + model.setPedalboardControl(instanceId, symbol, value); + } catch (error) { + } } }, - monitorPort: props.hostSite.monitorPort, - unmonitorPort: props.hostSite.unmonitorPort + monitorPort: + symbol === "_bypass" ? + monitorBypassPort : + model.monitorPort.bind(model), + unmonitorPort: + symbol == "_bypass" ? + unmonitorBypassPort : + model.unmonitorPort.bind(model) } ); filmstripControl.attach(control as HTMLElement); @@ -1150,9 +1398,10 @@ function ModGuiHost(props: ModGuiHostProps) { } let selectPathControl = new CustomSelectPathControl({ instanceId: props.instanceId, - propertyUri: pathUri, + propertyUri: pathUri, plugin: props.plugin, - hostSite: props.hostSite + hostSite: model, + handleFileSelect: props.handleFileSelect }); selectPathControl.attach(control as HTMLElement); @@ -1160,29 +1409,13 @@ function ModGuiHost(props: ModGuiHostProps) { selectPathControl.onMounted(); } - - function createBypassLightControl(control: Element, symbol: string) { - let uiControl = new UiControl(); - uiControl.symbol = symbol; - uiControl.controlType = ControlType.BypassLight; - uiControl.min_value = 0; - uiControl.max_value = 1; - uiControl.is_logarithmic = false; - uiControl.integer_property = true; + + function createBypassLightControl(control: Element) { let bypassLightControl = new BypassLightControl( { instanceId: props.instanceId, - pluginControl: uiControl, - onValueChanged: (instanceId: number, symbol: string, value: number) => { - try { - props.hostSite.setPedalboardControl(instanceId, symbol, value); - } catch (error) { - - } - }, - monitorPort: props.hostSite.monitorPort, - unmonitorPort: props.hostSite.unmonitorPort + model: model } ); bypassLightControl.attach(control as HTMLElement); @@ -1211,13 +1444,13 @@ function ModGuiHost(props: ModGuiHostProps) { verticalStrip: false, onValueChanged: (instanceId: number, symbol: string, value: number) => { try { - props.hostSite.setPedalboardControl(instanceId, symbol, value); + model.setPedalboardControl(instanceId, symbol, value); } catch (error) { } }, - monitorPort: props.hostSite.monitorPort, - unmonitorPort: props.hostSite.unmonitorPort + monitorPort: model.monitorPort.bind(model), + unmonitorPort: model.unmonitorPort.bind(model) } ); @@ -1284,14 +1517,11 @@ function ModGuiHost(props: ModGuiHostProps) { .forEach((control) => { let symbol = "_bypass"; let controlType = ControlType.OnOffSwitch; - createFootswitchControl(control, symbol, controlType); }); element.querySelectorAll('[mod-role=bypass-light]') .forEach((control) => { - let symbol = "_bypass"; - - createBypassLightControl(control, symbol); + createBypassLightControl(control); }); element.querySelectorAll('[mod-role=input-parameter]') .forEach((control) => { @@ -1303,6 +1533,7 @@ function ModGuiHost(props: ModGuiHostProps) { setErrorMessage(ModMessage(message)); } async function requestContent() { + updateContentReady(false); try { let modGui = plugin.modGui; if (!modGui) { @@ -1321,7 +1552,7 @@ function ModGuiHost(props: ModGuiHostProps) { let encodedUri = encodeURIComponent(props.plugin.uri); let version = props.plugin.minorVersion * 1000 + props.plugin.microVersion; - let resourceUrl = xmodel.modResourcesUrl; + let resourceUrl = model.modResourcesUrl; let queryParams = "?ns=" + encodedUri + "&v=" + version.toString(); let templateUri = resourceUrl + "_/iconTemplate" + queryParams; let cssUri = resourceUrl + "_/stylesheet" + queryParams; @@ -1367,6 +1598,7 @@ function ModGuiHost(props: ModGuiHostProps) { let height = element.clientHeight; hostDivRef.style.width = width + "px"; hostDivRef.style.height = height + "px"; + updateContentReady(true); } catch (error) { setModError("Error loading UI: " + (error instanceof Error ? error.message : String(error))); } @@ -1383,9 +1615,12 @@ function ModGuiHost(props: ModGuiHostProps) { let stateHandler = (state: State) => { setReady(state === State.Ready); } - xmodel.state.addOnChangedHandler(stateHandler) + model.state.addOnChangedHandler(stateHandler) + + return () => { - xmodel.state.removeOnChangedHandler(stateHandler); + model.state.removeOnChangedHandler(stateHandler); + if (tHostDivRef !== null) { // unmount the custom content. let children = tHostDivRef.children; @@ -1396,6 +1631,7 @@ function ModGuiHost(props: ModGuiHostProps) { } } } + updateContentReady(false); let mc = modGuiControls; for (let i = 0; i < mc.length; i++) { let modGuiControl = mc[i]; @@ -1405,12 +1641,12 @@ function ModGuiHost(props: ModGuiHostProps) { }; }, [hostDivRef, plugin, ready]); + return ( { props.onClose(); setErrorMessage(null); }}>
{ @@ -1418,14 +1654,14 @@ function ModGuiHost(props: ModGuiHostProps) { event.stopPropagation(); }} > - onClose()} style={{ - position: "absolute", top: 16, right: 16, - background: "#FFF5", zIndex: 600 - }}> - - - -
+ {maximizedUi && ( + onClose()} style={{ + position: "absolute", top: 16, right: 16, + background: "#FFF5", zIndex: 600 + }}> + + + )}
-
-
- { - setErrorMessage(null); - onClose(); - }} - text={errorMessage ?? ""} - /> + {errorMessage !== null && ( + { + setErrorMessage(null); + onClose(); + }} + text={errorMessage ?? ""} + /> + )} + ); } + +interface ModGuiPluginPreference { + pluginUri: string; + useModGui: boolean; +} + +let modGuiPluginPreferences: ModGuiPluginPreference[] | null = null; + + +function loadModGuiPreferences() { + if (modGuiPluginPreferences === null) { + let prefs = window.localStorage.getItem("modGuiPluginPreferences"); + try { + if (prefs) { + modGuiPluginPreferences = JSON.parse(prefs); + } else { + modGuiPluginPreferences = []; + } + } catch (error) { + console.error("pipedal: Error parsing modGuiPluginPreferences from localStorage: " + String(error)); + modGuiPluginPreferences = []; + } + } +} + +export function getDefaultModGuiPreference(pluginUri: string) { + loadModGuiPreferences(); + if (modGuiPluginPreferences === null) { + modGuiPluginPreferences = []; + } + if (modGuiPluginPreferences) { + let preference = modGuiPluginPreferences.find(p => p.pluginUri === pluginUri); + if (preference) { + return preference.useModGui; + } + } + return false; +} + + +export function setDefaultModGuiPreference(pluginUri: string, useModGui: boolean) { + loadModGuiPreferences(); + if (modGuiPluginPreferences === null) { + modGuiPluginPreferences = []; + } + + let preference = modGuiPluginPreferences.find(p => p.pluginUri === pluginUri); + if (preference) { + preference.useModGui = useModGui; + } else { + modGuiPluginPreferences.push({ pluginUri: pluginUri, useModGui }); + } + try { + window.localStorage.setItem("modGuiPluginPreferences", JSON.stringify(modGuiPluginPreferences)); + } catch(error) { + console.error("pipedal: Error saving modGuiPluginPreferences to localStorage: " + String(error)); + } +} + + export default ModGuiHost; \ No newline at end of file diff --git a/vite/src/pipedal/ModGuiTest.tsx b/vite/src/pipedal/ModGuiTest.tsx deleted file mode 100644 index 1e0d616..0000000 --- a/vite/src/pipedal/ModGuiTest.tsx +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Copyright (c) 2025 Robin E. R. Davies - * All rights reserved. - - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -import React from 'react'; -import Divider from '@mui/material/Divider'; -import { PiPedalModel, PiPedalModelFactory, MonitorPortHandle, State, ListenHandle, PatchPropertyListener } from './PiPedalModel'; -import { useTheme } from '@mui/material/styles'; -import CircularProgress from '@mui/material/CircularProgress'; -import LoadPluginDialog from './LoadPluginDialog'; -import ButtonEx from './ButtonEx'; -import Typography from '@mui/material/Typography/Typography'; -import ModGuiHost, { IModGuiHostSite } from './ModGuiHost'; -import { UiPlugin } from './Lv2Plugin'; -import ModGuiErrorBoundary from './ModGuiErrorBoundary'; - -class MyPortHandle implements MonitorPortHandle { - private static nextHandle: number = 1; - constructor() { - this.handle = MyPortHandle.nextHandle++; - } - handle: number; -}; - -type MonitorCallback = (value: number) => void; - -class ValueEntry { - constructor(defaultValue: number) { - this.value = defaultValue; - } - private listeners: { [handle: number]: MonitorCallback } = {}; - - monitor(interval: number, callback: MonitorCallback): MyPortHandle { - let handle = new MyPortHandle(); - this.listeners[handle.handle] = callback; - return handle; - } - unmonitor(handle: MonitorPortHandle) { - let h = (handle as MyPortHandle).handle; - // remove entry h from listeners - if (!(h in this.listeners)) { - throw new Error("Invalid handle: " + h); - } - // remove the callback from the listeners - delete this.listeners[h]; - } - setValue(value: number) { - if (value !== this.value) { - this.value = value; - // notify all listeners - for (let handle in this.listeners) { - this.listeners[handle](value); - } - } - } - value: number; -}; - -class PatchListenerEntry { - constructor(instanceId: number, propertyUri: string) { - this.instanceId = instanceId; - this.propertyUri = propertyUri; - } - instanceId: number; - propertyUri: string; - value: any = ""; - listeners: { handle: number, listener: PatchPropertyListener}[] = [];; -}; - - -class ValueHandler { - - private valueDictionary: { [symbol: string]: ValueEntry } = {}; - private handleToValueEnry: { [handle: number]: ValueEntry } = {}; - - constructor(instanceId: number, plugin: UiPlugin) { - for (let control of plugin.controls) { - this.valueDictionary[control.symbol] = new ValueEntry(control.default_value); - } - this.valueDictionary["_bypass"] = new ValueEntry(0); - } - monitorPort(instanceId: number, symbol: string, interval: number, callback: MonitorCallback): MonitorPortHandle { - let valueEntry = this.valueDictionary[symbol]; - - let portHandle = valueEntry.monitor(interval, callback); - this.handleToValueEnry[(portHandle as MyPortHandle).handle] = valueEntry; - callback(valueEntry.value); - return portHandle; - } - unmonitorPort(handle: MonitorPortHandle): void { - let h = (handle as MyPortHandle).handle; - if (!(h in this.handleToValueEnry)) { - throw new Error("Invalid handle: " + h); - } - let valueEntry = this.handleToValueEnry[h]; - valueEntry.unmonitor(handle); - delete this.handleToValueEnry[h]; - } - setValue(instanceId: number, symbol: string, value: number) { - // add a delay just for funsies. - window.setTimeout(() => { - if (!(symbol in this.valueDictionary)) { - throw new Error("Invalid symbol: " + symbol); - } - let valueEntry = this.valueDictionary[symbol]; - valueEntry.setValue(value); - }, 100); - } - getValue(instanceId: number, symbol: string): number { - if (!(symbol in this.valueDictionary)) { - throw new Error("Invalid symbol: " + symbol); - } - let valueEntry = this.valueDictionary[symbol]; - return valueEntry.value; - } - private nextListenHandle: number = 1; - - - private patchListeners: PatchListenerEntry[] = []; - - monitorPatchProperty(instanceId: number, propertyUri: string, onReceived: PatchPropertyListener): ListenHandle { - let h = this.nextListenHandle++; - for (let entry of this.patchListeners) { - if (entry.instanceId === instanceId && entry.propertyUri === propertyUri) { - // already listening to this property - entry.listeners.push({ handle: h, listener: onReceived }); - onReceived(instanceId,propertyUri,entry.value); - return { _handle: h }; - } - } - let entry = new PatchListenerEntry(instanceId, propertyUri); - this.patchListeners.push(entry); - entry.listeners.push({ handle: h, listener: onReceived }); - onReceived(instanceId, propertyUri, entry.value); - return {_handle: h}; - } - cancelMonitorPatchProperty(listenHandle: ListenHandle): void { - for (let i = 0; i < this.patchListeners.length; ++i) { - let entry = this.patchListeners[i]; - for (let j = 0; j < entry.listeners.length; ++j) { - if (entry.listeners[j].handle === listenHandle._handle) { - // found the listener, remove it - entry.listeners.splice(j, 1); - if (entry.listeners.length === 0) { - // no more listeners, remove the entry - this.patchListeners.splice(i, 1); - } - return; - } - } - } - } - getPatchProperty(instanceId: number, uri: string): Promise { - let promise = new Promise((resolve, reject) => { - window.setTimeout(() => { - for (let entry of this.patchListeners) { - if (entry.instanceId === instanceId && entry.propertyUri === uri) { - window.setTimeout(() => { - // simulate a delay for getting the property - entry.listeners.forEach(l => l.listener(instanceId, uri, entry.value)); - }, 100); - return resolve(entry.value); - } - } - reject(new Error(`Patch property not found: ${uri} for instance ${instanceId}`)); - },50); - }); - return promise; - } - setPatchProperty(instanceId: number, uri: string, value: any): Promise { - // Implementation here - for (let entry of this.patchListeners) { - if (entry.instanceId === instanceId && entry.propertyUri === uri) { - entry.value = value; - // notify all listeners - entry.listeners.forEach(l => l.listener(instanceId, uri, value)); - return Promise.resolve(true); - } - } - // if we reach here, the property was not found - return Promise.reject("Not found."); - } -}; - -function ModGuiTest() { - const [pluginUrl, setPluginUrl] = React.useState(""); - const [uiPlugin, setUiPlugin] = React.useState(null); - const [pluginDialogOpen, setPluginDialogOpen] = React.useState(false); - const [loading, setLoading] = React.useState(true); - const [valueHandler, setValueHandler] = React.useState(null); - - const [modGuiHostSite] = React.useState({ - monitorPort: (instanceId: number, symbol: string, interval: number, callback: (value: number) => void) => { - if (!valueHandler) { - throw new Error("ValueHandler is not set"); - } - return valueHandler.monitorPort(instanceId, symbol, interval, callback); - }, - unmonitorPort: (handle) => { - if (!valueHandler) { - throw new Error("ValueHandler is not set"); - } - valueHandler.unmonitorPort(handle); - }, - setPedalboardControl: (instanceId, symbol, value) => { - if (!valueHandler) { - throw new Error("ValueHandler is not set"); - } - valueHandler.setValue(instanceId, symbol, value); - }, - monitorPatchProperty(instanceId: number, propertyUri: string, onReceived: PatchPropertyListener): ListenHandle { - if (!valueHandler) { - throw new Error("ValueHandler is not set"); - } - - return valueHandler.monitorPatchProperty(instanceId, propertyUri, onReceived); - }, - cancelMonitorPatchProperty: (listenHandle) => { - if (!valueHandler) { - throw new Error("ValueHandler is not set"); - } - valueHandler.cancelMonitorPatchProperty(listenHandle); - }, - getPatchProperty: async (instanceId, uri) => { - if (!valueHandler) { - throw new Error("ValueHandler is not set"); - } - return valueHandler.getPatchProperty(instanceId, uri) as Promise; - }, - setPatchProperty: async (instanceId, uri, value) => { - if (!valueHandler) { - throw new Error("ValueHandler is not set"); - } - return valueHandler.setPatchProperty(instanceId, uri, value) as Promise; - } - }); - - let model: PiPedalModel = PiPedalModelFactory.getInstance(); - - React.useEffect(() => { - - const onStateChange = (state: State) => { - if (state == State.Ready) { - setLoading(false); - } - }; - - model.state.addOnChangedHandler(onStateChange); - - return () => { - model.state.removeOnChangedHandler(onStateChange); - }; - }, []) - - const theme = useTheme(); - - return ( -
- -
- -
- - -
- ModGUI Test - - {pluginUrl ? pluginUrl : "No plugin loaded"} - - setPluginDialogOpen(true)} > - Load - -
- - - - {uiPlugin && ( -
- { - setPluginUrl(""); - setUiPlugin(null); - setValueHandler(null); - }} > - - { - setPluginUrl(""); - setUiPlugin(null); - }} - hostSite={modGuiHostSite} - /> - -
- )} - {pluginDialogOpen && - { - setPluginUrl(url as string); - let uiPlugin = model.getUiPlugin(url); - setUiPlugin(uiPlugin); - if (uiPlugin) { - setValueHandler(new ValueHandler(-1, uiPlugin)); - } - setPluginDialogOpen(false); - }} - onCancel={() => setPluginDialogOpen(false)} - uri={pluginUrl} - modGuiOnly={true} - /> - } -
- ); -} - -export default ModGuiTest; \ No newline at end of file diff --git a/vite/src/pipedal/Pedalboard.tsx b/vite/src/pipedal/Pedalboard.tsx index c18a2cc..a5129ba 100644 --- a/vite/src/pipedal/Pedalboard.tsx +++ b/vite/src/pipedal/Pedalboard.tsx @@ -79,6 +79,8 @@ export class PedalboardItem implements Deserializable { this.lv2State = input.lv2State; this.lilvPresetUri = input.lilvPresetUri; this.pathProperties = input.pathProperties; + this.useModUi = input.useModUi ?? false; + return this; } deserialize(input: any): PedalboardItem { @@ -212,6 +214,7 @@ export class PedalboardItem implements Deserializable { lv2State: [boolean,any] = [false,{}]; lilvPresetUri: string = ""; pathProperties: {[Name: string]: string} = {}; + useModUi: boolean = false; // true if this item should use the mod-ui. }; export class SnapshotValue { diff --git a/vite/src/pipedal/PiPedalModel.tsx b/vite/src/pipedal/PiPedalModel.tsx index 70d26ce..0fda9f3 100644 --- a/vite/src/pipedal/PiPedalModel.tsx +++ b/vite/src/pipedal/PiPedalModel.tsx @@ -44,7 +44,7 @@ import FilePropertyDirectoryTree from './FilePropertyDirectoryTree'; import AudioFileMetadata from './AudioFileMetadata'; import { pathFileName } from './FileUtils'; import { AlsaSequencerConfiguration, AlsaSequencerPortSelection } from './AlsaSequencer'; - +import {getDefaultModGuiPreference} from './ModGuiHost'; export enum State { Loading, @@ -82,6 +82,24 @@ export enum ReconnectReason { HotspotChanging }; +export type PedalboardItemEnabledChangeCallback = (instanceId: number, isEnabled: boolean) => void; +interface PedalboardItemEnabledChangeItem { + handle: number; + instanceId: number; + currentValue: boolean; + onEnabledChanged: PedalboardItemEnabledChangeCallback; +}; + +export type PedalboardItemUseModUiChangeCallback = (instanceId: number, useModUi: boolean) => void; + +interface PedalboardItemUseModUiChangeItem { + handle: number; + instanceId: number; + currentValue: boolean; + onUseModUiChanged: PedalboardItemUseModUiChangeCallback; +}; + + export type ControlValueChangedHandler = (key: string, value: number) => void; export interface FileEntry { @@ -146,7 +164,6 @@ export interface VuUpdateInfo { }; export interface MonitorPortHandle { - }; export interface ControlValueChangedHandle { _ControlValueChangedHandle: number; @@ -574,10 +591,18 @@ export class PiPedalModel //implements PiPedalModel return true; } + private updateEnabledItems(pedalboard: Pedalboard) + { + for (let item of pedalboard.itemsGenerator()) { + this.updatePedalboardItemEnabled(item.instanceId, item.isEnabled); + this.updatePedalboardItemUseModUi(item.instanceId, item.useModUi); + } + } + private setModelPedalboard(pedalboard: Pedalboard) { this.pedalboard.set(pedalboard); this.selectedSnapshot.set(pedalboard.selectedSnapshot); - + this.updateEnabledItems(pedalboard); } onSocketMessage(header: PiPedalMessageHeader, body?: any) { @@ -687,6 +712,13 @@ export class PiPedalModel //implements PiPedalModel itemEnabledBody.enabled, false // No server notification. ); + } else if (message == "onItemUseModUiChanged") { + let itemEnabledBody = body as PedalboardItemEnableBody; + this._setPedalboardItemUseModUi( + itemEnabledBody.instanceId, + itemEnabledBody.enabled, + false // No server notification. + ); } else if (message === "onPedalboardChanged") { let pedalChangedBody = body as PedalboardChangedBody; this.setModelPedalboard(new Pedalboard().deserialize(pedalChangedBody.pedalboard)); @@ -1563,6 +1595,42 @@ export class PiPedalModel //implements PiPedalModel setPedalboardItemEnabled(instanceId: number, value: boolean): void { this._setPedalboardItemEnabled(instanceId, value, true); } + + setPedalboardItemUseModUi(instanceId: number, useModUi: boolean): void { + this._setPedalboardItemUseModUi(instanceId, useModUi, true); + } + + getPedalboardItemUseModUi(instanceId: number): boolean { + if (!this.pedalboard.get().hasItem(instanceId)) return false; + let item = this.pedalboard.get().getItem(instanceId); + return item.useModUi; + } + _setPedalboardItemUseModUi(instanceId: number, useModUi: boolean, notifyServer: boolean): void { + let pedalboard = this.pedalboard.get(); + if (pedalboard === undefined) throw new PiPedalStateError("Pedalboard not ready."); + let newPedalboard = pedalboard.clone(); + let item = newPedalboard.getItem(instanceId); + let changed = useModUi !== item.useModUi; + if (changed) { + item.useModUi = useModUi; + this.setModelPedalboard(newPedalboard); + if (notifyServer) { + let body = { + clientId: this.clientId, + instanceId: instanceId, + useModUi: useModUi + }; + this.webSocket?.send("setPedalboardItemUseModUi", body); + } + } + } + + + getPedalboardItemEnabled(instanceId: number): boolean { + if (!this.pedalboard.get().hasItem(instanceId)) return false; + let item = this.pedalboard.get().getItem(instanceId); + return item.isEnabled; + } private _setPedalboardItemEnabled(instanceId: number, value: boolean, notifyServer: boolean): void { let pedalboard = this.pedalboard.get(); if (pedalboard === undefined) throw new PiPedalStateError("Pedalboard not ready."); @@ -1625,6 +1693,7 @@ export class PiPedalModel //implements PiPedalModel item.lv2State = [false, {}]; item.vstState = ""; item.pathProperties = {}; + item.useModUi = getDefaultModGuiPreference(selectedUri); for (let fileProperty of plugin.fileProperties) { // stringized json for an atom. see AtomConverter.hpp. // null -> we've never seen a value. @@ -1845,6 +1914,7 @@ export class PiPedalModel //implements PiPedalModel } newPedalboard.setItemEmpty(item); + this.setModelPedalboard(newPedalboard); this.updateServerPedalboard(); return item.instanceId; @@ -2210,6 +2280,18 @@ export class PiPedalModel //implements PiPedalModel } getPatchProperty(instanceId: number, uri: string): Promise { let result = new Promise((resolve, reject) => { + let pedalboard = this.pedalboard.get(); + if (pedalboard) { + let item = pedalboard.getItem(instanceId); + if (item) { + if (item.pathProperties.hasOwnProperty(uri)) { + let value = item.pathProperties[uri]; + let jsonValue = JSON.parse(value); + resolve(jsonValue as Type); + } + + } + } if (!this.webSocket) { reject("Socket closed."); } else { @@ -3233,6 +3315,94 @@ export class PiPedalModel //implements PiPedalModel throw new Error("No connection."); } + + private pedalboardItemEnabledChangeListeners: PedalboardItemEnabledChangeItem[] = []; + private pedalboardItemUseModUiChangeListeners: PedalboardItemUseModUiChangeItem[] = []; + + private updatePedalboardItemEnabled(instanceId: number, enabled: boolean) { + for (let listener of this.pedalboardItemEnabledChangeListeners) { + if (listener.instanceId === instanceId) { + if (listener.currentValue !== enabled) { + listener.currentValue = enabled; + listener.onEnabledChanged(instanceId, enabled); + } + } + } + } + + private updatePedalboardItemUseModUi(instanceId: number, useModUi: boolean) { + for (let listener of this.pedalboardItemUseModUiChangeListeners) { + if (listener.instanceId === instanceId) { + if (listener.currentValue !== useModUi) { + listener.currentValue = useModUi; + listener.onUseModUiChanged(instanceId, useModUi); + } + } + } + } + + addPedalboardItemEnabledChangeListener( + instanceId: number, + onEnabledChanged: PedalboardItemEnabledChangeCallback + ) : ListenHandle{ + let handle = ++this.nextListenHandle; + let currentValue = this.getPedalboardItemEnabled(instanceId); + + let entry: PedalboardItemEnabledChangeItem = { + instanceId: instanceId, + handle: handle, + currentValue: currentValue, + onEnabledChanged: onEnabledChanged + }; + + this.pedalboardItemEnabledChangeListeners.push( entry); + + onEnabledChanged(instanceId, currentValue); + + return { _handle: handle }; + } + addPedalboardItemUseModUiChangeListener( + instanceId: number, + onUseModUiChanged : PedalboardItemUseModUiChangeCallback + ) : ListenHandle{ + + let handle = ++this.nextListenHandle; + let currentValue = this.getPedalboardItemUseModUi(instanceId); + + let entry: PedalboardItemUseModUiChangeItem = { + instanceId: instanceId, + handle: handle, + currentValue: currentValue, + onUseModUiChanged: onUseModUiChanged + }; + + this.pedalboardItemUseModUiChangeListeners.push( entry); + + onUseModUiChanged(instanceId, currentValue); + + return { _handle: handle }; + } + + removePedalboardItemEnabledChangeListener(listenHandle: ListenHandle): boolean { + for (let i = 0; i < this.pedalboardItemEnabledChangeListeners.length; ++i) { + if (this.pedalboardItemEnabledChangeListeners[i].handle === listenHandle._handle) { + this.pedalboardItemEnabledChangeListeners.splice(i, 1); + return true; + } + } + return false; + } + + removePedalboardItemUseModUiChangeListener(listenHandle: ListenHandle): boolean { + for (let i = 0; i < this.pedalboardItemUseModUiChangeListeners.length; ++i) { + if (this.pedalboardItemUseModUiChangeListeners[i].handle === listenHandle._handle) { + this.pedalboardItemUseModUiChangeListeners.splice(i, 1); + return true; + } + } + return false; + } + }; let instance: PiPedalModel | undefined = undefined; diff --git a/vite/src/pipedal/PluginControlView.tsx b/vite/src/pipedal/PluginControlView.tsx index 6c3c097..976b9cd 100644 --- a/vite/src/pipedal/PluginControlView.tsx +++ b/vite/src/pipedal/PluginControlView.tsx @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Robin Davies +// Copyright (c) 2025 Robin E. R. Davies // // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in @@ -23,7 +23,9 @@ import WithStyles, { withTheme } from './WithStyles'; import { createStyles } from './WithStyles'; import { css } from '@emotion/react'; -import ModGuiHost, { IModGuiHostSite } from './ModGuiHost'; +import AutoZoom from './AutoZoom'; + +import ModGuiHost from './ModGuiHost'; import { withStyles } from "tss-react/mui"; import { PiPedalModel, PiPedalModelFactory } from './PiPedalModel'; @@ -353,7 +355,9 @@ type PluginControlViewState = { imeInitialHeight: number; showFileDialog: boolean, dialogFileProperty: UiFileProperty, - dialogFileValue: string + dialogFileValue: string, + modGuiContentReady: boolean, + showModGuiZoomed: boolean, }; const PluginControlView = @@ -372,7 +376,9 @@ const PluginControlView = imeInitialHeight: 0, showFileDialog: false, dialogFileProperty: new UiFileProperty(), - dialogFileValue: "" + dialogFileValue: "", + modGuiContentReady: false, + showModGuiZoomed: false } this.onPedalboardChanged = this.onPedalboardChanged.bind(this); @@ -774,36 +780,64 @@ const PluginControlView = } return false; } - makeHostSite(): IModGuiHostSite { - // Yuck. :-( This worked out badly. - let model = this.model; - return { - monitorPort: this.model.monitorPort.bind(model), - unmonitorPort: this.model.unmonitorPort.bind(model), - setPedalboardControl: this.model.setPedalboardControl.bind(model), - monitorPatchProperty: this.model.monitorPatchProperty.bind(model), - cancelMonitorPatchProperty: this.model.cancelMonitorPatchProperty.bind(model), - getPatchProperty: this.model.getPatchProperty.bind(model), - setPatchProperty: this.model.setPatchProperty.bind(model), - }; - } + + handleModGuiFileProperty(instanceId: number, filePropertyUri: string, selectedFile: string) { + let plugin = this.model.getUiPlugin(this.props.item.uri); + if (!plugin) { + throw (new Error("Plugin not found.")); + } + let fileProperty = plugin.getFilePropertyByUri(filePropertyUri); + if (!fileProperty) { + throw (new Error("File property not found.")); + } + this.setState({ + showFileDialog: true, + dialogFileProperty: fileProperty, + dialogFileValue: selectedFile + }); + } renderModGui(): ReactNode { + const classes = withStyles.getClasses(this.props); + void classes; + let uiPlugin = this.model.getUiPlugin(this.props.item.uri); if (!uiPlugin) { return (
); } return ( - { - if (this.props.onSetShowModGui) { - this.props.onSetShowModGui(this.props.instanceId, false); +
+ { this.setState({ showModGuiZoomed: value }); } } - }} - hostSite={this.makeHostSite()} - /> + > + { + if (this.props.onSetShowModGui) { + this.props.onSetShowModGui(this.props.instanceId, false); + } + this.setState({showModGuiZoomed: false}) + }} + handleFileSelect={(instanceId, fileProperty, selectedFile) => { + this.handleModGuiFileProperty( + instanceId, + fileProperty, + selectedFile); + + }} + onContentReady={(value) => { + this.setState({ modGuiContentReady: value }); + }} + /> + +
+ ) } @@ -859,22 +893,22 @@ const PluginControlView = nodes.push(this.midiBindingControl(pedalboardItem)); } return ( -
-
- { - nodes - } - {/* Extra space to allow scrolling right to the end in lascape especially */} - {!this.fullScreen() && ( -
- )} - { - (!this.state.landscapeGrid) && (!this.fullScreen()) && ( -
- ) - } -
+
+
+ { + nodes + } + {/* Extra space to allow scrolling right to the end in lascape especially */} + {!this.fullScreen() && ( +
+ )} + { + (!this.state.landscapeGrid) && (!this.fullScreen()) && ( +
+ ) + }
+
); @@ -895,7 +929,7 @@ const PluginControlView = let vuMeterRClass = this.state.landscapeGrid ? classes.vuMeterRLandscape : classes.vuMeterR; let frameClass = classes.frame; - if (this.fullScreen()) { + if (this.fullScreen() || this.props.showModGui) { frameClass = classes.noScrollFrame; } @@ -920,13 +954,15 @@ const PluginControlView = instanceId={this.props.instanceId} selectedFile={this.state.dialogFileValue} onCancel={() => { - this.setState({ showFileDialog: false }); + this.setState({ + showFileDialog: false + }); }} onApply={(fileProperty, selectedFile) => { this.model.setPatchProperty( this.props.instanceId, fileProperty.patchProperty, - JsonAtom.Path(selectedFile) + JsonAtom._Path(selectedFile).asAny() ) .then(() => { @@ -941,7 +977,7 @@ const PluginControlView = this.model.setPatchProperty( this.props.instanceId, fileProperty.patchProperty, - JsonAtom.Path(selectedFile) + JsonAtom._Path(selectedFile).asAny() ) .then(() => { diff --git a/vite/src/pipedal/Rect.tsx b/vite/src/pipedal/Rect.tsx index 096f377..8ef44d1 100644 --- a/vite/src/pipedal/Rect.tsx +++ b/vite/src/pipedal/Rect.tsx @@ -31,7 +31,7 @@ class Rect { this.x = x; this.y = y; this.width = width; this.height = height; } - toString() { return '{' + this.x + "," + this.y + " " + this.width + "," + this.height +"}"; } + toString() { return '{' + this.x + "," + this.y + " - " + this.width + "," + this.height +"}"; } copy(): Rect { let result = new Rect(); result.x = this.x; @@ -84,6 +84,12 @@ class Rect { this.x += xOffset; this.y += yOffset; } + equals(other: Rect): boolean { + return this.x === other.x && + this.y === other.y && + this.width === other.width && + this.height === other.height; + } } export default Rect; \ No newline at end of file diff --git a/vite/src/pipedal/ScratchClass.tsx b/vite/src/pipedal/ScratchClass.tsx index c6655f8..fbe6a6e 100644 --- a/vite/src/pipedal/ScratchClass.tsx +++ b/vite/src/pipedal/ScratchClass.tsx @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Robin Davies +// Copyright (c) 2025 Robin E. R. Davies // // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in diff --git a/vite/src/pipedal/ToobCabSimView.tsx b/vite/src/pipedal/ToobCabSimView.tsx index caa0e3e..74fc3b4 100644 --- a/vite/src/pipedal/ToobCabSimView.tsx +++ b/vite/src/pipedal/ToobCabSimView.tsx @@ -77,6 +77,9 @@ const ToobCabSimView = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui= {(instanceId: number, showModGui: boolean) => {}} + />); } }, diff --git a/vite/src/pipedal/ToobInputStageView.tsx b/vite/src/pipedal/ToobInputStageView.tsx index dd37f4c..91321f7 100644 --- a/vite/src/pipedal/ToobInputStageView.tsx +++ b/vite/src/pipedal/ToobInputStageView.tsx @@ -21,14 +21,14 @@ import React from 'react'; import { Theme } from '@mui/material/styles'; import WithStyles from './WithStyles'; -import {createStyles} from './WithStyles'; +import { createStyles } from './WithStyles'; import { withStyles } from "tss-react/mui"; import IControlViewFactory from './IControlViewFactory'; import { PiPedalModelFactory, PiPedalModel } from "./PiPedalModel"; import { PedalboardItem } from './Pedalboard'; -import PluginControlView, { ControlGroup,ControlViewCustomization } from './PluginControlView'; +import PluginControlView, { ControlGroup, ControlViewCustomization } from './PluginControlView'; //import ToobFrequencyResponseView from './ToobFrequencyResponseView'; @@ -47,12 +47,11 @@ interface ToobInputStageState { const ToobInputStageView = withStyles( - class extends React.Component - implements ControlViewCustomization - { + class extends React.Component + implements ControlViewCustomization { model: PiPedalModel; - customizationId: number = 1; + customizationId: number = 1; constructor(props: ToobInputStageProps) { super(props); @@ -64,8 +63,7 @@ const ToobInputStageView = return false; } - modifyControls(controls: (React.ReactNode| ControlGroup)[]): (React.ReactNode| ControlGroup)[] - { + modifyControls(controls: (React.ReactNode | ControlGroup)[]): (React.ReactNode | ControlGroup)[] { return controls; // let group = controls[1] as ControlGroup; // group.controls.splice(0,0, @@ -79,6 +77,9 @@ const ToobInputStageView = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui={(instanceId: number, showModGui: boolean) => { }} + />); } }, diff --git a/vite/src/pipedal/ToobMLView.tsx b/vite/src/pipedal/ToobMLView.tsx index d4dd702..378b07f 100644 --- a/vite/src/pipedal/ToobMLView.tsx +++ b/vite/src/pipedal/ToobMLView.tsx @@ -21,7 +21,7 @@ import React from 'react'; import { Theme } from '@mui/material/styles'; import WithStyles from './WithStyles'; -import {createStyles} from './WithStyles'; +import { createStyles } from './WithStyles'; import { withStyles } from "tss-react/mui"; @@ -48,7 +48,7 @@ const ToobMLView = class extends React.Component implements ControlViewCustomization { model: PiPedalModel; - gainRef: React.RefObject; + gainRef: React.RefObject; customizationId: number = 1; @@ -119,19 +119,17 @@ const ToobMLView = // } let controlIndex: number = -1; let controlValues = this.props.item.controlValues - for (let i:number = 0; i < controlValues.length; ++i) - { + for (let i: number = 0; i < controlValues.length; ++i) { let ctl: any = controls[i]; - let key: any = ctl?.props?.uiControl?.symbol??""; - - if (key === "gain") - { + let key: any = ctl?.props?.uiControl?.symbol ?? ""; + + if (key === "gain") { controlIndex = i; break; } } - if (controlIndex !== -1 ) { + if (controlIndex !== -1) { let gainControl: React.ReactElement = controls[controlIndex] as React.ReactElement; controls[controlIndex] = (
{gainControl}
); @@ -144,6 +142,9 @@ const ToobMLView = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui={(instanceId: number, showModGui: boolean) => { }} + />); } }, diff --git a/vite/src/pipedal/ToobPlayerControl.tsx b/vite/src/pipedal/ToobPlayerControl.tsx index ac80320..b36ab68 100644 --- a/vite/src/pipedal/ToobPlayerControl.tsx +++ b/vite/src/pipedal/ToobPlayerControl.tsx @@ -525,7 +525,7 @@ export default function ToobPlayerControl( function onNextTrack() { model.getNextAudioFile(audioFile) .then((file) => { - let json = JsonAtom.Path(file); + let json = JsonAtom._Path(file).asAny(); model.setPatchProperty( props.instanceId, AUDIO_FILE_PROPERTY_URI, @@ -538,7 +538,7 @@ export default function ToobPlayerControl( function onPreviousTrack() { model.getPreviousAudioFile(audioFile) .then((file) => { - let json = JsonAtom.Path(file); + let json = JsonAtom._Path(file).asAny(); model.setPatchProperty( props.instanceId, AUDIO_FILE_PROPERTY_URI, @@ -873,7 +873,7 @@ export default function ToobPlayerControl( model.setPatchProperty( props.instanceId, AUDIO_FILE_PROPERTY_URI, - JsonAtom.Path(selectedFile) + JsonAtom._Path(selectedFile).asAny() ) .then(() => { @@ -888,7 +888,7 @@ export default function ToobPlayerControl( model.setPatchProperty( props.instanceId, fileProperty.patchProperty, - JsonAtom.Path(selectedFile) + JsonAtom._Path(selectedFile).asAny() ) .then(() => { diff --git a/vite/src/pipedal/ToobPlayerView.tsx b/vite/src/pipedal/ToobPlayerView.tsx index 1f40908..751620c 100644 --- a/vite/src/pipedal/ToobPlayerView.tsx +++ b/vite/src/pipedal/ToobPlayerView.tsx @@ -110,14 +110,14 @@ const ToobPlayerView = for (let mixControl of mixPanel.controls) { extraControls.push( ( -
+
{mixControl}
)); } let panel = ( - + ); let result: (React.ReactNode | ControlGroup)[] = []; @@ -133,6 +133,9 @@ const ToobPlayerView = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui={(instanceId: number, showModGui: boolean) => { }} + /> ); } @@ -146,7 +149,7 @@ class ToobPlayerViewFactory implements IControlViewFactory { uri: string = "http://two-play.com/plugins/toob-player"; Create(model: PiPedalModel, pedalboardItem: PedalboardItem): React.ReactNode { - return (); + return (); } diff --git a/vite/src/pipedal/ToobPowerStage2View.tsx b/vite/src/pipedal/ToobPowerStage2View.tsx index 3d1e8b2..664747d 100644 --- a/vite/src/pipedal/ToobPowerStage2View.tsx +++ b/vite/src/pipedal/ToobPowerStage2View.tsx @@ -179,6 +179,8 @@ const ToobPowerstage2View = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui= {(instanceId: number, showModGui: boolean) => {}} />); } }, diff --git a/vite/src/pipedal/ToobSpectrumAnalyzerView.tsx b/vite/src/pipedal/ToobSpectrumAnalyzerView.tsx index 103d530..269f958 100644 --- a/vite/src/pipedal/ToobSpectrumAnalyzerView.tsx +++ b/vite/src/pipedal/ToobSpectrumAnalyzerView.tsx @@ -21,14 +21,14 @@ import React from 'react'; import { Theme } from '@mui/material/styles'; import WithStyles from './WithStyles'; -import {createStyles} from './WithStyles'; +import { createStyles } from './WithStyles'; import { withStyles } from "tss-react/mui"; import IControlViewFactory from './IControlViewFactory'; import { PiPedalModelFactory, PiPedalModel } from "./PiPedalModel"; import { PedalboardItem } from './Pedalboard'; -import PluginControlView, { ControlGroup,ControlViewCustomization } from './PluginControlView'; +import PluginControlView, { ControlGroup, ControlViewCustomization } from './PluginControlView'; import ToobSpectrumResponseView from './ToobSpectrumResponseView'; @@ -48,12 +48,11 @@ interface ToobSpectrumAnalyzerState { const ToobSpectrumAnalyzerView = withStyles( - class extends React.Component - implements ControlViewCustomization - { + class extends React.Component + implements ControlViewCustomization { model: PiPedalModel; - customizationId: number = 1; + customizationId: number = 1; constructor(props: ToobSpectrumAnalyzerProps) { super(props); @@ -65,11 +64,10 @@ const ToobSpectrumAnalyzerView = return false; } - modifyControls(controls: (React.ReactNode| ControlGroup)[]): (React.ReactNode| ControlGroup)[] - { - controls.splice(0,0, - ( ) - ); + modifyControls(controls: (React.ReactNode | ControlGroup)[]): (React.ReactNode | ControlGroup)[] { + controls.splice(0, 0, + () + ); return controls; } render() { @@ -78,6 +76,9 @@ const ToobSpectrumAnalyzerView = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui={(instanceId: number, showModGui: boolean) => { }} + />); } }, diff --git a/vite/src/pipedal/ToobToneStackView.tsx b/vite/src/pipedal/ToobToneStackView.tsx index 055177a..bf7dfd7 100644 --- a/vite/src/pipedal/ToobToneStackView.tsx +++ b/vite/src/pipedal/ToobToneStackView.tsx @@ -21,14 +21,14 @@ import React from 'react'; import { Theme } from '@mui/material/styles'; import WithStyles from './WithStyles'; -import {createStyles} from './WithStyles'; +import { createStyles } from './WithStyles'; import { withStyles } from "tss-react/mui"; import IControlViewFactory from './IControlViewFactory'; -import { PiPedalModelFactory, PiPedalModel,ControlValueChangedHandle } from "./PiPedalModel"; +import { PiPedalModelFactory, PiPedalModel, ControlValueChangedHandle } from "./PiPedalModel"; import { PedalboardItem } from './Pedalboard'; -import PluginControlView, { ControlGroup,ControlViewCustomization } from './PluginControlView'; +import PluginControlView, { ControlGroup, ControlViewCustomization } from './PluginControlView'; import ToobFrequencyResponseView from './ToobFrequencyResponseView'; @@ -47,12 +47,11 @@ interface ToobToneStackState { const ToobToneStackView = withStyles( - class extends React.Component - implements ControlViewCustomization - { + class extends React.Component + implements ControlViewCustomization { model: PiPedalModel; - customizationId: number = 1; + customizationId: number = 1; constructor(props: ToobToneStackProps) { super(props); @@ -61,27 +60,24 @@ const ToobToneStackView = isBaxandall: this.IsBaxandall() } } - IsBaxandall() : boolean { + IsBaxandall(): boolean { return this.props.item.getControl("ampmodel").value === 2.0; } controlValueChangedHandle?: ControlValueChangedHandle; - componentDidMount() - { + componentDidMount() { this.controlValueChangedHandle = this.model.addControlValueChangeListener( this.props.instanceId, - (key,value) => { - if (key === "ampmodel") - { - this.setState({isBaxandall: value === 2.0}); + (key, value) => { + if (key === "ampmodel") { + this.setState({ isBaxandall: value === 2.0 }); } } ); } componentWillUnmount() { - if (this.controlValueChangedHandle) - { + if (this.controlValueChangedHandle) { this.model.removeControlValueChangeListener(this.controlValueChangedHandle); this.controlValueChangedHandle = undefined; } @@ -90,18 +86,16 @@ const ToobToneStackView = return false; } - modifyControls(controls: (React.ReactNode| ControlGroup)[]): (React.ReactNode| ControlGroup)[] - { - if (this.state.isBaxandall) - { - controls.splice(0,0, - ( ) - ); + modifyControls(controls: (React.ReactNode | ControlGroup)[]): (React.ReactNode | ControlGroup)[] { + if (this.state.isBaxandall) { + controls.splice(0, 0, + () + ); } else { - controls.splice(0,0, - ( ) - ); + controls.splice(0, 0, + () + ); } return controls; } @@ -111,6 +105,9 @@ const ToobToneStackView = item={this.props.item} customization={this} customizationId={this.customizationId} + showModGui={false} + onSetShowModGui={(instanceId: number, showModGui: boolean) => { }} + />); } }, From 818a08824ca25f2cc61d9b2f99bf5c7d9e772328 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Mon, 14 Jul 2025 18:13:09 -0400 Subject: [PATCH 03/18] Android Cilent Layout Issues --- CMakeLists.txt | 2 +- _includes/gallery.html | 2 +- docs/_includes/gallery.html | 2 +- src/main.cpp | 34 +-- todo.txt | 21 +- vite/index.html | 195 ++++++++++-------- vite/public/css/modGui.css | 1 + vite/src/pipedal/AutoZoom.tsx | 8 +- vite/src/pipedal/FilePropertyDialog.tsx | 2 +- vite/src/pipedal/FullScreenIME.tsx | 8 +- vite/src/pipedal/LoadPluginDialog.tsx | 14 +- vite/src/pipedal/MainPage.tsx | 18 +- vite/src/pipedal/MidiBindingView.tsx | 6 +- vite/src/pipedal/PiPedalModel.tsx | 9 + vite/src/pipedal/PluginControlView.tsx | 8 +- .../src/pipedal/ResizeResponsiveComponent.tsx | 12 +- vite/src/pipedal/SnapshotDialog.tsx | 2 +- vite/src/pipedal/SnapshotPanel.tsx | 8 +- vite/src/pipedal/SnapshotPropertiesDialog.tsx | 2 +- vite/src/pipedal/TextFieldEx.tsx | 2 +- vite/src/pipedal/UseWindowSize.tsx | 4 +- vite/src/pipedal/Utility.tsx | 6 +- vite/src/pipedal/VirtualKeyboardHandler.tsx | 2 +- vite/src/pipedal/WindowScale.tsx | 2 +- 24 files changed, 195 insertions(+), 175 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf21e66..efea7f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,7 +96,7 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "IoT guitar effect pedal for Raspberry Pi" set(CPACK_DEBIAN_PACKAGE_SECTION sound) set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION TRUE) -set(CPACK_DEBIAN_PACKAGE_DEPENDS "lv2-dev, authbind, curl, gpg, alsa-base| pipewire, alsa-utils" ) +set(CPACK_DEBIAN_PACKAGE_DEPENDS "lv2-dev, ffmpeg, authbind, curl, gpg, alsa-base| pipewire, alsa-utils" ) set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEBIAN_ARCHITECTURE}) set(CPACK_PACKAGING_INSTALL_PREFIX /usr) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) diff --git a/_includes/gallery.html b/_includes/gallery.html index 35a8db4..978ac2e 100644 --- a/_includes/gallery.html +++ b/_includes/gallery.html @@ -29,7 +29,7 @@ let galleryFrame = 0; let calculateWidth = function () { - width = Math.min(maxWidth, window.innerWidth * 0.8); + width = Math.min(maxWidth, document.documentElement.clientWidth * 0.8); height = width * aspectY / aspectX; frameWidth = width + borderWidth * 2; frameHeight = height + borderWidth * 2; diff --git a/docs/_includes/gallery.html b/docs/_includes/gallery.html index e224e83..d0dfefb 100644 --- a/docs/_includes/gallery.html +++ b/docs/_includes/gallery.html @@ -34,7 +34,7 @@ let galleryFrame = 0; let calculateWidth = function () { - width = Math.min(maxWidth, window.innerWidth * 0.8); + width = Math.min(maxWidth, document.documentElement.clientWidth * 0.8); height = width * aspectY / aspectX; frameWidth = width + borderWidth * 2; frameHeight = height + borderWidth * 2; diff --git a/src/main.cpp b/src/main.cpp index 12ead14..0665dcc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -82,27 +82,27 @@ static bool isJackServiceRunning() return std::filesystem::exists(path); } -#if ENABLE_BACKTRACE -void segvHandler(int sig) -{ - void *array[10]; +#if 0 && ENABLE_BACKTRACE +// void segvHandler(int sig) +// { +// void *array[10]; - // Get void*'s for all entries on the stack - size_t size; - size = backtrace(array, 10); +// // Get void*'s for all entries on the stack +// size_t size; +// size = backtrace(array, 10); - // Print out all the frames to stderr - const char *message = "Error: SEGV signal received.\n"; - auto _ = write(STDERR_FILENO, message, strlen(message)); +// // Print out all the frames to stderr +// const char *message = "Error: SEGV signal received.\n"; +// auto _ = write(STDERR_FILENO, message, strlen(message)); - backtrace_symbols_fd(array + 2, size - 2, STDERR_FILENO); - _exit(EXIT_FAILURE); -} +// backtrace_symbols_fd(array + 2, size - 2, STDERR_FILENO); +// _exit(EXIT_FAILURE); +// } -static void EnableBacktrace() -{ - signal(SIGSEGV, segvHandler); -} +// static void EnableBacktrace() +// { +// signal(SIGSEGV, segvHandler); +// } #endif static bool TryGetLogLevel(const std::string &strLogLevel, LogLevel *result) diff --git a/todo.txt b/todo.txt index c217866..2e6706f 100644 --- a/todo.txt +++ b/todo.txt @@ -1,22 +1,10 @@ +Persist and reconnect IP addresses in client. +Zeroconv crash assert. /var/pipedal/audio_uploads/ReverbImpulseFiles/ -Magic zoom. - -request cacheing not working. +Investigate if ((keyCode == KeyEvent.KEYCODE_BACK)) MOD ir uses some scheme to limit the minimum buffer size, which is not implemented in Pipedal. -MOD ir layout issues. - -MOD gui control should disable, not disappear. - -MOD ir font (cooper-hewitt) - -detect self-set control values to prevent weird jitter in mod ui levels. - -ZAMEq2 Low control not working. - - -Modgui view should be persistent/per-plugin Vu Meters, move rendering to background images, in order to reduce layout overhead. @@ -26,9 +14,6 @@ Remove FullScreenIME in PluginControlView.tsx Exactly one underrun per seek in Toob Player -Test autohotspot detection. - -Ellipsis on plugin Title check filetime conversion in gcc 12.2! (missing c++ 20 time conversion functions) AudioFiles.cpp fileTimeToInt64 diff --git a/vite/index.html b/vite/index.html index 68c9bd8..66a5daf 100644 --- a/vite/index.html +++ b/vite/index.html @@ -1,112 +1,133 @@ - + + - + - + - + PiPedal - - + + +
- + + + + diff --git a/vite/public/css/modGui.css b/vite/public/css/modGui.css index 44587c1..984aa13 100644 --- a/vite/public/css/modGui.css +++ b/vite/public/css/modGui.css @@ -40,6 +40,7 @@ } .mod-pedal { + touch-action: none; } .mod-pedal .mod-light { diff --git a/vite/src/pipedal/AutoZoom.tsx b/vite/src/pipedal/AutoZoom.tsx index 4f0589a..2914403 100644 --- a/vite/src/pipedal/AutoZoom.tsx +++ b/vite/src/pipedal/AutoZoom.tsx @@ -113,6 +113,7 @@ const AutoZoom = withStyles( buttonPadding: number ): Rect { + console.log("Zoom: " + clientRect.toString() + " content: " + contentWidth + "x" + contentHeight + " buttonPadding: " + buttonPadding); let rightButtonZoom = Math.min((clientRect.width - buttonPadding) / contentWidth, clientRect.height / contentHeight); let topButtonZoom = Math.min((clientRect.width - buttonPadding) / contentWidth, (clientRect.height - buttonPadding) / contentHeight); @@ -302,12 +303,13 @@ const AutoZoom = withStyles( render() { const classes = withStyles.getClasses(this.props); void classes; // suppress unused variable warning + const landscape = this.state.screenWidth > this.state.screenHeight; return (
{ this.setNormalRef(ref); }}>
{!this.props.showZoomed && this.props.children}
@@ -349,7 +351,9 @@ const AutoZoom = withStyles( { diff --git a/vite/src/pipedal/FilePropertyDialog.tsx b/vite/src/pipedal/FilePropertyDialog.tsx index b927a33..bca518f 100644 --- a/vite/src/pipedal/FilePropertyDialog.tsx +++ b/vite/src/pipedal/FilePropertyDialog.tsx @@ -246,7 +246,7 @@ export default withStyles( this.requestScroll = true; } getFullScreen() { - return window.innerWidth < 450 || window.innerHeight < 450; + return document.documentElement.clientWidth < 450 || document.documentElement.clientHeight < 450; } hProgressTimeout: number | null = null; diff --git a/vite/src/pipedal/FullScreenIME.tsx b/vite/src/pipedal/FullScreenIME.tsx index a9b3930..c762cea 100644 --- a/vite/src/pipedal/FullScreenIME.tsx +++ b/vite/src/pipedal/FullScreenIME.tsx @@ -99,14 +99,14 @@ const FullScreenIME = // because we can't determine the initial window heigth anymore. if (this.currentWidth === undefined) { - this.currentWidth = window.innerWidth; + this.currentWidth = document.documentElement.clientWidth; } - if (this.currentWidth !== window.innerWidth) + if (this.currentWidth !== document.documentElement.clientWidth) { this.validateInput(true); } // eslint-disable-next-line no-restricted-globals - if (window.innerHeight >= this.props.initialHeight) { + if (document.documentElement.clientHeight >= this.props.initialHeight) { this.validateInput(true); } } @@ -194,7 +194,7 @@ const FullScreenIME = this.currentWidth = undefined; return (
); } - this.currentWidth = window.innerWidth; + this.currentWidth = document.documentElement.clientWidth; this.uiControl = control; diff --git a/vite/src/pipedal/LoadPluginDialog.tsx b/vite/src/pipedal/LoadPluginDialog.tsx index d3aed6f..6661157 100644 --- a/vite/src/pipedal/LoadPluginDialog.tsx +++ b/vite/src/pipedal/LoadPluginDialog.tsx @@ -209,10 +209,10 @@ export const LoadPluginDialog = search_string: "", search_collapsed: true, filterType: filterType_, - client_width: window.innerWidth, - client_height: window.innerHeight, - grid_cell_width: this.getCellWidth(window.innerWidth), - grid_cell_columns: this.getCellColumns(window.innerWidth), + client_width: document.documentElement.clientWidth, + client_height: document.documentElement.clientHeight, + grid_cell_width: this.getCellWidth(document.documentElement.clientWidth), + grid_cell_columns: this.getCellColumns(document.documentElement.clientWidth), minimumItemWidth: props.minimumItemWidth ? props.minimumItemWidth : 220, favoritesList: this.model.favorites.get(), uiPlugins: this.model.ui_plugins.get() @@ -276,9 +276,9 @@ export const LoadPluginDialog = updateWindowSize() { this.setState({ - client_width: window.innerWidth, - client_height: window.innerHeight, - grid_cell_width: this.getCellWidth(window.innerWidth), + client_width: document.documentElement.clientWidth, + client_height: document.documentElement.clientHeight, + grid_cell_width: this.getCellWidth(document.documentElement.clientWidth), grid_cell_columns: this.getCellColumns(window.innerWidth) }); } diff --git a/vite/src/pipedal/MainPage.tsx b/vite/src/pipedal/MainPage.tsx index 654006f..8d3f3e9 100644 --- a/vite/src/pipedal/MainPage.tsx +++ b/vite/src/pipedal/MainPage.tsx @@ -82,7 +82,7 @@ const styles = ({ palette }: Theme) => { }), pedalboardScroll: css({ position: "relative", width: "100%", - flex: "0 0 auto", overflow: "auto", maxHeight: 220 + flex: "0 0 auto", overflow: "auto", maxHeight: 220, }), pedalboardScrollSmall: css({ position: "relative", width: "100%", @@ -100,7 +100,7 @@ const styles = ({ palette }: Theme) => { flex: "0 0 64px", width: "100%", paddingLeft: 24, paddingRight: 16, paddingBottom: 16 }), controlContent: css({ - flex: "1 1 auto", width: "100%", overflowY: "hidden", minHeight: 300 + flex: "1 1 auto", width: "100%", overflowY: "hidden", minHeight: 185 }), controlContentSmall: css({ flex: "0 0 162px", width: "100%", height: 162, overflowY: "hidden", @@ -145,7 +145,7 @@ export const MainPage = model: PiPedalModel; getSplitToolbar() { - return this.windowSize.width < SPLIT_CONTROLBAR_THRESHHOLD; + return this.windowSize.width < SPLIT_CONTROLBAR_THRESHHOLD && this.windowSize.height >= HORIZONTAL_CONTROL_SCROLL_HEIGHT_BREAK; } getDisplayAuthor() { if (this.getSplitToolbar()) { @@ -621,12 +621,12 @@ export const MainPage =
- +
diff --git a/vite/src/pipedal/MidiBindingView.tsx b/vite/src/pipedal/MidiBindingView.tsx index ad4e554..861cfb2 100644 --- a/vite/src/pipedal/MidiBindingView.tsx +++ b/vite/src/pipedal/MidiBindingView.tsx @@ -58,13 +58,13 @@ export enum MidiControlType { } export function getMidiControlType(uiPlugin: UiPlugin | undefined, symbol: string): MidiControlType { + if (symbol === "__bypass") { + return MidiControlType.Toggle; + } if (!uiPlugin) return MidiControlType.None; let port = uiPlugin.getControl(symbol); if (!port) return MidiControlType.None; - if (symbol === "__bypass") { - return MidiControlType.Toggle; - } if (!port) return MidiControlType.None; diff --git a/vite/src/pipedal/PiPedalModel.tsx b/vite/src/pipedal/PiPedalModel.tsx index 0fda9f3..56eafa0 100644 --- a/vite/src/pipedal/PiPedalModel.tsx +++ b/vite/src/pipedal/PiPedalModel.tsx @@ -609,6 +609,13 @@ export class PiPedalModel //implements PiPedalModel let message = header.message; if (message === "onControlChanged") { let controlChangedBody = body as ControlChangedBody; + if (body.clientId !== this.clientId) { + this.lastControlMessageWasSentbyMe = false; + } + if (this.lastControlMessageWasSentbyMe) { + return; // shortcut! + } + this._setPedalboardControlValue( controlChangedBody.instanceId, controlChangedBody.symbol, @@ -1529,6 +1536,7 @@ export class PiPedalModel //implements PiPedalModel } } + private lastControlMessageWasSentbyMe = false; private _setPedalboardControlValue(instanceId: number, key: string, value: number, notifyServer: boolean): void { let pedalboard = this.pedalboard.get(); @@ -1547,6 +1555,7 @@ export class PiPedalModel //implements PiPedalModel if (changed) { if (notifyServer) { + this.lastControlMessageWasSentbyMe = true; this._setServerControl("setControl", instanceId, key, value); } this.setModelPedalboard(newPedalboard); diff --git a/vite/src/pipedal/PluginControlView.tsx b/vite/src/pipedal/PluginControlView.tsx index 976b9cd..2fc820f 100644 --- a/vite/src/pipedal/PluginControlView.tsx +++ b/vite/src/pipedal/PluginControlView.tsx @@ -146,9 +146,9 @@ const styles = (theme: Theme) => createStyles({ flexDirection: "row", flexWrap: "nowrap", paddingTop: "0px", - paddingBottom: "0px", + paddingBottom: "96px", overflowX: "hidden", - overflowY: "auto" + overflowY: "auto", }), vuMeterL: css({ position: "absolute", @@ -175,7 +175,7 @@ const styles = (theme: Theme) => createStyles({ right: 0, top: 0, paddingRight: 6, paddingLeft: 12, - paddingBottom: 12, // cover bottom line of a portgroup in landscape. + paddingBottom: 13, // cover bottom line of a portgroup in landscape. background: theme.mainBackground, zIndex: 3 @@ -448,7 +448,7 @@ const PluginControlView = imeUiControl: uiControl, imeValue: value, imeCaption: uiControl.name, - imeInitialHeight: window.innerHeight + imeInitialHeight: document.documentElement.clientHeight }); } diff --git a/vite/src/pipedal/ResizeResponsiveComponent.tsx b/vite/src/pipedal/ResizeResponsiveComponent.tsx index a46f6e8..726b352 100644 --- a/vite/src/pipedal/ResizeResponsiveComponent.tsx +++ b/vite/src/pipedal/ResizeResponsiveComponent.tsx @@ -24,8 +24,8 @@ class ResizeResponsiveComponent extends React.Component constructor(props: PROPS) { super(props); this.handleWindowResize = this.handleWindowResize.bind(this); - this.windowSize.width = window.innerWidth; - this.windowSize.height = window.innerHeight; + this.windowSize.width = document.documentElement.clientWidth; + this.windowSize.height = document.documentElement.clientHeight; } windowSize: {width: number,height:number} = {width: 1280, height: 1024}; @@ -34,8 +34,8 @@ class ResizeResponsiveComponent extends React.Component } handleWindowResize() { - let width_ = window.innerWidth; - let height_ = window.innerHeight; + let width_ = document.documentElement.clientWidth; + let height_ = document.documentElement.clientHeight; if (width_ !== this.windowSize.width || height_ !== this.windowSize.height) { this.windowSize = {width: width_, height: height_}; @@ -49,8 +49,8 @@ class ResizeResponsiveComponent extends React.Component componentDidMount() { window.addEventListener('resize', this.handleWindowResize); - let width_ = window.innerWidth; - let height_ = window.innerHeight; + let width_ = document.documentElement.clientWidth; + let height_ = document.documentElement.clientHeight; this.windowSize = {width: width_, height: height_}; this.onWindowSizeChanged(this.windowSize.width,this.windowSize.height); } diff --git a/vite/src/pipedal/SnapshotDialog.tsx b/vite/src/pipedal/SnapshotDialog.tsx index 765de56..1bea229 100644 --- a/vite/src/pipedal/SnapshotDialog.tsx +++ b/vite/src/pipedal/SnapshotDialog.tsx @@ -89,7 +89,7 @@ export default class SnapshotDialog extends ResizeResponsiveComponent 700 && window.innerWidth > 1000; + return document.documentElement.clientHeight > 700 && document.documentElement.clientWidth > 1000; } onSaveSnapshot(index: number) { let snapshot = this.state.snapshots[index]; diff --git a/vite/src/pipedal/SnapshotPropertiesDialog.tsx b/vite/src/pipedal/SnapshotPropertiesDialog.tsx index 9296218..c69128a 100644 --- a/vite/src/pipedal/SnapshotPropertiesDialog.tsx +++ b/vite/src/pipedal/SnapshotPropertiesDialog.tsx @@ -64,7 +64,7 @@ export default class SnapshotPropertiesDialog extends ResizeResponsiveComponent< this.state = this.stateFromProps(); } getCompactVertical() { - return window.innerHeight < 450; + return document.documentElement.clientHeight < 450; } stateFromProps() { let color = this.props.color; diff --git a/vite/src/pipedal/TextFieldEx.tsx b/vite/src/pipedal/TextFieldEx.tsx index 9facc9d..e109e59 100644 --- a/vite/src/pipedal/TextFieldEx.tsx +++ b/vite/src/pipedal/TextFieldEx.tsx @@ -52,7 +52,7 @@ const TextFieldEx = withStyles(styles, { withTheme: true })( } private getUseImeMask() { - return this.state.androidHosted && window.innerHeight < 4500; + return this.state.androidHosted && document.documentElement.clientHeight < 4500; } private originalInputHref: HTMLInputElement | undefined = undefined; diff --git a/vite/src/pipedal/UseWindowSize.tsx b/vite/src/pipedal/UseWindowSize.tsx index e14c206..7fa73f3 100644 --- a/vite/src/pipedal/UseWindowSize.tsx +++ b/vite/src/pipedal/UseWindowSize.tsx @@ -25,8 +25,8 @@ import { useState, useEffect } from 'react'; const getSize = () => { return { - width: window.innerWidth, - height: window.innerHeight, + width: document.documentElement.clientWidth, + height: document.documentElement.clientHeight, }; }; diff --git a/vite/src/pipedal/Utility.tsx b/vite/src/pipedal/Utility.tsx index 50a8d37..47919e0 100644 --- a/vite/src/pipedal/Utility.tsx +++ b/vite/src/pipedal/Utility.tsx @@ -39,13 +39,13 @@ export interface ControlEntry { const Utility = class { static isLandscape(): boolean { - return window.innerWidth > window.innerHeight; + return document.documentElement.clientWidth > document.documentElement.clientHeight; } static needsZoomedControls(): boolean { if (!this.isLandscape()) return false; - if (window.innerHeight > 500) return false; - if (window.innerHeight > 300) return true; + if (document.documentElement.clientHeight > 500) return false; + if (document.documentElement.clientHeight > 300) return true; return (('ontouchstart' in window) && ((navigator.maxTouchPoints??0) > 0) ); } diff --git a/vite/src/pipedal/VirtualKeyboardHandler.tsx b/vite/src/pipedal/VirtualKeyboardHandler.tsx index cb8689f..0d169ab 100644 --- a/vite/src/pipedal/VirtualKeyboardHandler.tsx +++ b/vite/src/pipedal/VirtualKeyboardHandler.tsx @@ -51,7 +51,7 @@ export default class VirtualKeyboardHandler enabled = false; } this.enabled = enabled; - this.originalPosition = new Rectangle(0,0, window.innerWidth,window.innerHeight) + this.originalPosition = new Rectangle(0,0, document.documentElement.clientWidth,document.documentElement.clientHeight) } private handleVisualViewportResize(event: Event): void { const viewport = event.target as VisualViewport; diff --git a/vite/src/pipedal/WindowScale.tsx b/vite/src/pipedal/WindowScale.tsx index aac1d4f..dd708da 100644 --- a/vite/src/pipedal/WindowScale.tsx +++ b/vite/src/pipedal/WindowScale.tsx @@ -15,7 +15,7 @@ export function getValidWindowScales(): number[] return [1.0]; } let result: number[] = []; - let minDimension = Math.min(window.innerHeight,window.innerWidth); + let minDimension = Math.min(document.documentElement.clientHeight,document.documentElement.clientWidth); for (let validScale of validScales) { From 9b6798134d1cf53b61c1c6a4b4186763e965c2a3 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 00:06:17 -0400 Subject: [PATCH 04/18] Screen orientation, Keep Display on (in Android Client) --- artifacts/FavIcon.svgz | Bin 0 -> 391086 bytes docs/_config.yml | 1 + src/main.cpp | 1 + vite/index.html | 32 ++--- vite/src/pipedal/AndroidHost.tsx | 22 +++- vite/src/pipedal/AppThemed.tsx | 2 +- vite/src/pipedal/FilePropertyDialog.tsx | 83 +++++++++---- vite/src/pipedal/GuitarMlHelpDialog.tsx | 76 ++++++++++++ vite/src/pipedal/JackStatusView.tsx | 4 +- vite/src/pipedal/LinkEx.tsx | 52 ++++++++ vite/src/pipedal/PerformanceView.tsx | 22 +++- vite/src/pipedal/PiPedalModel.tsx | 93 ++++++++++++++ vite/src/pipedal/ScreenOrientation.tsx | 31 +++++ .../pipedal/SelectScreenOrientationDialog.tsx | 74 +++++++++++ vite/src/pipedal/SettingsDialog.tsx | 117 +++++++++++++++++- 15 files changed, 559 insertions(+), 51 deletions(-) create mode 100644 artifacts/FavIcon.svgz create mode 100644 vite/src/pipedal/GuitarMlHelpDialog.tsx create mode 100644 vite/src/pipedal/LinkEx.tsx create mode 100644 vite/src/pipedal/ScreenOrientation.tsx create mode 100644 vite/src/pipedal/SelectScreenOrientationDialog.tsx diff --git a/artifacts/FavIcon.svgz b/artifacts/FavIcon.svgz new file mode 100644 index 0000000000000000000000000000000000000000..700e69e4b9f26b3a1ad22e47eba3d970761ecccd GIT binary patch literal 391086 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%0Acwq6xnkdx%D63#FpFNjwz{1f|YhRVWzde%!wp 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 z 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

(pYCOj1V6fXLOG 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

OF$*mE%9Ds-&+Bay248$U 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

&FRd;^8&qOsfJYp&wZ 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 P`0IZIdxccDkq!s|L~;LB literal 0 HcmV?d00001 diff --git a/docs/_config.yml b/docs/_config.yml index 5bd324b..caf2865 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -36,6 +36,7 @@ header_pages: theme: minima plugins: - jekyll-feed + - jekyll-seo-tag include: - .well-known diff --git a/src/main.cpp b/src/main.cpp index 0665dcc..3e38c95 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -313,6 +313,7 @@ int main(int argc, char *argv[]) sigset_t sigSet; int s; sigemptyset(&sigSet); + sigaddset(&sigSet, SIGINT); sigaddset(&sigSet, SIGTERM); sigaddset(&sigSet, SIGUSR1); diff --git a/vite/index.html b/vite/index.html index 66a5daf..3a6c884 100644 --- a/vite/index.html +++ b/vite/index.html @@ -100,23 +100,23 @@ // Run the function when the window loads window.addEventListener('load', removeHashOnLoad); - - function getFocusedElementBounds() { - let focusedElement = document.activeElement; - if (focusedElement && focusedElement !== document.body) { - let rect = focusedElement.getBoundingClientRect(); - return { - top: rect.top, - left: rect.left, - right: rect.right, - bottom: rect.bottom, - windowWidth: window.innerWidth, - windowHeight: window.innerHeight, - }; - } - return null; - } + // used by Android client to perform focus scrolling on keyboard open. + // function getFocusedElementBounds() { + // let focusedElement = document.activeElement; + // if (focusedElement && focusedElement !== document.body) { + // let rect = focusedElement.getBoundingClientRect(); + // return { + // top: rect.top, + // left: rect.left, + // right: rect.right, + // bottom: rect.bottom, + // windowWidth: window.innerWidth, + // windowHeight: window.innerHeight, + // }; + // } + // return null; + // } diff --git a/vite/src/pipedal/AndroidHost.tsx b/vite/src/pipedal/AndroidHost.tsx index 5fe7aa4..18556ac 100644 --- a/vite/src/pipedal/AndroidHost.tsx +++ b/vite/src/pipedal/AndroidHost.tsx @@ -32,6 +32,11 @@ export interface AndroidHostInterface { setThemePreference(theme: number): void; getThemePreference(): number; isDarkTheme?: ()=> boolean; + setServerVersion(serverVersion: string) : void; + setKeepScreenOn(keepScreenOn: boolean): void; + getKeepScreenOn(): boolean; + setScreenOrientation(orientation: number): void; + getScreenOrientation(): number; }; export class FakeAndroidHost implements AndroidHostInterface @@ -40,7 +45,7 @@ export class FakeAndroidHost implements AndroidHostInterface return true; } getHostVersion(): string { - return "Fake Android 1.0"; + return "Fake Host: v1.1.26"; } chooseNewDevice(): void { @@ -64,6 +69,21 @@ export class FakeAndroidHost implements AndroidHostInterface getThemePreference(): number { return this.theme; } + setServerVersion(_serverVersion: string): void { + // No-op for fake host + } + + private keepScreenOn = false; + setKeepScreenOn(keepScreenOn: boolean): void {this.keepScreenOn = keepScreenOn; }; + getKeepScreenOn(): boolean { return this.keepScreenOn; }; + + private screenOrientation = 0; + setScreenOrientation(_orientation: number): void { + this.screenOrientation = _orientation; + } + getScreenOrientation(): number { + return this.screenOrientation; + } } export function isAndroidHosted(): boolean { return ((window as any).AndroidHost as AndroidHostInterface) !== undefined; diff --git a/vite/src/pipedal/AppThemed.tsx b/vite/src/pipedal/AppThemed.tsx index f7e1d1e..42d7347 100644 --- a/vite/src/pipedal/AppThemed.tsx +++ b/vite/src/pipedal/AppThemed.tsx @@ -1000,7 +1000,7 @@ export - + diff --git a/vite/src/pipedal/FilePropertyDialog.tsx b/vite/src/pipedal/FilePropertyDialog.tsx index bca518f..bd789e4 100644 --- a/vite/src/pipedal/FilePropertyDialog.tsx +++ b/vite/src/pipedal/FilePropertyDialog.tsx @@ -23,8 +23,9 @@ import { createStyles } from './WithStyles'; // import Tone3000Dialog from './Tone3000Dialog'; import Tone3000HelpDialog from './Tone3000HelpDialog'; +import GuitarMLHelpDialog from './GuitarMlHelpDialog'; import HelpOutlineIcon from '@mui/icons-material/HelpOutline'; -import Link from '@mui/material/Link'; +import LinkEx from './LinkEx'; import DraggableButtonBase from './DraggableButtonBase'; import CloseIcon from '@mui/icons-material/Close'; import { Theme } from '@mui/material/styles'; @@ -69,6 +70,7 @@ import { getAlbumArtUri, getTrackTitle } from './AudioFileMetadata'; const ToobNamModelFileUrl = "http://two-play.com/plugins/toob-nam#modelFile"; +const ToobMlModelFileUrl = "http://two-play.com/plugins/toob-ml#modelFile"; const AUTOSCROLL_TICK_DELAY = 30; const AUTOSCROLL_THRESHOLD = 48; @@ -168,7 +170,8 @@ export interface FilePropertyDialogState { multiSelect: boolean, selectedFiles: string[], //openTone3000Dialog: boolean, - openTone3000Help: boolean + openTone3000Help: boolean, + openGuitarMlHelp: boolean }; @@ -241,7 +244,8 @@ export default withStyles( multiSelect: false, selectedFiles: [], //openTone3000Dialog: false, - openTone3000Help: false + openTone3000Help: false, + openGuitarMlHelp: false }; this.requestScroll = true; } @@ -1057,6 +1061,15 @@ export default withStyles( // } + handleGuitarMlHelp(e: React.MouseEvent) { + e.stopPropagation(); + e.preventDefault(); + + this.setState({ openGuitarMlHelp: true }); + + } + + handleTone3000Help(e: React.MouseEvent) { e.stopPropagation(); e.preventDefault(); @@ -1068,6 +1081,7 @@ export default withStyles( render() { const isTracksDirectory = this.isTracksDirectory(); const isToobNamModelFile = this.props.fileProperty.patchProperty === ToobNamModelFileUrl; + const isToobMLModelFile = this.props.fileProperty.patchProperty === ToobMlModelFileUrl; const classes = withStyles.getClasses(this.props); let columnWidth = this.state.columnWidth; @@ -1487,26 +1501,46 @@ export default withStyles( {(!this.state.reordering && !this.state.multiSelect) && ( <> - + +

+ {isToobNamModelFile && ( +
+ + Download model files from TONE3000 + + { this.handleTone3000Help(e); }} aria-label="help" edge="end" color="inherit" style={{ opacity: 0.6, marginLeft: 8 }} + > + + +
+ + )} + {isToobMLModelFile && ( +
+ + Download model files from GuitarML + + { this.handleGuitarMlHelp(e); }} aria-label="help" edge="end" color="inherit" style={{ opacity: 0.6, marginLeft: 8 }} + > + + +
+ + )} + + {this.state.windowWidth > 500 ? (
- {isToobNamModelFile && ( -
- - Download model files from TONE3000 - - { this.handleTone3000Help(e); }} aria-label="help" edge="end" color="inherit" style={{ opacity: 0.6, marginLeft: 8 }} - > - - -
- - )}
)} +
)} @@ -1702,6 +1737,12 @@ export default withStyles( onClose={() => this.setState({ openTone3000Help: false })} /> )} + {this.state.openGuitarMlHelp && ( + this.setState({ openGuitarMlHelp: false })} + /> + )} ); } diff --git a/vite/src/pipedal/GuitarMlHelpDialog.tsx b/vite/src/pipedal/GuitarMlHelpDialog.tsx new file mode 100644 index 0000000..957575a --- /dev/null +++ b/vite/src/pipedal/GuitarMlHelpDialog.tsx @@ -0,0 +1,76 @@ +import DialogEx from "./DialogEx"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import Toolbar from "@mui/material/Toolbar"; +import IconButtonEx from "./IconButtonEx"; +import ArrowBackIcon from "@mui/icons-material/ArrowBack"; +import Typography from "@mui/material/Typography"; +import Link from "@mui/material/Link"; + + + +function GuitarMlHelpDialog(props: { + open: boolean; + onClose: () => void; +}) { + const { open, onClose } = props; + return ( + { onClose(); }} + onClose={() => { onClose(); }} + open={open}> + + + + { onClose(); }} + > + + + + + TONE3000 Help + + + + + +
+
+
+ + The GuitarML Tone Library Project provides + a substantial collection of high-quality neural amp models for use in plugins that use the ML + model file format. + + + To use GuitarML models with TooB ML, you must first download the collection of models from the Guitar ML website + by clicking on the link. This should download a file named "Proteus_Tone_Packs.zip" into your browser's Downloads directory. + You must then upload the downloaded zip file, found in your browser's Download directory to the + Pipedal server using the Upload button in PiPedal's file browser dialog. + PiPedal automatically extracts bundles of model files from zip archives, so manual extraction is unnecessary. + + + Please consider sponsoring the GuitarML project in order to support the ongoing development of the Tone Library. + +
+
+
+ + + + + ); +} +export default GuitarMlHelpDialog; \ No newline at end of file diff --git a/vite/src/pipedal/JackStatusView.tsx b/vite/src/pipedal/JackStatusView.tsx index b47d96a..e8530a9 100644 --- a/vite/src/pipedal/JackStatusView.tsx +++ b/vite/src/pipedal/JackStatusView.tsx @@ -70,9 +70,9 @@ export default class JackStatusView extends React.Component {JackHostStatus.getDisplayView("",this.state.jackStatus) }
diff --git a/vite/src/pipedal/LinkEx.tsx b/vite/src/pipedal/LinkEx.tsx new file mode 100644 index 0000000..6b82c4d --- /dev/null +++ b/vite/src/pipedal/LinkEx.tsx @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import Link, {LinkProps} from '@mui/material/Link'; +import {PiPedalModel,PiPedalModelFactory} from './PiPedalModel'; + +export interface LinkExProps extends LinkProps { + +} +function LinkEx(props: LinkExProps) { + const { href, ...rest } = props; + + function handleClick(event: React.MouseEvent) { + const model:PiPedalModel = PiPedalModelFactory.getInstance(); + + // Prevent default behavior if needed + if (model.isAndroidHosted()) { + model.androidHost?.launchExternalUrl(href as string); + } else { + window.open(href as string, '_blank', 'noopener,noreferrer'); + } + event.preventDefault(); + event.stopPropagation(); + } + return ( + )=>{ handleClick(e); }} component="span" + {...rest} /> + + ) +} + +export default LinkEx; \ No newline at end of file diff --git a/vite/src/pipedal/PerformanceView.tsx b/vite/src/pipedal/PerformanceView.tsx index db346c1..c05142b 100644 --- a/vite/src/pipedal/PerformanceView.tsx +++ b/vite/src/pipedal/PerformanceView.tsx @@ -79,6 +79,7 @@ interface PerformanceViewState { presets: PresetIndex; banks: BankIndex; showSnapshotEditor: boolean; + showStatusMonitor: boolean; snapshotEditorIndex: number; presetModified: boolean; } @@ -100,15 +101,24 @@ export const PerformanceView = banks: this.model.banks.get(), wrapSelects: false, showSnapshotEditor: false, + showStatusMonitor: this.model.showStatusMonitor.get(), snapshotEditorIndex: 0, presetModified: this.model.presetChanged.get() }; this.onPresetsChanged = this.onPresetsChanged.bind(this); this.onBanksChanged = this.onBanksChanged.bind(this); this.onPresetChangedChanged = this.onPresetChangedChanged.bind(this); + this.showStatusMonitorHandler = this.showStatusMonitorHandler.bind(this); } + + showStatusMonitorHandler() { + this.setState({ + showStatusMonitor: this.model.showStatusMonitor.get() + }); + } + getTag() { return "performView"} isOpen() { return this.props.open } onDialogStackClose() { @@ -156,6 +166,8 @@ export const PerformanceView = this.model.presets.addOnChangedHandler(this.onPresetsChanged); this.model.banks.addOnChangedHandler(this.onBanksChanged); this.model.presetChanged.addOnChangedHandler(this.onPresetChangedChanged) + this.model.showStatusMonitor.addOnChangedHandler(this.showStatusMonitorHandler); + this.setState({ presets: this.model.presets.get(), banks: this.model.banks.get(), @@ -173,6 +185,8 @@ export const PerformanceView = this.model.presetChanged.removeOnChangedHandler(this.onPresetChangedChanged) this.model.presets.removeOnChangedHandler(this.onPresetsChanged); this.model.banks.removeOnChangedHandler(this.onBanksChanged); + this.model.banks.removeOnChangedHandler(this.showStatusMonitorHandler); + this.mounted = false; this.updateHooks(); @@ -393,10 +407,10 @@ export const PerformanceView = { return this.handleOnEdit(index); }} />
- - {!this.state.showSnapshotEditor && ( - ) - } + + {!this.state.showSnapshotEditor && this.state.showStatusMonitor && ( + + )}
{this.state.showSnapshotEditor && ( = 0) { + this.hostName = hostVersion.substring(0, pos).trim(); + remainder = hostVersion.substring(pos + 1).trim(); + } else { + this.hostName = "Unknown Host"; + remainder = "v0.0.0"; + } + + const args = remainder.split(","); // make make provisions for more. + if (args.length >= 1) + { + let versionString = args[0].trim(); + if (versionString.startsWith('v')) { + versionString = versionString.substring(1).trim(); + } + let releaseTypePos = versionString.indexOf("-"); + if (releaseTypePos >= 0) { + this.releaseType = versionString.substring(releaseTypePos + 1).trim(); + versionString = versionString.substring(0, releaseTypePos).trim(); + } + else { + this.releaseType = "Release"; + } + + const parts = args[0].split("."); + if (parts.length >= 3) { + this.majorVersion = parseInt(parts[0]); + this.minorVersion = parseInt(parts[1]); + this.buildNumber = parseInt(parts[2]); + } + } + } + lessThan(major: number, minor: number, build: number): boolean { + if (this.majorVersion < major) return true; + if (this.majorVersion > major) return false; + if (this.minorVersion < minor) return true; + if (this.minorVersion > minor) return false; + return this.buildNumber < build; + } + versionString: string = ""; + hostName: string = ""; + releaseType: string = ""; + majorVersion: number = 0; + minorVersion: number = 0; + buildNumber: number = 0; +} export type PedalboardItemEnabledChangeCallback = (instanceId: number, isEnabled: boolean) => void; interface PedalboardItemEnabledChangeItem { handle: number; @@ -440,6 +494,12 @@ export class PiPedalModel //implements PiPedalModel hasTone3000Auth: ObservableProperty = new ObservableProperty(false); + canKeepScreenOn: boolean = false; + keepScreenOn: ObservableProperty = new ObservableProperty(false); + + canSetScreenOrientation: boolean = false; + screenOrientation: ObservableProperty = new ObservableProperty(ScreenOrientation.SystemDefault); + hasWifiDevice: ObservableProperty = new ObservableProperty(false); onSnapshotModified: ObservableEvent = new ObservableEvent(); @@ -504,6 +564,7 @@ export class PiPedalModel //implements PiPedalModel } androidHost?: AndroidHostInterface; + hostVersion?: HostVersion; constructor() { this.androidHost = (window as any).AndroidHost as AndroidHostInterface; @@ -1295,6 +1356,17 @@ export class PiPedalModel //implements PiPedalModel .then((succeeded) => { if (succeeded) { this.state.set(State.Ready); + if (this.androidHost) { + this.hostVersion = new HostVersion(this.androidHost.getHostVersion()); + if (!this.hostVersion.lessThan(1,1,16)) + { + this.androidHost.setServerVersion(this.serverVersion?.serverVersion??""); + this.canKeepScreenOn = true; + this.keepScreenOn.set(this.androidHost.getKeepScreenOn()) + this.canSetScreenOrientation = true; + this.screenOrientation.set(this.androidHost.getScreenOrientation()) + } + } } }) .catch((error) => { @@ -3412,6 +3484,27 @@ export class PiPedalModel //implements PiPedalModel return false; } + setKeepScreenOn(keepScreenOn: boolean): void { + if (this.canKeepScreenOn) { + this.keepScreenOn.set(keepScreenOn); + if (this.androidHost) { + this.androidHost.setKeepScreenOn(keepScreenOn); + } + } + } + getKeepScreenOn(): boolean { + return this.keepScreenOn.get(); + } + + getScreenOrientation(): ScreenOrientation { + return this.screenOrientation.get(); + } + setScreenOrientation(value: ScreenOrientation) { + if (this.canSetScreenOrientation) { + this.screenOrientation.set(value); + this.androidHost?.setScreenOrientation(value as number); + } + } }; let instance: PiPedalModel | undefined = undefined; diff --git a/vite/src/pipedal/ScreenOrientation.tsx b/vite/src/pipedal/ScreenOrientation.tsx new file mode 100644 index 0000000..05f3465 --- /dev/null +++ b/vite/src/pipedal/ScreenOrientation.tsx @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2025 Robin E. R. Davies + * All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +enum ScreenOrientation { + // values must match Pipedal Remote ScreenOrientation.java + SystemDefault = 0, + Landscape = 1, + Portrait = 2 +} + +export default ScreenOrientation; \ No newline at end of file diff --git a/vite/src/pipedal/SelectScreenOrientationDialog.tsx b/vite/src/pipedal/SelectScreenOrientationDialog.tsx new file mode 100644 index 0000000..6a002bf --- /dev/null +++ b/vite/src/pipedal/SelectScreenOrientationDialog.tsx @@ -0,0 +1,74 @@ +// Copyright (c) 2022 Robin Davies +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import List from '@mui/material/List'; +import ListItemText from '@mui/material/ListItemText'; +import DialogEx from './DialogEx'; + +import { ListItemButton } from '@mui/material'; +import ScreenOrientation from './ScreenOrientation'; + + + +export interface SelectScreenOrientationDialogProps { + open: boolean; + screenOrientation: ScreenOrientation; + onClose: (screenOrientation: ScreenOrientation | null) => void; +} + + +function SelectScreenOrientationDialog(props: SelectScreenOrientationDialogProps) { + //const classes = useStyles(); + const { onClose, screenOrientation, open } = props; + + const handleCancel = () => { + onClose(null); + } + const handleOk = (value: ScreenOrientation) => { + onClose(value); + }; + + const handleListItemClick = (value: ScreenOrientation) => { + handleOk(value); + }; + + return ( + { }} + > + + + handleListItemClick(ScreenOrientation.SystemDefault)} key={"0"} + selected={screenOrientation === ScreenOrientation.SystemDefault} > + + + handleListItemClick(ScreenOrientation.Portrait)} key={"1"} + selected={screenOrientation === ScreenOrientation.Portrait} > + + + handleListItemClick(ScreenOrientation.Landscape)} key={"2"} + selected={screenOrientation === ScreenOrientation.Landscape} > + + + + + ); +} + +export default SelectScreenOrientationDialog; diff --git a/vite/src/pipedal/SettingsDialog.tsx b/vite/src/pipedal/SettingsDialog.tsx index aa51806..cef8440 100644 --- a/vite/src/pipedal/SettingsDialog.tsx +++ b/vite/src/pipedal/SettingsDialog.tsx @@ -46,10 +46,10 @@ import DialogEx from './DialogEx' import GovernorSettings from './GovernorSettings'; import SystemMidiBindingsDialog from './SystemMidiBindingsDialog'; import SelectThemeDialog from './SelectThemeDialog'; -import {AlsaSequencerConfiguration} from './AlsaSequencer'; +import { AlsaSequencerConfiguration } from './AlsaSequencer'; import Slide, { SlideProps } from '@mui/material/Slide'; -import {createStyles} from './WithStyles'; +import { createStyles } from './WithStyles'; import { Theme } from '@mui/material/styles'; import { withStyles } from "tss-react/mui"; @@ -57,6 +57,8 @@ import WithStyles from './WithStyles'; import { canScaleWindow, getWindowScaleOptions, getWindowScaleText, setWindowScale, getWindowScale } from './WindowScale'; import OptionsDialog from './OptionsDialog'; import { css } from '@emotion/react'; +import ScreenOrientation from './ScreenOrientation'; +import SelectScreenOrientationDialog from './SelectScreenOrientationDialog'; interface SettingsDialogProps extends WithStyles { @@ -74,6 +76,8 @@ interface SettingsDialogState { jackSettings: JackChannelSelection; jackServerSettings: JackServerSettings; alsaSequencerConfiguration: AlsaSequencerConfiguration; + keepScreenOn: boolean; + screenOrientation: ScreenOrientation; jackStatus?: JackHostStatus; governorSettings: GovernorSettings; @@ -88,6 +92,7 @@ interface SettingsDialogState { showGovernorSettingsDialog: boolean; showInputSelectDialog: boolean; showOutputSelectDialog: boolean; + showScreenOrientationDialog: boolean; showMidiSelectDialog: boolean; showThemeSelectDialog: boolean; showJackServerSettingsDialog: boolean; @@ -191,13 +196,15 @@ const SettingsDialog = withStyles( wifiDirectConfigSettings: this.model.wifiDirectConfigSettings.get(), governorSettings: this.model.governorSettings.get(), continueDisabled: true, - + keepScreenOn: this.model.keepScreenOn.get(), + screenOrientation: this.model.getScreenOrientation(), showWindowScaleDialog: false, showWifiConfigDialog: false, showWifiDirectConfigDialog: false, showGovernorSettingsDialog: false, showInputSelectDialog: false, showOutputSelectDialog: false, + showScreenOrientationDialog: false, showMidiSelectDialog: false, showThemeSelectDialog: false, showJackServerSettingsDialog: false, @@ -219,11 +226,21 @@ const SettingsDialog = withStyles( this.handleConnectionStateChanged = this.handleConnectionStateChanged.bind(this); this.handleShowStatusMonitorChanged = this.handleShowStatusMonitorChanged.bind(this); this.handleHasWifiChanged = this.handleHasWifiChanged.bind(this); + this.handleKeepScreenOnChanged = this.handleKeepScreenOnChanged.bind(this); + this.handleScreenOrientationChanged = this.handleScreenOrientationChanged.bind(this); } + handleScreenOrientationChanged(newValue: ScreenOrientation) { + this.setState({ + screenOrientation: newValue + }); + } + handleKeepScreenOnChanged(newValue: boolean) { + this.setState({ keepScreenOn: newValue }); + } handleHasWifiChanged(newValue: boolean) { - this.setState({hasWifiDevice: newValue}); + this.setState({ hasWifiDevice: newValue }); } handleShowStatusMonitorChanged(): void { @@ -337,6 +354,8 @@ const SettingsDialog = withStyles( if (active !== this.active) { this.active = active; if (active) { + this.model.keepScreenOn.addOnChangedHandler(this.handleKeepScreenOnChanged); + this.model.screenOrientation.addOnChangedHandler(this.handleScreenOrientationChanged); this.model.hasWifiDevice.addOnChangedHandler(this.handleHasWifiChanged); this.model.state.addOnChangedHandler(this.handleConnectionStateChanged); this.model.showStatusMonitor.addOnChangedHandler(this.handleShowStatusMonitorChanged); @@ -368,7 +387,7 @@ const SettingsDialog = withStyles( this.handleJackServerSettingsChanged(); this.handleWifiConfigSettingsChanged(); this.handleWifiDirectConfigSettingsChanged(); - this.setState({hasWifiDevice: this.model.hasWifiDevice.get()}); + this.setState({ hasWifiDevice: this.model.hasWifiDevice.get() }); this.timerHandle = setInterval(() => this.tick(), 1000); } else { @@ -377,6 +396,8 @@ const SettingsDialog = withStyles( } this.model.state.removeOnChangedHandler(this.handleConnectionStateChanged); this.model.showStatusMonitor.removeOnChangedHandler(this.handleShowStatusMonitorChanged); + this.model.keepScreenOn.removeOnChangedHandler(this.handleKeepScreenOnChanged); + this.model.screenOrientation.removeOnChangedHandler(this.handleScreenOrientationChanged); this.model.jackConfiguration.removeOnChangedHandler(this.handleJackConfigurationChanged); this.model.alsaSequencerConfiguration.removeOnChangedHandler(this.handleAlsaSequencerConfigurationChanged); @@ -441,6 +462,28 @@ const SettingsDialog = withStyles( showOutputSelectDialog: false }); } + handleScreenOrientation() { + this.setState({ + showScreenOrientationDialog: true, + }); + } + getOrientationText() { + switch (this.state.screenOrientation) { + case ScreenOrientation.Portrait: + return "Portrait"; + case ScreenOrientation.Landscape: + return "Landscape"; + default: + return "System default"; + } + } + handleScreenOrientationDialogResult(orientation: ScreenOrientation | null): void { + if (orientation !== null) { + this.setState({ screenOrientation: orientation }); + this.model.setScreenOrientation(orientation); + } + this.setState({ showScreenOrientationDialog: false }); + } handleOutputSelection() { this.setState({ @@ -548,11 +591,13 @@ const SettingsDialog = withStyles( } render() { const classes = withStyles.getClasses(this.props); - + let isConfigValid = this.state.jackConfiguration.isValid; let selectedChannels: string[] = this.state.showInputSelectDialog ? this.state.jackSettings.inputAudioPorts : this.state.jackSettings.outputAudioPorts; let disableShutdown = this.state.shuttingDown || this.state.restarting; + let canKeepScreenOn = this.model.canKeepScreenOn; + return ( { this.props.onClose() }} TransitionComponent={Transition} @@ -730,6 +775,51 @@ const SettingsDialog = withStyles(
+ {canKeepScreenOn && + ( + { + this.model.setKeepScreenOn(!this.state.keepScreenOn) + }} > + +
+
+
+ + Keep screen on. +
+ +
+ { this.model.setKeepScreenOn(e.target.checked); } + } + /> +
+ +
+
+
+ ) + } + {this.model.canSetScreenOrientation && ( + this.handleScreenOrientation()} + > + +
+ Display Orientation + { + this.getOrientationText() + } +
+
+ ) + } {(canScaleWindow()) && ( @@ -908,6 +998,21 @@ const SettingsDialog = withStyles( ) } + { + this.state.showScreenOrientationDialog && + ( + { + this.handleScreenOrientationDialogResult(screenOrientation); + }} + screenOrientation={this.state.screenOrientation} + + /> + ) + + } + { (this.state.showGovernorSettingsDialog) && ( From 6d7f79c6af97cac5be4902e4345cb3957cac2791 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 13:26:12 -0400 Subject: [PATCH 05/18] MIDI CC-0 and MIDI LSB are ignored when listening for MIDI events. --- src/AudioHost.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/AudioHost.cpp b/src/AudioHost.cpp index a255b9f..ebc387c 100644 --- a/src/AudioHost.cpp +++ b/src/AudioHost.cpp @@ -931,6 +931,15 @@ private: uint8_t cmd = (uint8_t)(event.buffer[0] & 0xF0); bool isNote = cmd == 0x90 && event.buffer[2] != 0; // note on with velocity > 0. bool isControl = cmd == 0xB0; + if (isControl) + { + // ignore bank select, and CC LSB values. + uint8_t cc1 = (uint8_t)(event.buffer[1]); + if (cc1 == 0 || (cc1 >= 32 && cc1 < 64)) + { + isControl = false; + } + } if (isNote || isControl) { MidiNotifyBody notifyBody (event.buffer[0],event.buffer[1], event.buffer[2]); From 71fc534a786af23ff3c51551c74161ae326683fa Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 13:26:53 -0400 Subject: [PATCH 06/18] Control Zooming disabled. --- src/Pedalboard.cpp | 1 + src/Pedalboard.hpp | 3 ++ src/PiPedalModel.cpp | 12 +++++++ src/PiPedalModel.hpp | 2 ++ src/PiPedalSocket.cpp | 21 +++++++++++ todo.txt | 2 ++ vite/src/pipedal/MainPage.tsx | 50 ++++++++++++++++---------- vite/src/pipedal/Pedalboard.tsx | 2 ++ vite/src/pipedal/PedalboardView.tsx | 4 ++- vite/src/pipedal/PiPedalModel.tsx | 15 ++++++++ vite/src/pipedal/PluginControl.tsx | 18 +++++----- vite/src/pipedal/PluginControlView.tsx | 5 +-- vite/src/pipedal/PresetSelector.tsx | 2 +- vite/src/pipedal/ZoomedUiControl.tsx | 5 ++- 14 files changed, 109 insertions(+), 33 deletions(-) diff --git a/src/Pedalboard.cpp b/src/Pedalboard.cpp index 9296906..6093736 100644 --- a/src/Pedalboard.cpp +++ b/src/Pedalboard.cpp @@ -537,6 +537,7 @@ JSON_MAP_BEGIN(Pedalboard) JSON_MAP_REFERENCE(Pedalboard,nextInstanceId) JSON_MAP_REFERENCE(Pedalboard,snapshots) JSON_MAP_REFERENCE(Pedalboard,selectedSnapshot) + JSON_MAP_REFERENCE(Pedalboard,selectedPlugin) JSON_MAP_END() JSON_MAP_BEGIN(SnapshotValue) diff --git a/src/Pedalboard.hpp b/src/Pedalboard.hpp index 8ef6fd9..cb65855 100644 --- a/src/Pedalboard.hpp +++ b/src/Pedalboard.hpp @@ -197,6 +197,8 @@ class Pedalboard { std::vector> snapshots_; int64_t selectedSnapshot_ = -1; + int64_t selectedPlugin_ = -1; + public: // deep copy, breaking shared pointers. Pedalboard DeepCopy(); @@ -224,6 +226,7 @@ public: GETTER_SETTER(output_volume_db) GETTER_SETTER_VEC(snapshots) GETTER_SETTER(selectedSnapshot) + GETTER_SETTER(selectedPlugin) DECLARE_JSON_MAP(Pedalboard); diff --git a/src/PiPedalModel.cpp b/src/PiPedalModel.cpp index fcc8eb5..5049cb9 100644 --- a/src/PiPedalModel.cpp +++ b/src/PiPedalModel.cpp @@ -2595,6 +2595,16 @@ std::shared_ptr PiPedalModel::GetLv2Pedalboard() } return lv2Pedalboard; } + +void PiPedalModel::SetSelectedPedalboardPlugin(uint64_t clientId, uint64_t pedalboardId) +{ + // Thinking on this: + // 1) do NOT mark the pedalboard as changed. This shouldn't set a change flag. + // 2) do NOT broadcast the change. Whoever set it last controls what happens when the plugin is reloaded. Meh. + // 3) Clients must be able to save a non-changed pedalboard. + pedalboard.selectedPlugin(pedalboardId); +} + bool PiPedalModel::LoadCurrentPedalboard() { if (previousPedalboardLoaded && pedalboard.IsStructureIdentical(previousPedalboard)) @@ -3075,3 +3085,5 @@ bool PiPedalModel::HasTone3000Auth() const return storage.GetTone3000Auth() != ""; } + + diff --git a/src/PiPedalModel.hpp b/src/PiPedalModel.hpp index 0a54af1..9145be4 100644 --- a/src/PiPedalModel.hpp +++ b/src/PiPedalModel.hpp @@ -489,6 +489,8 @@ namespace pipedal void SetTone3000Auth(const std::string &apiKey); bool HasTone3000Auth() const; + void SetSelectedPedalboardPlugin(uint64_t clientId, uint64_t pedalboardId); + }; } // namespace pipedal. \ No newline at end of file diff --git a/src/PiPedalSocket.cpp b/src/PiPedalSocket.cpp index f54c14f..83d1bfe 100644 --- a/src/PiPedalSocket.cpp +++ b/src/PiPedalSocket.cpp @@ -472,6 +472,21 @@ JSON_MAP_REFERENCE(SetSnapshotsBody, snapshots) JSON_MAP_REFERENCE(SetSnapshotsBody, selectedSnapshot) JSON_MAP_END() +class SetSelectedPedalboardPluginBody +{ +public: + uint64_t clientId_; + uint64_t pluginInstanceId_; + + DECLARE_JSON_MAP(SetSelectedPedalboardPluginBody); +}; + +JSON_MAP_BEGIN(SetSelectedPedalboardPluginBody) +JSON_MAP_REFERENCE(SetSelectedPedalboardPluginBody, clientId) +JSON_MAP_REFERENCE(SetSelectedPedalboardPluginBody, pluginInstanceId) +JSON_MAP_END() + + class SnapshotModifiedBody { public: @@ -1300,6 +1315,12 @@ public: int64_t result = this->model.SaveCurrentPresetAs(this->clientId, body.name_, body.saveAfterInstanceId_); Reply(replyTo, "saveCurrentPresetsAs", result); } + else if (message == "setSelectedPedalboardPlugin") + { + SetSelectedPedalboardPluginBody body; + pReader->read(&body); + this->model.SetSelectedPedalboardPlugin(body.clientId_,body.pluginInstanceId_); + } else if (message == "savePluginPresetAs") { SavePluginPresetAsBody body; diff --git a/todo.txt b/todo.txt index 2e6706f..5776346 100644 --- a/todo.txt +++ b/todo.txt @@ -1,3 +1,5 @@ +Crash-proofing: do not reload pedalboard if the previous run crashed before normal shutdown. + Persist and reconnect IP addresses in client. Zeroconv crash assert. /var/pipedal/audio_uploads/ReverbImpulseFiles/ diff --git a/vite/src/pipedal/MainPage.tsx b/vite/src/pipedal/MainPage.tsx index 8d3f3e9..a1ea987 100644 --- a/vite/src/pipedal/MainPage.tsx +++ b/vite/src/pipedal/MainPage.tsx @@ -82,7 +82,7 @@ const styles = ({ palette }: Theme) => { }), pedalboardScroll: css({ position: "relative", width: "100%", - flex: "0 0 auto", overflow: "auto", maxHeight: 220, + flex: "0 0 auto", overflow: "auto", maxHeight: 220, }), pedalboardScrollSmall: css({ position: "relative", width: "100%", @@ -158,7 +158,10 @@ export const MainPage = super(props); this.model = PiPedalModelFactory.getInstance(); let pedalboard = this.model.pedalboard.get(); - let selectedPedal = pedalboard.getFirstSelectableItem(); + let selectedPedal = pedalboard.selectedPlugin; + if (selectedPedal === -1) { + selectedPedal = pedalboard.getFirstSelectableItem(); + } this.state = { selectedPedal: selectedPedal, @@ -243,12 +246,16 @@ export const MainPage = this.model.loadPluginPreset(instanceId, presetInstanceId); } onPedalboardChanged(value: Pedalboard) { - let selectedItem = -1; - if (this.state.selectedPedal === Pedalboard.START_CONTROL || this.state.selectedPedal === Pedalboard.END_CONTROL) { - selectedItem = this.state.selectedPedal; - } else if (value.hasItem(this.state.selectedPedal)) { - selectedItem = this.state.selectedPedal; - } else { + // let selectedItem = -1; + // if (this.state.selectedPedal === Pedalboard.START_CONTROL || this.state.selectedPedal === Pedalboard.END_CONTROL) { + // selectedItem = this.state.selectedPedal; + // } else if (value.hasItem(this.state.selectedPedal)) { + // selectedItem = this.state.selectedPedal; + // } else { + // selectedItem = value.getFirstSelectableItem(); + // } + let selectedItem = value.selectedPlugin; + if (selectedItem === -1 || !value.hasItem(selectedItem)) { selectedItem = value.getFirstSelectableItem(); } this.setState({ @@ -265,9 +272,10 @@ export const MainPage = } onDeletePedal(instanceId: number): void { + // ok. let result = this.model.deletePedalboardPedal(instanceId); - if (result != null) { - this.setState({ selectedPedal: result }); + if (result != null) + this.setSelection(result); { } } @@ -284,9 +292,9 @@ export const MainPage = componentDidUpdate(prevProps: MainProps, prevState: MainState) { if (prevState.selectedPedal !== this.state.selectedPedal - || prevState.pedalboard !== this.state.pedalboard + || prevState.pedalboard !== this.state.pedalboard ) { - this.setState({showModUi: this.state.pedalboard.maybeGetItem(this.state.selectedPedal)?.useModUi??false}); + this.setState({ showModUi: this.state.pedalboard.maybeGetItem(this.state.selectedPedal)?.useModUi ?? false }); } } updateResponsive() { @@ -305,6 +313,10 @@ export const MainPage = setSelection(selectedId_: number): void { this.setState({ selectedPedal: selectedId_ }); + if (this.state.pedalboard.selectedPlugin !== selectedId_) { + this.model.setPedalboardSelectedPlugin(selectedId_); + this.state.pedalboard.selectedPlugin = selectedId_; + } } onSelectionChanged(selectedId: number): void { @@ -335,7 +347,7 @@ export const MainPage = this.setState({ loadDialogOpen: false }); let itemId = this.state.selectedPedal; let newSelectedItem = this.model.loadPedalboardPlugin(itemId, selectedUri); - this.setState({ selectedPedal: newSelectedItem }); + this.setSelection(newSelectedItem); } onSnapshotDialogOk(): void { this.setState({ snapshotDialogOpen: false }); @@ -621,12 +633,12 @@ export const MainPage =
- +
diff --git a/vite/src/pipedal/Pedalboard.tsx b/vite/src/pipedal/Pedalboard.tsx index a5129ba..34c54a3 100644 --- a/vite/src/pipedal/Pedalboard.tsx +++ b/vite/src/pipedal/Pedalboard.tsx @@ -372,6 +372,7 @@ export class Pedalboard implements Deserializable { this.snapshots = input.snapshots ? Snapshot.deserializeArray(input.snapshots): []; this.selectedSnapshot = input.selectedSnapshot; this.pathProperties = input.pathProperties; + this.selectedPlugin = input.selectedPlugin??-1; return this; } @@ -387,6 +388,7 @@ export class Pedalboard implements Deserializable { snapshots: (Snapshot | null)[] = []; selectedSnapshot: number = -1; pathProperties: {[Name: string]: string} = {}; + selectedPlugin: number = -1; *itemsGenerator(): Generator { let it = itemGenerator_(this.items); diff --git a/vite/src/pipedal/PedalboardView.tsx b/vite/src/pipedal/PedalboardView.tsx index ffd73f1..4b25517 100644 --- a/vite/src/pipedal/PedalboardView.tsx +++ b/vite/src/pipedal/PedalboardView.tsx @@ -540,7 +540,9 @@ withStyles( } onPedalboardChanged(value?: Pedalboard) { - this.setState({ pedalboard: value }); + this.setState({ + pedalboard: value, + }); } componentDidMount() { diff --git a/vite/src/pipedal/PiPedalModel.tsx b/vite/src/pipedal/PiPedalModel.tsx index 4c30cc8..97ac43e 100644 --- a/vite/src/pipedal/PiPedalModel.tsx +++ b/vite/src/pipedal/PiPedalModel.tsx @@ -1820,6 +1820,7 @@ export class PiPedalModel //implements PiPedalModel let result = newPedalboard.deleteItem(instanceId); if (result !== null) { + newPedalboard.selectedPlugin = result; this.setModelPedalboard(newPedalboard); this.updateServerPedalboard(); } @@ -3505,6 +3506,20 @@ export class PiPedalModel //implements PiPedalModel this.androidHost?.setScreenOrientation(value as number); } } + + setPedalboardSelectedPlugin(pluginId: number): void { + let pedalboard = this.pedalboard.get(); + if (!pedalboard) { + throw new PiPedalStateError("Pedalboard not loaded."); + } + if (pedalboard.selectedPlugin === pluginId) { + return; // no change. + } + pedalboard.selectedPlugin = pluginId; // naughty, because it doesn't broadcast. + // notify the server. + this.webSocket?.send("setSelectedPedalboardPlugin", { clientId: this.clientId, pluginInstanceId: pluginId }); + + } }; let instance: PiPedalModel | undefined = undefined; diff --git a/vite/src/pipedal/PluginControl.tsx b/vite/src/pipedal/PluginControl.tsx index 3aa0c33..9374188 100644 --- a/vite/src/pipedal/PluginControl.tsx +++ b/vite/src/pipedal/PluginControl.tsx @@ -367,15 +367,15 @@ const PluginControl = } } - if (this.isTouchDevice()) { - if (this.props.uiControl - && (this.props.uiControl.isDial() || this.props.uiControl.isGraphicEq()) - ) { - this.isTap = false; - this.showZoomedControl(); - return; - } - } + // if (this.isTouchDevice()) { + // if (this.props.uiControl + // && (this.props.uiControl.isDial() || this.props.uiControl.isGraphicEq()) + // ) { + // this.isTap = false; + // this.showZoomedControl(); + // return; + // } + // } ++this.pointersDown; diff --git a/vite/src/pipedal/PluginControlView.tsx b/vite/src/pipedal/PluginControlView.tsx index 2fc820f..073fd86 100644 --- a/vite/src/pipedal/PluginControlView.tsx +++ b/vite/src/pipedal/PluginControlView.tsx @@ -81,10 +81,11 @@ function makeIoPluginInfo(name: string, uri: string): UiPlugin { return result; } -let startPluginInfo: UiPlugin = +export const startPluginInfo: UiPlugin = makeIoPluginInfo("Input", Pedalboard.START_PEDALBOARD_ITEM_URI); -let endPluginInfo: UiPlugin = + +export const endPluginInfo: UiPlugin = makeIoPluginInfo("Output", Pedalboard.END_PEDALBOARD_ITEM_URI); diff --git a/vite/src/pipedal/PresetSelector.tsx b/vite/src/pipedal/PresetSelector.tsx index 5491519..a903f79 100644 --- a/vite/src/pipedal/PresetSelector.tsx +++ b/vite/src/pipedal/PresetSelector.tsx @@ -304,7 +304,7 @@ const PresetSelector = }}>
{ this.handleSave(); }} size="large"> diff --git a/vite/src/pipedal/ZoomedUiControl.tsx b/vite/src/pipedal/ZoomedUiControl.tsx index 3d21ffe..1432c86 100644 --- a/vite/src/pipedal/ZoomedUiControl.tsx +++ b/vite/src/pipedal/ZoomedUiControl.tsx @@ -96,7 +96,10 @@ const ZoomedUiControl = withTheme(withStyles( } else { let uiControl = this.props.controlInfo.uiControl; let instanceId = this.props.controlInfo.instanceId; - if (instanceId === -1) return 0; + if (instanceId === -2 && uiControl.symbol === "volume_db") { + return this.model.pedalboard.get()?.input_volume_db??0; + } + let pedalboardItem = this.model.pedalboard.get()?.getItem(instanceId); let value: number = pedalboardItem?.getControlValue(uiControl.symbol) ?? 0; return value; From 20fd4383dd7300e10e5f58924b7ee9120f51fd2a Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 16:39:31 -0400 Subject: [PATCH 07/18] SqlLite module update --- modules/SQLiteCpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/SQLiteCpp b/modules/SQLiteCpp index 1df7688..0fef5b9 160000 --- a/modules/SQLiteCpp +++ b/modules/SQLiteCpp @@ -1 +1 @@ -Subproject commit 1df768817e68529fe47870f8e9913a47343a822d +Subproject commit 0fef5b93eab8dfe20c0b3d79783a83e806a48478 From 88c6ae66f399a24d40fcb100271bfcef378309ed Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 16:50:23 -0400 Subject: [PATCH 08/18] SQLite module sync. --- modules/SQLiteCpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/SQLiteCpp b/modules/SQLiteCpp index 0fef5b9..1df7688 160000 --- a/modules/SQLiteCpp +++ b/modules/SQLiteCpp @@ -1 +1 @@ -Subproject commit 0fef5b93eab8dfe20c0b3d79783a83e806a48478 +Subproject commit 1df768817e68529fe47870f8e9913a47343a822d From 5e9e8c78e6f20da9ec0f5bbf668b65fd6274eee4 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 16:51:49 -0400 Subject: [PATCH 09/18] SQLite Module sync --- modules/SQLiteCpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/SQLiteCpp b/modules/SQLiteCpp index 1df7688..0fef5b9 160000 --- a/modules/SQLiteCpp +++ b/modules/SQLiteCpp @@ -1 +1 @@ -Subproject commit 1df768817e68529fe47870f8e9913a47343a822d +Subproject commit 0fef5b93eab8dfe20c0b3d79783a83e806a48478 From b261f98167de2350f032ab5132ca11eb345e799c Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 21:37:46 -0400 Subject: [PATCH 10/18] Experimental commit for issue #337; valgrind fixes. --- 2 | 0 CMakeLists.txt | 4 +- PiPedalCommon/src/AlsaSequencer.cpp | 3 +- README.md | 4 +- docs/Installing.md | 10 +- docs/download.md | 8 +- lv2/aarch64/ToobAmp.lv2/CabIR.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/CabSim.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ConvolutionReverb.ttl | 2 +- .../ToobAmp.lv2/ConvolutionReverbStereo.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/InputStage.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/PowerStage2.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/SpectrumAnalyzer.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToneStack.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobAmp.so | Bin 1315000 -> 1314968 bytes lv2/aarch64/ToobAmp.lv2/ToobAmpUI.so | Bin 2298544 -> 2298544 bytes lv2/aarch64/ToobAmp.lv2/ToobChorus.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobDelay.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobFlanger.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobFlangerStereo.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobFreeverb.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobGraphicEq.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobLooperFour.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobLooperOne.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobML.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobMix.ttl | 2 +- .../ToobAmp.lv2/ToobNeuralAmpModeler.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobNoiseGate.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobPhaser.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobPlayer.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobRecordMono.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobRecordStereo.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobTuner.ttl | 2 +- lv2/aarch64/ToobAmp.lv2/ToobVolume.ttl | 2 +- src/AlsaDriver.cpp | 107 ++++++++----- src/AlsaDriver.hpp | 2 + src/AudioHost.cpp | 6 +- src/PiPedalModel.cpp | 5 +- src/PluginHost.cpp | 9 +- src/WebServer.cpp | 5 +- src/main.cpp | 3 + valgrind.sh | 1 + vg.output | 146 ++++++++++++++++++ 43 files changed, 277 insertions(+), 88 deletions(-) create mode 100644 2 create mode 100755 valgrind.sh create mode 100644 vg.output diff --git a/2 b/2 new file mode 100644 index 0000000..e69de29 diff --git a/CMakeLists.txt b/CMakeLists.txt index efea7f6..9878b1f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,13 @@ cmake_minimum_required(VERSION 3.16.0) project(pipedal - VERSION 1.4.77 + VERSION 1.4.78 DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi" HOMEPAGE_URL "https://rerdavies.github.io/pipedal" ) EXECUTE_PROCESS( COMMAND dpkg --print-architecture COMMAND tr -d '\n' OUTPUT_VARIABLE DEBIAN_ARCHITECTURE ) -set (DISPLAY_VERSION "PiPedal v1.4.77-Beta") +set (DISPLAY_VERSION "PiPedal v1.4.78-Experimental") set (PACKAGE_ARCHITECTURE ${DEBIAN_ARCHITECTURE}) set (CMAKE_INSTALL_PREFIX "/usr/") diff --git a/PiPedalCommon/src/AlsaSequencer.cpp b/PiPedalCommon/src/AlsaSequencer.cpp index e4c11d1..7506e02 100644 --- a/PiPedalCommon/src/AlsaSequencer.cpp +++ b/PiPedalCommon/src/AlsaSequencer.cpp @@ -319,6 +319,7 @@ namespace pipedal } if (seqHandle) { + Lv2Log::debug("Closing ALSA Sequencer"); snd_seq_close(seqHandle); seqHandle = nullptr; } @@ -608,7 +609,7 @@ namespace pipedal #ifndef NDEBUG #define MSG_DEBUG_LOG(x) \ case x: \ - Lv2Log::debug("ALSA Sequencer Message" #x); \ + Lv2Log::debug("ALSA Sequencer Message " #x); \ break; #else #define MSG_DEBUG_LOG(x) diff --git a/README.md b/README.md index 9545dbe..e1dfbb7 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,11 @@ -Download: v1.4.77 +Download: v1.4.78 Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal). Documentation: [https://rerdavies.github.io/pipedal/Documentation.html](https://rerdavies.github.io/pipedal/Documentation.html). -#### NEW version 1.4.77 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. New Phaser and Graphic Equalizer plugins. +#### NEW version 1.4.78 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. New Phaser and Graphic Equalizer plugins.   diff --git a/docs/Installing.md b/docs/Installing.md index 24ee378..4e9660a 100644 --- a/docs/Installing.md +++ b/docs/Installing.md @@ -13,18 +13,18 @@ page_icon: img/Install4.jpg Download the most recent Debian (.deb) package for your platform: -- [Raspberry Pi OS bookworm (aarch64) v1.4.77](https://github.com/rerdavies/pipedal/releases/download/v1.4.77/pipedal_1.4.77_arm64.deb) -- [Ubuntu 24.x (aarch64) v1.4.77](https://github.com/rerdavies/pipedal/releases/download/v1.4.77/pipedal_1.4.77_arm64.deb) -- [Ubuntu 24.x (amd64) v1.4.77](https://github.com/rerdavies/pipedal/releases/download/v1.4.77/pipedal_1.4.77_amd64.deb) +- [Raspberry Pi OS bookworm (aarch64) v1.4.78](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) +- [Ubuntu 24.x (aarch64) v1.4.78](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) +- [Ubuntu 24.x (amd64) v1.4.78](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_amd64.deb) -Version 1.4.77 has been tested on Raspberry Pi OS bookworm, Ubuntu 24.04 (amd64), and Ubuntu 24.10 (aarch64). Download the appropriate package for your platform, and install using the following procedure: +Version 1.4.78 has been tested on Raspberry Pi OS bookworm, Ubuntu 24.04 (amd64), and Ubuntu 24.10 (aarch64). Download the appropriate package for your platform, and install using the following procedure: ``` sudo apt update sudo apt upgrade cd ~/Downloads - sudo apt-get install ./pipedal_1.4.77_arm64.deb + sudo apt-get install ./pipedal_1.4.78_arm64.deb ``` You MUST use `apt-get`. `apt` will not install downloaded packages; and `dpkg -i` will not install dependencies. diff --git a/docs/download.md b/docs/download.md index 6e4fb8e..3f64b2d 100644 --- a/docs/download.md +++ b/docs/download.md @@ -4,9 +4,9 @@ Download the most recent Debian (.deb) package for your platform: -- [Raspberry Pi OS bookworm (aarch64) v1.4.77 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.77/pipedal_1.4.77_arm64.deb) -- [Ubuntu 24.x (aarch64) v1.4.77 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.77/pipedal_1.4.77_arm64.deb) -- [Ubuntu 24.x (amd64) v1.4.77 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.77/pipedal_1.4.77_amd64.deb) +- [Raspberry Pi OS bookworm (aarch64) v1.4.78 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) +- [Ubuntu 24.x (aarch64) v1.4.78 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) +- [Ubuntu 24.x (amd64) v1.4.78 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_amd64.deb) Install the package by running @@ -14,7 +14,7 @@ Install the package by running ``` sudo apt update cd ~/Downloads - sudo apt-get install ./pipedal_1.4.77_arm64.deb + sudo apt-get install ./pipedal_1.4.78_arm64.deb ``` You MUST use `apt-get` to install the package. `apt install` will NOT install the package correctly. The message about missing permissions given by `apt-get` is expected, and can be safely ignored. diff --git a/lv2/aarch64/ToobAmp.lv2/CabIR.ttl b/lv2/aarch64/ToobAmp.lv2/CabIR.ttl index a5cdcb5..fa85f89 100644 --- a/lv2/aarch64/ToobAmp.lv2/CabIR.ttl +++ b/lv2/aarch64/ToobAmp.lv2/CabIR.ttl @@ -93,7 +93,7 @@ cabir:impulseFile3 doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ TooB Cab IR is a convolution-based guitar cabinet impulse response simulator. diff --git a/lv2/aarch64/ToobAmp.lv2/CabSim.ttl b/lv2/aarch64/ToobAmp.lv2/CabSim.ttl index 70ba918..8a17811 100644 --- a/lv2/aarch64/ToobAmp.lv2/CabSim.ttl +++ b/lv2/aarch64/ToobAmp.lv2/CabSim.ttl @@ -50,7 +50,7 @@ toob:frequencyResponseVector doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; mod:brand "TooB"; mod:label "TooB CabSim"; diff --git a/lv2/aarch64/ToobAmp.lv2/ConvolutionReverb.ttl b/lv2/aarch64/ToobAmp.lv2/ConvolutionReverb.ttl index 3165808..ee9eb6c 100644 --- a/lv2/aarch64/ToobAmp.lv2/ConvolutionReverb.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ConvolutionReverb.ttl @@ -53,7 +53,7 @@ toobimpulse:impulseFile doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Convolution reverb is a notoriously compute-intensive effect. If you are having performance issues, use the Max T control to constrain the length of the impulse file to diff --git a/lv2/aarch64/ToobAmp.lv2/ConvolutionReverbStereo.ttl b/lv2/aarch64/ToobAmp.lv2/ConvolutionReverbStereo.ttl index a9ff502..2328645 100644 --- a/lv2/aarch64/ToobAmp.lv2/ConvolutionReverbStereo.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ConvolutionReverbStereo.ttl @@ -51,7 +51,7 @@ toobimpulse:impulseFile doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ diff --git a/lv2/aarch64/ToobAmp.lv2/InputStage.ttl b/lv2/aarch64/ToobAmp.lv2/InputStage.ttl index 6ec1c19..95cac11 100644 --- a/lv2/aarch64/ToobAmp.lv2/InputStage.ttl +++ b/lv2/aarch64/ToobAmp.lv2/InputStage.ttl @@ -66,7 +66,7 @@ inputStage:filterGroup doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; mod:brand "TooB"; mod:label "TooB Input"; diff --git a/lv2/aarch64/ToobAmp.lv2/PowerStage2.ttl b/lv2/aarch64/ToobAmp.lv2/PowerStage2.ttl index eeede7d..f7cb004 100644 --- a/lv2/aarch64/ToobAmp.lv2/PowerStage2.ttl +++ b/lv2/aarch64/ToobAmp.lv2/PowerStage2.ttl @@ -68,7 +68,7 @@ pstage:stage3 doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; mod:brand "TooB"; mod:label "Power Stage"; diff --git a/lv2/aarch64/ToobAmp.lv2/SpectrumAnalyzer.ttl b/lv2/aarch64/ToobAmp.lv2/SpectrumAnalyzer.ttl index 70bda8c..84011d8 100644 --- a/lv2/aarch64/ToobAmp.lv2/SpectrumAnalyzer.ttl +++ b/lv2/aarch64/ToobAmp.lv2/SpectrumAnalyzer.ttl @@ -57,7 +57,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment "TooB spectrum analyzer" ; mod:brand "TooB"; diff --git a/lv2/aarch64/ToobAmp.lv2/ToneStack.ttl b/lv2/aarch64/ToobAmp.lv2/ToneStack.ttl index f9d51b9..05526a2 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToneStack.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToneStack.ttl @@ -57,7 +57,7 @@ tonestack:eqGroup doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; uiext:ui ; diff --git a/lv2/aarch64/ToobAmp.lv2/ToobAmp.so b/lv2/aarch64/ToobAmp.lv2/ToobAmp.so index b6357f6f211b589b5b26445658d77a6cc4b315d0..e0d969834c347ae1a92996327e3d8f2cba70bace 100644 GIT binary patch delta 339426 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
pb%9 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 delta 339046 zcmZ^s34B}CvH!0uJCS22mP3fe(nMJx0s;s~!3Ay*A%Iv~#A{ybzS4&vdEf#qqNHF7 zt(1)@h=PPdrLqc0i&Tjn@9twKtY61#4aF!Qp-m!R>RvlfPl!54wTkKSZfcrmS{T||0|HCO*AckIW=q>Y%BfxX-vrr%Kxi#i- z;C|6bj&QqwBNlA4N17cm*sqh9Fz*NM5}`cs@af#X06caP^FiRX=c7Ec5*R`!utOR6 z(yN$Pfd~G{IyKW7fLayi9IPm@#IATfQ`L*0W3w&FV zc@B8~-xjC(%Yz{#9Tb4i+QdRd;5FeT;6BkQ1J7?}or=Y+`qvc9-NJ?%IJiY<2zW)> z8->OiTKE^%aRVQc+Va$Kd;Pip$`0N-gSGxv3HJjp$bh$5j@Ao2CL2)%ctmQb4|r1A#|pCkH3bpb0h8d6mC$8@m;TN(&H+z8&O8r1 zFFFO~QQilP+~3%ts0QJ)q=ORhK@lngj|{R-1$eXQ*MLVWA~Xbsz+)_A{JF8Xwh4Cw z@B0_G^8hbBVBHweRTjAH6H&tthM)*_1J9kxLP6jjX&(Z<`tf$V;~wDorIg20W5JcAH$ zy+sQH?-89|;0vM;u}~iv0^$$@zChY1fybnM7WhJG-w!5tOo$(OxY>j7NJla?*b5q=b8+b(8dm1?9-}^K> zcpD6ck$j4|4|qv7Lx*X5@|S#XGpP!4$VV;1TMt~v$a5z#4*a9)3r8Ve1M80?U#P#JiS2vvZG ztE^K6t~aGazyt5g_1{?ASVRll9BLPE9gqjOPX^=#zHMLD@c~zz?kE`CA`}3=^4~nO zAaE7x0Y3B|PbdsLQemB5;lua;D%1xK6%mR7uf4)Tao`&2Ebu|m$u;t*5fP#OMuVY3 z1>kuRDgxj6G7o4FxayRFXKfv-zX}+3zQICO;3_l(JSGD&)-~2pOa|lvu95aw+^T$JKH$X<lMN7@GtF$rl5c<5OvQs5C8P!f1Rc($I~>u)BHC|7Twg}3xu%=>|B?hC+s zKjfSjfv=W<4gwE7*DCk_Xb_>n8ybtzUFP<#4RHUzN(>%w z=#~_Cflt_h5e4+1wn;@p;i zubj`%56Zv|dBRd*UU&aLiXE!p;1!1&@UZ0GC^iVHz}+$+A8;K|H}JT;@dyBqok%IL>MsO_vgE!8xaKSjTvOHyTvOHuyeRrH;&%P( z4yYZ(!9hDn0@n_5!22Wx{lEkFa?#~SIIq7|VknFl?DaR{F@D5S1YUfU`5^GvTIMC- zd1+q;zH)7p9V%dmt!G{X9+sI60k7Q0Gcz_e7Gr*ZxeK^X%-sWq(t-T2$pc(x<^>+v z!UOdIucRORL02>;)&N)wGL0bc$OAmw5b#i*IgVDR5r+2D-?T>+HG09I(})01N`hj* z{W8!v@&|c9N#F}tGtb(bic3pdN16kN2|wm|_XF2~=7C2xbG!?{!`;k__1r4%m^hT` z4a9>ovoi1n%UP%bJn}8(Rp2_Y8t~d>?Yy{$z@RfTHZ_)NNM_&yt}}B3k4Sqj@T5%4 zw+Sxp&9X-P;IL45H*lR<0C;2rM<`g?{A_U2-&l-(i>To-=?c(%e3 z>jSRaW(@ees9ZDSV9GJP%wW7cGE6_st@34c#Dcja(Uc zRR&rCURotZ%6#PFK1-^%1`ZktV{>CMmZSq0a1FH^xL%<=4V?0?9rzjyl>eRFp&xiy z9{h9z_ukA81p>g6^6)SS+;6qF>MsO_Ehln_!oUk3^MHDR7Z2jMHxb~W65j~+0gvSQ zt|dm?u7BMD=YGHrad6nNgLxKsP6m_%zFG#<4?G|P%8zhfe>$SVh{0ZewfDK>BJdqG z<|W{98BiH`UItVF?k`1Is0s!hPz`uq1~deGop`pbjCCj%+~Ps)Ibz;`~)9Sj230hNH4 z)utz?e!Nrf*ss-25bG5 zj$-Zw9+m<5fJbCNe&jNsZsd9S=6(PS+m7UpgTQk~Gw%T&lmUf-FOUKC0uRf8B7cc~ zb%^@FVS%4JjsdS7#ykn!F9XT~56ggZ%Jt!1NJiAJ26?!rMU)3VcNTYC0PgQ*J_y_+ z11bTJ&XW<9!4QxERepp-EU-0EJ2s|mvDFj>x)C1gIV4ZM1x7OdvgLp)ddV{t6 zWI%nub26Y9@R$rJ4qOM61is+m7QX&x!C*YeBkc#Clp@LlZ~h)npa486DHsIqlRK-@ zU*Z0L=_-D2RtAUZ)^ia0R{_3o2Jyzrr6Zts7FvEvjLay`~qr2!eK8+cL% z>H+STfqH@KKz+cIQ5lgR3_8+o;QoVnph4h0GSCq4l`_yC-~kzEGzo*T3$7I#M4v zXh{9Qb)enAOQ&)~1Hdb1^N+9xM>wxPcbE;K5re(n1HyZN_X!UJ&kOGbUJ)Jv?mj2V z9ruBu`yA#m;9=o$;7Q?0;6>qC;8o$dC>Y%5a>xC^1H$vbdxaN(CxsV*7ljWBAHM&u ziJ=4z-uXPBGVq}A3h;>VD)4^cwMHH_DqUBBJ9+)*z%V2Z{lMK<@yznTy}}E? z{lbgD1HuRY2KWCxVkm(_M0go^TzCa|PIwh~QFu+c-v5`yFr)^#|E~%+{@%C>j9+pj zT)@4;-N60AJ;0;gV(@|?DBK6UN4Ot&ukdc*eZm94W6YyQ5DYnS2mvn&?*U#C9tK_! z-V3}YJYsXIKV5#tuQ;TA;NTV>1MU?b2ksM|1nw7}t>;$#2gT4|Zy+9-@3vN>XTmxNb=SLCB{HQ+{;J01eA1Bx0?H0HQ=H#@k1du0Y5;JI75y%%^%xDUAM z`qg1a23*RexD9Xtn2nYqj?S*J{rL*J>{S*J3Xcx9eYbK&|!?IK(9dW#CEq zS^Ns{@HaU^Rp3T9^V$gK^`|Kq8Zp@GFSj2%7*949se6CsF5sF1H*igX2Y6^-x&C^= zpegVH*A)1HYYMu7YYGCuH3h*a7&HYT;Gsi##$n(ANlh>Cxw1MUz`b)>r%(9s{eR#% zHpIX|QxgZiP*RWtUJ;%JuBpj2a(ezRJ6eCE!3YV@1J~3PfNN@sz%@04z&SNke8;`YW09;cO1g@zG0jJdP`tJb)=f*I?z%@0!z%?}y;5$#` z$i;xWW!1!=g8P5Hs3gH5EZ2w}aIX|;0k}rA2wWpNs9f*=HKZjqNR4Pn%fL0H72p(7 zD|1E_xJI-FJgOlb0)vLs^>kw~=A^1az)N24xEFXx+DCxrc@;#BJ}?w7lbit$-M~B! zytasW5_s`t=2_sOSD5E)PW7kDPjl7}4w|z(a7|eOxTdTKTvIk!&#n5`oR#Vg#5HGS z;F_`ua7|eicxfBYxCY!!*A#pG4S}IDl^u*yWA3L1ZAdhOFZPaQ^^16oGqX2OI>x zO_o^+c(}qkW#%LI|GNAt;GoN|3S5_84Y)49A>g|F42g)-9tY)Lm!GS_FtYsIz;*d~ zfa~(}0*{={Gxh9Q%Oxi;f?- zb{r7iIoyFb1k=Y~-4*Qtw;{3i0{6=6KHxg6Byjin9FKnB5#a^qBfCOe3`KCL$m)z`J{SuHN)H%e$g}u!hCj4P0+c zgTN!wK7?Fehk?hWeJ}F^hi`LqxP9PI5QmsO+$31bV$A|C$m@RKRcW6GuDut5`+m&9 z8f2b6e|cxL3~jn4M^)f%xdaUX*GrRoTjOnvUTHkQ^-AMqK2n5wsquk>UTXZn^-|Lf zT(2|%;1QWXuz_1!qukAh8VttpW63b^a+zn^3w(=w9wh?Y|0!>0eZZT)MLz&y^&bO6 zWj8y-k&ot|7)b(;jbWYz-h2S_9B{Y6yq|c(rKvQ74S8_T6cm7m-{*lAfolo|folp% zBb+Zynu79(!M-%<)xH9Ji~QQAD)8KgJfIrzEy9O@=iie{lkse0_39m<3%LJSj*uI; z@gMHk3tVf(2RttW@<+komXLM>uYJxP1b`PM5<%b<=^zArwX_clAAU5Y*S=nG(0kYj zaJ_|%0oVN?3tabuTqCc0G}UMrc{BxlxEO)!eozEHT#UfE7^(hBU>Gh&;987T;Cgwk z0hc%5#t`s`JmzpcM>S{Fzh3(^bY9C)$2D|5-~rju{J=xPyMb%u0(IP8e;T@AoxvJ_ zhAsr0Lr1?b1Gq*m3|u1@0bVT2Thl%;=vEp7?w0CJ0@uj(1J}sqfotT7&%vW94N(ak zG!kXt8i@*UjYJi=Mq)_0?mzB-a?XwC8*{IbZ~@ngiW|6nQK8g%fa^8I3p`qM@s8#L zL#~y%AGlsrx`FFOB>-HnDM8>8Y5Ki$V9<+74{%LE7`UdO7r3S%0$fwjXLG85U4D8| ziGhP&RN}z(qLKujmmD6b9Ks5E7H;U3`KqT>Z#miB(;b@%_`(2WlA&HEtm zq_htK*9e7y$K-Wy1E>7w?+Ttk z_Xy|prw+jpgFS#Aap(cwCp-*Xbt1s?(mn>fa>ZyKQ9ONSrYo8Sv*#CV%>nO|*LmP^ zXKU517}0uab{*3;_?E%k7O98xy+nbmp!GPPvGD zn+@&;1MQEOGxq?moXFe@JU^GY4|r(~b3gEq_2~?&7P`?OLIL1<)ei#Kt9}T$UiEu` zN91E6Vd8czYR$*Q&6^G}fsA&)vzq3OxTj^I8-Pfjk?A zfE!OSH(r9O-pbqsyz)!tZs5t2nR|o}zZVY48z?V0)T->@10L2lV!%T(fo|Yhyn#j@ zHQYbr4uXvaqa^!54{(>HpclCQO4L5!NogMg&if73UmOgz19?DM;9i+=9=Kn40eC?8 zAaHpXV3aLx)xR!3z1y#VgNCjOT-SXKxUPFcX0H0V7;o+FI&QDOf*8DY25bEd3ikom z6m$cxO8WqCZ65+|EOK+Gd(vm#+7;~uvv(1XHv(Mm<6^)A(moDc?~by-`=ou2`N*Y6 zJII4WP8^EBlk&O*T<;UBz+EeNVnYp_QW1-@!S!v4)|)}{UhA&-`FOG{D{FG`A*>l;1gE!42r;K2_FO=5MBZvS{-GfG8n?* zPyrqhUIiW#UIU&KJ_I~3+=#x?SajY$@qk>wYm!Sh@T9c&0M85e0xt>o2_L=`)x_Wj z2lvA~pl;xP;Q`K zt@RIv+F#fq4m=_=O9EdhJPSNf;K=2G7o~l_#jX0+<+no&d2mRIP!V`VUJnA_Ccpl> z1bm0^Y8|)NU%#~zS^s3?(E)kowF~(I{?*WK;C|sg;4#q;AYba{_1^;qw>U(ACuI-s z1D^kcS5X{zzqHQ*9~9nSi8e03m^3VaL-E%fp+VruSJ}S=JTJe=y$n1M<;Yc(>tor~ zVyLQtzY8<`A3Xm>V)MO=T_4zs|-5JX#E}!3_qzHT3|`zs4PSf$OcQ z5BN&@o%7Z|KXCbR*Qn7A2ED-w0M{F=5b%C^-3MHMwR{$MR#KU>In|$rX!r&M9Q@)? z0Ir`783f)d?MuLQpp|-V*Z*}~T(x=wg{)h+vAwZK%hJvR-2HEE=LH_FateIF^Th4` z{a`4*#SY!T^+%Kgz>D&$--Ey-yICg$TyNfcw&PC>%H4Yy9JCmFf$Lp;1h^JsA8@_d zj}3F)e};cJGd^svi+1>1_DSGcj5**#uX76effrkNmF0oEqwjKv3Sg-1!45^>nu0;# z6AW%&0-h6I2CgZHR=^OD6jXt03TnVL1w+6!1;%TQ#j7cBF(0}Ak4VREa4_VjCOp73 z1wP<;Nr4}DNFv?cz$yPZF$5Y6v}3)`sR;tt6oi2L9h`z5;1%Iv;C2eE`s)RQrXT`b zQ_u%oQxF5LDTo8t6eNk;^{+dirXULrnt~i~O+g-bR#H#^?$tjjF~WKM<+?a@gChoe z{mt83sv5YapbUIz6SuDb_sicOsUp`;4AsD(DHsB-DKK_4R<)+U1zc0$2CgaaM8Tjb z@B-Hq_<(B)x`9_D1p(l?5e0=0-~a1pB6`5VE6Xwh+%LQjxJE7pTq756pR(K zFf?>o;2OFdaE)9)aE)9ZI7g1^uLuU8Tt)|h*W?eSlz_+Dxai8jOYKsOz_oa*7PsnO zmtX8UcBp}a_j=|-z%>Pie&G6<>jH3h znkQCNuJ`}yP*Q{3|NF$D3|t?tRe^`4eGRzk8&cd_E77<(xWG^m0T1x3wD$tn4*bCL z(!LwGw5Q(~fCh000oU(^g@H#T1rgwbHQu88fV*$t)fBTi)t`nUkYPg{90Ky2K$F1d z^>h0yaQ!fLKk$kSC|}R5`Y+1*F4P;W<(K3RiokbB$AiFiV<`a-r&*^AJanUrum2S= z=*Ch7t{Y1YxNa;%z;$0S-e|m9>b~N71MmO!PdR~uZY&<)y0LhH)5c=$UxpueUQ*CK z%z6JYLegiwRL6P~${lDHE4uXT;8TvK3F8>?DV-~z5Ga09nfVAY=o3|_e-@&eZs_<(B) z{J=E@0pNZ~L6Epz|GEQe3PRwZDd+*NDF_4C6!Ze$CXtSea9)40n>Yo1BL;i@X$oS% zH3f0tnt~*7O+glTSnvOHV9*rw1J@Mffolp1z%>Pfz&(qUK|Dmm%0^`lbsvdrD2z>atA#hEB2l()F!$uw*zRC188jRrwhro4a z-M}>k0pOZ~5OBjz0o7j*7&HZ8;F^M7;F^L6a2;qL@KxJ5(lLu$^{>m%c%BV$aL^Pa zfolq~z%>Oq;F^N|I&QDOu1OcO3(+1C0aU!oPnz zY9zssKbSkn0uLX;JO@1Y1Lpm}H3fO#(|7Vf3pS_v*X5@vD1t-sDfx}yz$3D1O29P* zW#F2EYCX5spI1^)t2Yp@NF;`Uhvj#s8*evOwObc7Ie|_uJ0}d`3P#Cyz5DWDJ&!5da0=zPxdEYR% z=TAS5C_=GegSG$Bk7ci7hdA)nGnprW`=utbzyrc_z(Y|n^n)QL1Ih!}A}s(9$ZdNO zxEARka4phk2@G1L72vgZx!9_}SGICZ)PNiEd-R8Zhc|KLjCX9kk^BG3foyQGVR%_; zO?ZHpWk6owvkqV#AMm1|xxax^{!7QQp}WB_@|(m0z+*XX9|UelO@x4JP4ob_Yr?9( zFc?Bo6TQG=^1dJfTx+5acu^t|1Fkg@CvMlj?toepNpR4b$N?`(3i^R3eH@`Y@EwOT zFN|^c)z^%1FuNO-N2iF!jTIIAG!ZevLOf#ZV71!_`JKg zeGl-!Anex=*A&Eo*LrwBN#L9Us=q84GzB@}nu0v= z+)93?TL7+4LlL%=K2-jJ)N>gx|Ixa+w6$Ix6i z@(eub;|IHv;*UV#&z$N*Dl~Oxy5w@Un$&I$L;kOxKnajXRw#w@0s@iFa3^r79Xa0JC4@&zm zaBUv}J|yk?fJ^(R5eGy00iJOdcusgf@T~9x@S40H1Rj+3C7VGIQ`2CjfZuQ*hJ zYx^PKNonu;sByWv^E@$kJ-6y#zt`=pHxLhtgAcg2??(P7?jQhM|L$lAc#_)N>#qk4 z>d*_kARR=2>mP)U0WV4WIB?a^egsd1D&mj>2kjsaye937z>SAF5`)0CJm1mwr8Yrso?W7#3#+TOLZG2=ZU{;LFT;F>@$^O1YtKo2|k!67WX8@NYa z2Z6_>eF(U=4>xeCfr2>nHW=uemGZg|ctzUBfNT3CaMurbVp-sJd#eWf!QdB%JaFxx z2)swymw;!5SAds=*NEF|Kz9Mp|L{nSj~jCt7VZX~6Yd3G5$*@>{UPgjkMQ(`&yL+I zIP%)A!Cq+>N}uy=*Ir?;=Ed5Z-bmIyunvheW?PeB4V@*qNT2y!*IxZ#jf*vJTZ>>V zignPkM$2IJ|A>_%}rU_yP2oEp6}et3vE3A%VY4RJD=~` zs~fC6VhyD4AZrM$IkEQG)?Tod#Tv1!(HL0W^7pagz&$dzEbx%D?+4y1yZ}5VyvTfH z&&Wx`5;!QY0@u$8)`08h1c!j@#{`W}>lXyAnR)VYJy(OlFcu1T179iJ1AMh`FYs-` zeZY5G+*-4KFzDw5yMgQH1OveJbAmzOA^Eso2)KSsu!nfVo}r%;41Y)0I zgF%-^61c98EO1>NIpDfF`hn}}$Xnd1f4wZ|@+g3Vu8tybT^)nKb#;`0>*^@iaeMvg z@~G4qto7%Xk9Jmp>*}Zh*VQouTt7u?>}o7tS~a}>U0~2<VbwXp1KFP ze)Gu-T)*+*1745;bptQSP8zT|)t@fEii|V}4w1)sMm@lN(m@z_NWT#Ze6_TX)N`x; zyTuT%HxTa;o&-KYcoz5q;r+lPu05^QY!rakZj+y+7z9IHgi65O!pp#~6_zhVa$@QQE`@VunJ3p^+T^$m00e~ex+1cnWE#Ee^n z2Z2X~hkzd|ya)K8)KD1s+NjK+7YqTJK_Bp`N;jheuuOM4j~a50$y6fzo@|Yvawe3@>l5Gzzw-5 z`5QRp|19aCyTM=>Gld6$`-KOACxwTAza*jV0p4S+4r}baV92Krd)*V2>GgqemGlw^ z9&6`qGYLE*I$7WW;W^+j(LXQ`29FpDz;kQTAHIG_RKL$$26I^QT>)N{G*yB7rMnGEYs)#9v7ZVzgq1|yWjLU%J!M( z-FCT=}M8{g_0tG|xG;V_Kvr{DdcEB*Of?PGi7vp`IL`Egfz=G*O# zczVj)UFp70+S6yf-JXuU?Qta2i-`D!tRek!s4Kmec;)S6+Ow-Yebqbrr7wBM>gSGk zD0I*8^ex5PDH;6amC7>x47KUDj_LT9?dg}^X(tbhQCjF&v5!OckplT{m&0ct1NO1U zK1S?g+&<>)W5GVw(r3Qc<#44J(a~=od+lS)K4$G>(LTD1W=zysTr$KK9wiq~2f9f6`9lb$nuF$U64g$C!QWw~s~pShkNf z`{+u4KrOxYvD-dU4s2iRShUZ}_R&aRGUQ1=_^CB2>ln0;Vf)x;ACva6U>{5Nv1%WU z^c_QXa6~BYPXezdv+hXSF%pwi@G+!^as>S?#3w&(vj~#TD?3;ZFH}! z-gqWi{qiotK{q=4)hUE-TtwEsI%{{GHFo2Jj;^t}I_rryzU%0^@f}C|Ud1~4?K+=Y zrqe-^Zn@*MI=ryX?9Uue=CR#%=1At3gfdq-9POC`9mZZ!*FK)P!;(wZwWr&K;eWZz zGnTnnXI?gJGz?e9(L}v@h z&GEb3bJ|nhrpeFMT8&!gb@ck&k=JXcdmZ<=_DFu@H13^J>`ZO_e0OGhtC62GnAz@g zTsHB%C!8xUZ3^tV)M2cC)wu_iL~Q&OPh@_2faBhY`;%?5vB!nvd*B^k?w&V9ex8oZ zAqP5+ZkqZ;=7IwqM>b7(B6H_~jyaPyKR(iSBemVSdw18X&OPt-lHTW!XPORj>_72C zYLlkEj;QOa<%!JfgB)udi!+}blNuav5X+-t2|70FH)>i%G zSW9)yNv7lPP2+Yw(6sWLrsKaAp6W<_^1zx&0msP>M=o>T@s7!R1=><~wiqRAejBMQ ztw_%a?2($1%iMOncWIgTlZkN>uFWrYf*O0)c!X6ra2_Fpe#b%qn~-RW#f zo#&9TY&KHY@5)>-$8j9>bMG7)OC|H4Iga(CV-z&C@>JoiUnXTX*ejG~Y^mr(OJ3M)tV( zBd6ou7)e;?7i3ybah%^7Jk3c7n_!!poU#8}nOSrSRp7?Vt*1Dqo7Wf=k3H_C1(eB+ zF|M%A&k**c#l|r^RoI}##xpzdn#`A{IF59@nEB?Zjzb+!Xa4V0#|*~-nO~pkm_Owr z8N_>^@W3N7@Q5D^7EK z-!U`u%xTp1&oaBLFN2vWr&IZKW`1-!&2voViqjo4nv9P#cb@Jzu62d6l2$-|iZ}Dt z>5c=U$&I6pt#!5bSWW{bY4K&>%b`RNeVqYcpm~)`1-#Vucdrg^64epl)d1+v@3^c9g^C^C^ z7sS3+?6FY;O+`L8wn)49=mEzdpL^%V%%&&AUJ|>jb-=Mr>>;w3>70JYUeb6;8pOv8 zI4aWMENZZW&yA|sUF`#ocf{UH_L|stiakDdz%eBDg=GI+cppu`*lb76(ac|`#ySR? zT$|0P71}9FsX@Cma7zQDbD(JgpHE4W-6QsW#U2|!(Bu{SEo7fAcAwad2?I?t#okYL zzu0GqJ+|jSQ}^bmJ*p|Isll;gD8x)hfX|!e@>lQDt^p$`_AO*TUF;#TH}5rI%oBTw z>^)*XOYBSc9x%dUe~Ii1#NHc~2F?2p7#B%{Dm94kc}w}^FRTc8mwscQX(6+7Vw+8? zSdBhuzcXe!ui9(|ViQy6E@hjyeeys!&gWB%Mdti#`Fv{gBJ-T2wpnDJ8(qmSrnwiH z;jB1JActGT!9xx?aoCp}R&6%#qRnrbm)iI9`IPC@{(e56>ZA5~KKIU~_N%46pV}9s z{VZy~md~S8yUC%*FV5Y37NEvY@cERv)V9RuQ-dVFP1>JM?aR_WMD1Ua z_VcKHMcVgJ`yJB$ENWl1&!e?zVRCp!92Ss6O&og3VW&7;L=HoIJ}pA+KbJ@?r1nP9 zPRGJf*P2yo`9QhtwH0RO;H(Bd{ZlGvd zJD{^UW}YyY&zsvF19O9Xe!}U>ng-^Egw0dt9GKf9>?~!?19QW|7AR{OnA%iPNzutfKBJ+f6`Fy{K^9yTRKRGF{ zvqjT-ebUMz`HUHueha@I?P-e+Ov~|$7I*u=j8%N@q}^@*em>vtercQ?J1{-Z=hIg6 z*OuhCff)rp-+wKC-LJ@Br*Gk}&RaSLrVaA>sFm)48Bg$e^R?7RiSloa%(?IQf&I4e z`Sh|hp0LNjw3noDE@sZC@cI5b_^b1l2?P68`F#32{B_jIJqM=M_`G>7`RtUoMe1yb z&-eSBzfLzcnj5YBPiv+V`Z_x6892>)~_vghl4m zv-o_pXOZa-Z;aYAAGPlybH)NTw0KFhm(QE0ljuc!?(~spgwLC1lITJ{cl$}SkIzTX zBGIe(d{j4S#`t{yrTn$!SkjC0d2@jDu8r~w=Ufs@@_AE`1XuF8`}9TTVOc(R%p>tz z_*sUl0_yC3K5wFRKP}JaozaV^v(@~< z9a&@^Uf^?MA$7c#&;3RII=YWK+QR3fuA+_x`Mf1Y9X-M4%}c4H5}!Nc)X_FRZ@QNH zDf9XG=|7L|A}42FIgf7MCTB*U@0fk`j*X_V_ibB0n(s|~ zGJk3!JjX~?j#_Ju{bG0KReB>5zSBsJq4ULaCa0_mq|<%d)>r3GOEgtCW}@fYGIyWv zIQsB+Hk#qZ^mbwXk%`J_Yt1UX9kt!JJ5sOHxw`K-B9Q88yKSrGz9Hh+J9BWaV=N8j zm|oJTZ8Sfbe`q4SsVP-Cd#$-yHKsaKMbL1MVvUP`>ezdn&$Da$#cR#|uQpc3=1k5! zZE5Yav<^yyo0?OVOV^sWsn)s8shdHo-N9OuFCwi8q_t$N=@6~?KPIgqOKS#&rX^Kb zzSg`#weD<5T?SgN&u_Ko_VkbK(0ppSe{Q)`WEYQ0Rc>Bu&Qtg8qf%$qxjR3-wLY?Y zXMTBs9h$@iq+x6_!<$BPcpq469;zBsU8$LM8g_U;(QkA#YnniWr-j-Si?ylE{BfEFz$&2jJ zyl82-Ee#6qruI~2_geF2)tEXqm95iozT6nzadDbX$2#-Nr5u`ze?nRlD9lacILv#j zGcQxEbH}AFt<$o@{Li{DFC?vL>&$+d7s9oJ3MIeVRXflOzEr8Ql`+_XokGJl=9{XdfFbN5KSLg$)k=U*Vq(@E>n zb>@kp_1y?*`6$eDCUBT9UuUjUtve^A9uch^-TT^ME)Iv;3e6jq`%H=K;yqK9#5yyp z?%VfF-3adPM~5T3cjhOT*rB=d64LNXcsETErUaA^XyHXL*Xn%MlyyL19cWr-Q zo%!4nu9}XYk=85;bCV}kd1#&a9o0J5lR6EwTo2ZTc^heMUS~ciT6bAm-4fZnV}{aA|Z;=MVtFRnA2)qVTkDMy{V9of5wBfEEI z-KBPD9=9|C65dVwq$=;PGhf*ynV!0D>Loh2GOgKh-#HTAaao$q?seuIna@YQMEE%u7jYkM-s^MC&6fD{_k;u{oZtu+4%k0qXa~WxbtZmrK z;XQ7>d75fWostUHY1rYtZX~?pf;62o)|-D=%vJM%r8Q5&+%z>+`R;mie_LzMd&B2W zO-%zW_lmkO&myh)>&+FSb;9M2*@yQ?nCDDORnA{;8al2!r=`9aYD`)C(vdJ{p1j&?AH%XtN9EwJ|F865Mw)|)BSI(J6ux;ia8 z=0BG>U16s^W4ZTAnCJLXl{M?li`4y2U+Tx;?v9LvIrEKQ*r7S-7o>5Kgm>`)smkN) z&68DQ`vIxBpwWKeNO;GsrRlu5-n@4ar+tH^6_GG+IxtmvWxY97wWc1FnhaX5^XkIf zPg?J&-9d5v857b7!XhL+83uo#%{%dBc@bvF zV2sp5Y@NFu*|T^k_C4EAuChaO2&;(v|9ADggbn78RqNctQs;q|>)Wi=@hjd(e?{(biR_%iQ zMHa`y%^ukLpql^Otd z*DQ9oc8tu}MRt((SwtGQNT3&Yrz($bFcYe=y*m}J({LWz80c|NOxU&k@eSsCQQ1)~ zt(>(xe~SbD^ak@h)tY*AYJQ!T9qqb-yTk0X2;{?Wh7Og=lwJiyXs=iBzJHkK#$IUMXuwf^ zhGq7s-nOLHZZchezs4@$aMNgd)9OnEdSd2(lWS|2O0_1=1gSBjS!({(w$$}kQ@Z?iFQ z?o~1K*T3R|JYqS0mvGCb%*D$c6Za>7_d%-XPVA=duhgfn^NU;TH;wl#w}yK2bH8BgM#_V9J=UK{`pb5RSDRUfUbRso%p0BRXL>s$iE=)KkS&u3b3CBLP zHt!~v*_BPEd!_c?K@;&O0_}^;e}A+)(|L(XbSAdb>-r>*e}Q|Se62l^)2=0{9h=NC z*Qr!1NgbF7&{MH>*Y>E=zowYHvnliRuPG+fbkg+F~ubshCy zqvT$t6OrW76S6tv((zlB=t#_l-raxY-XFNm?)^neY9}T4GL@3#((|&t$hGw@m1<4w z2~uM=veb94x22-jJB~hVsBU@RE6bZ6o7Fy~WDls6Gw}|+wldYcHuKYjqid?M$5*dz zdWv@DRlK^VB`HpyZ_1pVq}5ICooiICGqG9Z=si;2y3~wc!y~&nX^-qNa-D5#HpeW` zNlN1HUu51!u5BAtsx5I7NVWfwrH)J4QWvI3s(G{7{J)U+;v)0s1N+amLHa-H<7N=-@xSt@h+4US2ZzG@rX zvB(^_k^}V+>Cz8>ymy16%ZgLSD=O2Gm<%Iw-^C+3C~Z&f`)Qh-d$Z{}UE?Ih@cAP1 zKOayrys1(YKYA@|%?|mP+gR#pmimmO4x6yqeoSQTf|F`e4DQ9|Gvw<0NTr;KCq=6H zx0(OFm5O2E_^&Po?_%?Cnd9v%X{4UbraPb`m0e-_VzZy*I=@i)&crGh>G+jA(yklr zNuO{dg=^o;uWqDpQOmZ`OXSknmbel;+plNON7?fY@|^9ZT9^g3aQb5Nd*s^EsZuS8 z{{pE|*Ra&tzp)3A_>JS}3#L;oc$RQ293r(qw<8CW>!f{DYEt3=kusLuvehc~SLrdb zRrrDCz`zOaz^*0Jzb1Z>#pZRt;2JqJLqqp%HplriezJosTx>Rze#d^=Uq`}#p}S)| z^t&_m(EmYF^fL)ySdh*_wEsUN_XpmF#(1*7m$SOAEkXS0hJSlc)QETNayt zBvxvghcVDI@`^ga4H}XqGy7XR$esTqm8QQj-#6SSoYz%^Z^JZ?;2nA4$xf zOR4>Gh1{@7YK+e%)FI0(+#H;kWK0)pu@o1*qV$b7@TSzKM`@xV($$l_liMf_s zTYs)nt%(9ijp<>j$5`qkl5(7$IfT~tL~7}bs;4t?J$q(;cq`B2%3JMuWNxL-LzLQg zv~x-Au}jPg$fa|IN^~a9gU-i)hdb}M&7Q|Gw~^F5O6|W@N>UqIVjfSfZD~u2o&zsJZOpa|*e({Zpmd65jx+_WfDvh`Vg5v+p9Qg|wYN zyrS`*uC~M+dY5wjno6}KcG7EEICgYLO<}3$S<1PJLeiI+y^2CYEhoLJo|6)fvuEbQ zRUDGUDmx^1lgI3-UBMoC_!qLSp9OU+-BNULM1TK}Zr64#EAp2?e^$9#xLD!#5ZT2{yp9B zkx=KJD%_cv0izx7;?cIC)0otD zCyPG7qAw1MI`=2hBvs0_P$^d}HUCK>EeEJ*OX67&9rfkS_8ZUd_S++k_S4fLd%E`f z^p&(f_^o)-?cmk2KO~o$c@mj)go;i|+%KZWuA4I#ucCLyJ3GEQu(_pXrv!G|JsQ}t zN7L}Ln=@zMLxClw4pWso5=&sX?wvf`oA0rQ`xuExZOtW-Td1~vp@Eg!Dl9esmqc1m zR?*hP|A6S2_gVC~du`DR@3mskv`}g*S65r#k=lAUFO z6j$%p1a{^!^TUN4*xLtm_+w)<{MEFPeNO``8<~HZ*-OeDOSGqs!~z(;`xzd7*B|Vd zobU$??C5Jqw6Hl7{R0QK_17xWnm7hT#yr6ykFv-cB+{L1I#r5mZC!D#l;Y}HW=yfqIQX;}eec!UvR(b8yJfT4I$L$+K~!v+xrKDb+^4!@5=GIq ze634-+d9_0n|1#|x*e9S>5ogdI=feFH3m1+EdoW5{F?uyI?ag;=(H4A=d=gy@m>C) zzumynkIm}-L++^)n=KwBSEee|IH zm};Lt*3G^BucTetY>u6&b8n}Z(o@T|%gj?qXWZX(%;OR#f^Nqjc+BZP+GF1EN5_7{ zF&$kZ-EFj0?XSABRh5>RQ%R@wAFA7$m;}0G?qS_SAF_3S_>kk^*>+65tYy%TW?DZA zVZXV?@k>on* zG?ki^IGm+2Pd~!JdjAnSSZ$BeJ-MrBjw|atq#m|iZH^_Ej{jDPjzlYr#@)-KS@Nho zng=YY_M++9s#3BARj)R8yg^&g*(%kVsL*R`s~9ec`7AYKtu6K4wG<5TjOJ)vm2|Eir!p54pM8_1>eQkCdTTnC+x{{eS?@jAQn zo7a()r)Z8Ts+6R5`f~HfYvXRy>7mU@k(=mTt%Xwh3CnUqq`Nr^q!GjrMo4#|ZZ?2s(qK%Gyg z)c!%|A*l^7H{bg=rS@i(=t#Upuj}*SK9M`$y}_QxK}C}CQEK~DN>aOUx%n4zZT+1} zwI()>NR_NB_Lu-m-Bq-uo+hbTGm9e^l>23Y$CsP8kgM|nm2xJsBGr7%&0AxcOA?L= zQ$KJ2>T61Nx%tJ#yx(2Aks{^K{9z-lClcuVvkG=5E{3sKN^UKXs$+c~>O0^|U0;%@HSnB#sw$!7RR5xWl37Oxr+?+zLEl;XcOX3?KHEJeH z9kJP#I(sv%@?&Y0ZXFSgWaf1z>+)|JDDQVtX1<}bmI_(TU)4|Hl;ES8{NU?Lb_RyIK!C=Sl!Gk^jul8Wmf2D|pGEe=LBi7b>wOp6m z5;MTFeH?qXJ!X3z^%xCe9+ks+P!6HE*+i}_dstG|)47(!mpg{nq8q&~=RhgHcr1(+G*2~qiH8CGN$2`xT`#fcP zp8OPTiLtse`IVH(%oXNra&<0JDQDtnmdZTv6ki>me#*W&zD*Ldmln;ANjeXCa~oJ; z?ny50gi5#*oiLitCwVmUpSDMH{nI2BFPg0$m6G?f^H!MeY^V3LH>%W_M3r9GXR~dP zrAC)*sUu4C4d82wnTtzw8%<4{Z&%mm#D)>qymeu1+03r@vFr2XI)^?mWxbmSTkl%e z-?VjNyHyPIuJx)F=5NW}e%E@B6|1hqjUcD*TEF{@{jT-OXJ}F@i{{u-Iw^Uhnp|OC zLayT;(vgiz`~;*r{>&r$=ox!bleapKK02!-qrG8|Kq|0mg?S3Oxz?$SD{&&ow612E z^j2GD1If&~r7r1PBb+rbg}LZL-W%rs zgQA}+W^VrnMgLXW3!YKM&csLbS`ueRfBd~XxEKFn4{r1}3fC&Sb$D;N{T?RVB)1Ng z73Ndq+V-MKwI%)zQtiKEspvLa>OM=VpEif;^2VFSoh!`Wk!#EAD%Fy>1EfafSZdm{ zw$vHV(mJ`HHivg)bJ)I|-ypcIF|Q)mN$;!Fq(mP}W!60VHP;HyHRiuA;6Qyux=s0F z=FsOjP#wEerz3F&49Wc)9@2%+*+a@aN3&Z^7mMdKP;#;GUt=CfuB}dsTR*ndny_+E zAM-IOmg;!kmOAEnDu_Z|L5#5iMi+~@*O(4+b&gdjXX1+rOEq6RTo8e;DTsO3nCHqo zU!fjmucb}m?>bo7Bzmqf%cSV;(jMH2ZPEj6sCI#LF6Y61zibb7Ntr@cEM_*8DP+`i z%oKGUleiCD+ZMCyXY4xTpEQas#sB}Otzy@hSCeb=K`PapSPW7vzhtS~|7nlnagv%d zs7sMHi9XsS3RY3jCb9Aw^DJ_=H;Hdrq3lZZfShg;C%<5C5*NQfBYT22i9c$5WRvK> z#+*g2d4 z;j^~Y)j>$=pmdG7;}xod@2ZqDQK8pXNj3j?xDHmge)YysxyC&4$6W8fH(w)0i0EpZ)4 zwV%yW7yrway7^xuMIRzsE%c-(~;N% zhU5c?`7H;u2-qn#9Q>bVPiOrrFOH_K^58< z=u@=A4=sNq1#wow{0q4{f2&f?#72>7KFKPGSMQ)Jh3{($;-Un7u$1TdH1#lhC*4I} zrh}Ec$VkGxg%msQ(jGb!*^$8}t?Tyq<9V(pM>DL&eMkuTsdUY1@Fhwk0kG z*Y;!C^=)?T+D@bRoC@LsD2QyrJe6Eq)~HlV;v|q7brefozug|iqa<~KvC*8kUJ7D? z6vX`r^Z(Ix|8Z5;=l{U*9F$+mK`}8gpfE8pu`sdl77_ys3kwSi3knMh3l}YFv<`}f zdZULE+OcrKqJ>3;3m0wF&}h*{3zPcLq6H3%8ZB(Nuu<{7UhnIAbM9K-KR%Dg=REhm zUtah7$9>=D=G=GZ(xwqdbyS3Tjzsxf{DaHL%JIv{5Bz_6MZIboTl2XCbNZ=t-=jwG zEy%@a%Vp#d(>U{Yx{U15|DMAgM)GGEY7;jb~_6d#{eNn@@3+$MFeYM#g=jE+f-F zq5TLsYJ{xT`ymtIThsU@Z8G(99Wm8>@JH25i{NV7K2g;SA!_iDt}?wwyGbw+tFkTP6%pm&~Sl z;EQi2bYQql=E2em!$zA%_~CL8r{@Us`;XMPcxnc?OIin1m-JA?@+cbG#d<$vXjfMl zf1^ztQ+0&He4it5qk)GukgLi3OjYCjjH2coHT)OqC^;tNRv3q9(|~Xt6<|L9qo}}% z95upG(VtV7%=6sxIduuOw4blHw3}r=+VVs~vKzn7t^S;UW{fQtc)ph{r^e|mr<&P6 z+H%_HZl;|;vYp#{+gqDIVxz7q81-D zd}sV3PDw`2QUH->WdLxLro(t-FoSx*4 zRS!Yr4XL?l4o$c$bqzfu|KlIxFWYVW>qELU+^Hjd&Cluccx19oMNWJNk>{((pi?R` z{uC9p)^pFP3E}f;3%)BAX0}?l&b7O9>5s0s8pM?&7E2Rv-E(Tf^3-)ljVXP)cjSt2 z!){|gMFjs!7ZhynwMNp@8;Eqgfr8>xWX@Nrpz^P1zOFxN_?%+qj1! z{Ofh3zj+r&dWOE5FauTj{aZ!E{hPWem!>@33Rg$9_a5QzK^41=m9$C3Z*>IC6l+yS zCaJ0>`~g*+tEy_`$Zm>UxPgvx@93)JC|A4Nm_-qe79Hs@XGm2^!(3I?u&T;AOjT{9 zY5$gvkZFH-w{hxkH0}SSBLd7X==1pC`2?t{0uQ08`Kqchj*K}?Rc*3N|F>oOzqQ+V zlOpV$I?`^w&XFG1=?QaZS$=P=9y$47w=p+Qu5~Cgbu&%)S9O^(;Xm4K9H5Mlzv;{n zbHBArdZ!zPbm}uG^CDGd#(&hF7ypOKyzi(H@Uo7SJ0_=g8~0K~V84zGH1Clzd;i0o zH^LE-UsF{N{KU-n-D9kxO?>~QBYe%3)~ZUUsH!F&Kvg{RYra-hwNvC(4;}U1LGe6( ze8zK_DfH!N<{sl5icw#VM$oBY=GoTR+F%unC4uL5F!|C)CPYu5C$C1R(o$LyPwSnP zC9z!A(qY~!Rds&DRSj^2ZBW{7#3K93J6z2ZwP ziTh9{FNxk!Ri@v!ROSI%62H)qvLs&FW4uEVfoVE2(EJNWdJ4bg&MW^`MKn@GYVA)f ziMRI{Ptzv8*Xjsgv({SGk(sKhiFctYUJ`NNsmQGFXh}S6SrWI?lDJ2fMBg6cL5fjJ zA{(6=X8zn7+jq8#wJwRC@6?hQquA7gv?Mm_os}hVdXKS&B7$$%l?I!ut&u+AD$t#vIb{XIPA1#Robwq@DhCYvvYVtX%stGrsDqa$u962(^zim*zew*EGp zqO6ZaF5@`mIm&dt!+eMH_vP4d9@|%JqqkJ-tFc{{`U)+MHF|ql94lSML24hcTW=p= zK5eb9G!pe43tWx*cyUBdK%ysYg6*<}uUZzzURfOLT*ku`VfW}ryZH-_^fXSe{qOl= zqs#a>hZn~XWu_jX#j#SCDT`y1%UDYpA-~p{A?6xunMcl5WlmjzGI?$qqZUUiFOGMuu~Fx% zSnJ{_@U`K5;qs+Qj~z88FVL|;6uW?aBIYulr-&(k)|E~%4_YIW=c>ryg{X9)I^Q}b zs+~`mXuCM|Jz5-db)+ngV=iMGMfi8=NPn}`8krlTA_Fc!*v zSLcr?Su7`A#!VCv@pl~=Vcx)zo}@`UBw3SGRnAGYqaV?Fpuc4P;2yvkm$8U8aSZ4P zhq=I7RqX|;s*p%jwTQ2OI5NhMs_LU9GF?Z?5}}uTPNIl_uXJR9X_Km4eq2?(pQ@@8 z5hrCyWYSYz^k9fOUqqD}AH7FQVpK=i%@61^9R)lI{!e|7G{V9U3s2u*f z3RwY*OO2OklaPsc{03+I5c5Te==J9+M*LM3kpa{v`L^tM+BPN zI6}TFEL43H6okIv?+P^mDzcp-7oL(8Ks$ym{~8bNt}iuip$Olzb)>I(lT;NK$W^5U zs))is+hw-XM?DRJwpk0QiJINfcrq-^jI&meyGT`Go!!HMYIcVOQ59$C(0>YlcE{Hz zIrMKUH3BIj_(EMpusKPpa0YP|o*-34D@CM!OSAc(Izndi{!*i_i)M3zj_@}>qR->U z>Dr5VHjnHdpUp{=Rb>8Ts>V$abLc5|^r zv4g__LeJef^v5w(dZ;*fPRmrYfZxqd1Y5%sz; z<*?o_nar!{HJ%g^?AApDo3}|3j%i#(%rvzh8Plk1=DcqBy{IE(GSl1tmeD5u)jGo8 zTxzYV&rnqb{K-3+J2`TMA{Wl1$^4W|=7Tbs@7rQbqlk##=*S2&SgOhi<*JH9RaG^i z)HMq{ABIxbyi0SpQE%Ze`{{Ejy%0#i>?W2@y^}o>68%dNuN&pwTR~K0li-` zcMs5m=oAs~dmR~I{@xmS#HJzxUq&QftaNbXFhx#S>{)o0Eo=sDVQx+pTDu1!X zIEx~DPv}TrbE-A+$OIKR@hL>|rAa}UDyk}sidyM;C(IT;buXf3wP(5H(TlMnDx3_#z|kY?WZ1O+~GFU40{;NpF|=I&V3>dU2+i zylks+H$`B{`UIGCMDsE4v_>YY`!_H@7kq6CEk@2&rD7w8hi;D^g#XD>8!>bT8 z$(oSsr;3`o6A3)vO`Om(%SN}j=wOzsdrA&w8@3uVDI)M3MB?loXim3AmiqGy*oH`+ z0XgBSsPb@HvGk%WbsNumFneID@nt8?fEXR=YyOiyWBi7~dHnoltBAPSv|qWNyJpjh zr55U7b`g4pZr$+~JX}WtRT0*MS<`Ga1G*_;;Rc!k*XaF{8Bn{`c!DB=6Lk^6=3`Ps z(m7m2);X#O=Q%W98|h$1KS<`2yBy38Z#6d4CjM9G2!C^vwJINVQ|3^>X73aj3|*&dk1L##^+B{cas$H{Xzm@+dwtH%8H!Ioi{X2zpZ% ze&o*GEl0DNWyX`VNl3Ad2r-|Kh`4jPinMdpjuf6teN#%4d5(^d$-JPJEDpfhpm9Y~IJSIow)>kGh{yX`Rg}(P}p5M^hCQG@GaC9h2F-vCR1TuQZ!$bQQto zzv(kZs56?Y7>HI?IOb5_RMKpwXC{6yn;$AO-lk3bpVblm=35-WeUq&2r&I{y+1$&KesifRdSjOVfAIi|f zstV_FRpoP4RgH+Kwan&sWH!HDX3U{Y?C z&3$FYf8VCr+@m8x%&+M)Myxf4tLTnVRg6(Y>Oq>#pXmsh&8N$ZW3)-&Cpsd~e48WO zC+T==_fdC9DubfDv)MUM&7-<`G!>tJ-P1eIHe(@e;ya`xe9bx?5syF8M5*qb7>)=& z8Ao5Bs!G3r?h_p1vzYp2-i-anXMD7c?<>#VW;{eOYKDKqGyDN-Y_hs3@`D-Pd4Z~I zm||BPme^T%mli!nwul~3rp<%x71W1(PkD_sF84fDrDH0pq^ggXD zc_K-@Pm5lHwQ`#=pCSUL=t%lu7Dsx<=5zOl#j1#;Sn7UykJkU3#@1~!d}tHjFdaen zSUS`Q@`9;V_gE??`g!}Vl_Liz@~R`2zOzx^y&-+KX`Asr#i+hJw?duk-nGUaQTJGW z(02t3RNuK4P^E9s(czDJqR7#qber)!MFhv{N`uXV*2q3}kEPP_ooBrN92cscPq>i! z?=3o7yrLuJ+_!g|v6UkHFVT_y=EEH6skxB*ubCryDI%3#t2JX8c81P%^iZRETh764 z#yZ+0B1uO?m}_-a(U^PchDhavVN}JJJ2?wgRpkq*s$+DtcwSc}M~hdt84D@GaixxQ znDeEop@m$PU!01Fi?dz4@I6{o&*%tQRL8a%lW3E`OdSzu+9bji#}V}$(HTcO_Q6j~ zjFa1pkN!dv<7OSSA}^v!`)Fd&gR^`Pl8G^SyRm~Jf`6tf z4K}w~BabXpk&X|&6QkxLRcSj#E<8ySV~>uMi4nEkxP>D8OLU~ac@sx^;x6X?OS@P_ z6kbeKeMS>wt4xd?GBFl!Hx|<-5!-b{gt^FCmCr@0stL!u6Jv-Y!{Vu`FKA+H)m6#F zShd{@<&Qk65FtMbIFs#+-`^%R{p9?}tV5ww20(f4OMVmz)R0?d!-^Z2MH z$E&IW-$YgX6)$PAip*b3Rh_n+MryIcbWyZZ8s_?Bjg308Dj3RmRWjclmgkmVpe1pOEQurAjVTnPmP7|Hi2!SC-%=H8T@q%3S`v*E zn@aESnnJG=_`#BRZ@Y2wEm{)q>q>*oKKeX9%s%uVV8WmD528{&*TgMVJD;_b`fqZZ z;dh;mlqK;QJ^xP;{=GWV-+Y-PJ*`W*|GGJ1j3QD)=%Lw9Wl5}-CGqWcqmnj>_*_Rs zm=)Hll9#EfCOnC%_*m(@R8>`fDOEL{o{de_RmqYFdBnJbA{@gy(qY~vRXHx>s$wov z5gC_JRrJm-|70B@OJdF=#xmL@;5!`=U@o;*RZ6eYq`nH=i>i1@baLbfMJ}8zPsGx- zN`&ujUJ^?mF{V+3-EX&?>g{GQeJ-QRqMStAdFRm$=zePdgEvXiQ@;0J>$CSh`lm`) z#CYlwZFs2g<3##0+)gWDs*VaV`{^?^;lpsU{asWybr-7Rl@Ps*b~wh9zKnKw4n51i zQ17s;gxp7r*C-+|Tt^0)zqdw4*;HiEc0}@*;SP=*rbzmw)3t@p}A(YTUI8PSBjz^4*6r&bG9J(^h++dB3@=+sUT?moOX(7aT zQkGL;i#!i6=fZ+7)rAF{iPnVV2`a&HKMLb{-?m&8Hb@Dni)r4^(7h$|{?H@FSrp-) zq9gsysn*C`n~Dth86x=>NkNi|tV*JymU`YvqN3iUX@9j&h%g7}^Y{>!+EoHQuS5wv z?L(7QLSix%wTz~Hpe{o>}*_bE5-rU-k1j?Na>{@A~=MCxb->3Ieu82028&6O~@UL{0 zbX$lcJxN#aQ8DWZRh9D!s%kw=`ww-5O#27Qjm@-)f4z>N+d|f=YNx2G0+O(!JnhFg zGA5Odin(<7e-ZP7E|uRa<4fg=awC-@B7UnQ>9&wmQhx!ofMI}f#&@?x+acsw(6XR3*2C(o|$|8dbHC4*zfINICo;E;s)D1|9zYq$BCJ z5Pil>>`mjUMmQpJ6-8{aO#HWH;=fgHyhWSXJ9Pxz7LthaRdQQs6@8J8@w6jiGrhOv zRb7Q#@O)HmJV~2`{7pyDZ6S$>yOOI&yHf2);g!@k_tE5jSx3m^K2>hqN1Fup>j=6n z#1VX^$ephGCg@!6$ZL5%j>| zf3Ko@oYX=c!bkWJ9&Rn7cE0Hr3x~j;r+IC^4&YR@F=Q!RP=J%w|lWCs3!+4vv z_Ycx}biau6xYPP(@-&~~o#w99D!-ZX$LmFn^s+Ge$<`j8^ZRAauiarhMR^ft>3q6* zB=tsK&GjZ+t@3iNw$wXiHq~1}3*b>*uPlI#JB$Ztdqnd|3?-?J%yPynqXIKHXN5dJC`Nddsg-^)~7}+asLev)8gT7NH;T zORgQp9NOLgJ99^G)F z&lvyK46d&`L)AByLF?oIt&?Bq2w5ku>@beeCV^=>f^Il*1P^&_B)afW(9mP!CjsXg z6Z_{J;6y|%a4)-;mlKLFia(yw^s<4b}ZHp!! z!(^Yfj&}CxHjjBN-BP8-YVl;F1H;T>Yh``ss>-a_KV8?V#WO--OI6t9+bHZHof9_d z-IjC0=^e&(6c&8Dt}NKRMk>p>jw>s^PE}TOoo&$?6*g%Tg*{Kp<~AKB%f^4FF^@L( zFVtcF<{WFKQFBzK0X^tLK08Eas_?W-U8!0#hiJ{*FKcGKteM$6jqi`rnt4!%N0|Sm z&luyzOs=$@!-gn~E1gnGl^&)AbAzr_7R;iZ#(T7}qfCc6%wrrTN5#3S(vWviDW5S4 z*Q!cAYjvf5yD0n>S}kjIxU80yJB{ZkEMT_|4=|sRO2^i6rD4~ru%zqN)VYcSd|tII zmA$f5*6lP(X=A%bhuO`CB&_~=UMii}tEDoa!Z3A$pQOsvd%$#MvQ9SbG;W}cLw>Ep zLd@$VEaL{QEdK^ond=7KhyDjC>xYA}0>!mPRF|SgkZ?}2E z*U^fh#%jg1@`~x=jk&TYbvNk;zYoY;r&dh)Iz76R-=wf(c<-0qZCNp|?lfMcu;4%I z%7V@3q_UxPT$$gEYB%F$%dj^(w4z{rFU|xsLmM*5+wgPg8{&tEn>4r4Fu*yfIhiqi!kvV5$tSS5qbIX5ELA zCsWuLG*xVRw`HoV+GXsbuwaL4{IcW`smysZSLV4{Rn|&ja&VnNVW;Te`Ym1-j&CV) za9zL4$fb?_&(>l7=6Y+T$?7)Kp@2uc2iK%qRCxX^x>9v;JxvGKDC{a-gnzx2FTywP zGL}$SM6?d4_fJWsowsnM103ea(Une_PnDjbgDbs7ohy}t>$Y9SWZKwqp$>DH{?JJzoB?u1Z$RkzK|f+9V`hM}(NWB%<(E?!WR|RTYgCk?K$Hp7=mV$QpTXm$891 z3A|oM1e&=VAv00kaH#{ss_$+FnmcyOA9D?XGzG0TGi1ifa$-d;#5{UIQ;~GGSWo5#DrBZ-&j$KNOsOCt@Mk%xM~7HdMXy0cX2Sc1aj9^6J%*dQgOErH4sVKS!cPAGW@mHNd|8)~< zLaCohn6Ll|au4np`)%~f;kQhYDJvff+ zr%2p`E8wC6PUwUHGt`=JMBR?63_K4Be1yv@P(_&qxCdvM`k%?v_o*=c)k0H$P)FL$ z&*?LU&-Waf`h9_(&RpDsoB6*ppB`qu`U;-;@tdeZx(Bz3Dx}Rr{-fhU%vOn0e+2ZI zth#OLOjIcM;5MlWdnh4wHO>5cb+^gPpI2c#P7#4)Ix^7QXN`}NmZ{WzTdvFhqrbn*cPnjMYDvVha;W$TE zNe>%xq$jD653X5-sw!t8Rkfa8uW*x&kTc)|6~?JQ(4jF#N6^ED^m%+O)=pJB8aTF( zs^a-E#*s0b=|n;A{Zg-4z!`8Mc9_n96&1#t6k)$eN7BQF9O-dw{)s=<(c{o_SMr?b zq|DR}bV|HNmno;j+6vEF`Hndh%J4;nHp&M245i{xMDl-4)R297fEO?HtN|wZe-NyYC;n<=h>0v{us`KYu z)c{90?x(7@(UPG5MjH=2F_l?COJbTXQo~x>w_=&Jec-9{{J9`vq`qqjd=Gw2q@y)MmJo`*s_4+T5>4$N8CK&6ZK@J72~5{|0gMR9q9s z^-$dWgGUUXf1po%%&+YfcY3$cLz~+^(Q!7jo8vr*5Bqm4G78mp_DYPMSA z`W7PY*tB0F?qZ&79M^-mw{#qxRO}SDcaKp`n@_n!$4xOk);OOBPpOhu;bR6jxxszA9jK!3pj&v>_k44rJqb~cO@fdnU zjYnuX?eQrcN#ju#=T2VlGN#bxj>mP0^b&PzTyi3hN2+%`%yQL%O^7?K<7hnE==X)2 zUB)MeX*}w5T#$K!K9A3q++{o-mwU$}c87|~+(B_?bR3O`o#M7phtTGJFX%Ww^Y_-c zQiI21nRh%oIBuBY=6_4$aahJ9g>HfGcNzO=b6c~Hvzcy=^JMP)iSeK(r2k{^cvS7Q zEm`hkdCkDZG#+L2+t24+#wN;8<8hS7VoxPT}hz)&`!v_1k5On-J$o*hPEl ztD|Tf+G5?wM_k5A+RV|ROLLgXsWFb^uCS@qH7h5gT(pRRNUlw-f_q4it~^5j>8bgg;mfvgd8<|K9zAOyTG0Nt;=|uHn)AQ<80{apy=^@T#qXwBALq&1P5U!b?+^91eV#jcPO0$_ zZSMF^7vL}-u*Q|zR9wh(Z*O<*R^2m#xY;_6dOIb?oxHTvSWBA+`8_JQp;`}8`seOL#59ssw#PIP$_92@Ovd>eiAfuA!StXUaK;n-0 zyT4AMzm@JNH4aCW$XAHtb64D> zDlY3$id(AtZZh>9#l2B#EVIV-O?EG}#+3%CxZp1k$CoCZ95;fvWxDUCP~XvC#6KuC zrd#8pg54q3xZ24oZt?))_*7U}rK4ML)=HKaecum&j0U-<1=d`$8{ra zmF~N#)OQp&eT#9x8rL_~z26$=6QbfKeSkQg(;53zb;bKAZnf^aY1DTS?&Nt}jQgx{ zQK9b5*0`vtD$dr0IG)Bs92fQ&#jVkOH=X+K9Cz|E`cDU2xvyz|gAH|unF&7kg@ z?M~jX#TY$g8O**J?h*PtKA5G`RYB9*{_LSG}L&a&>o|P2Dxiom{cSXt2iRp6#x;#vM_&s161H0dc$# zLLXOgiH}p<28m0aMN{o;cXI6(qs$sdcW9i}xIT4j>d@rhA&wV96UX%+ZlmtIaOyjX zJG{lnw#M~^yR)ouK4+_)4LpQ6UI>{_sOn0dptw!C?`Biq(XXi9+G508U(oStL`Wr11g?W>?x*(XTjNU4QPo8pKpZcGE{+>T+(WwW&ZWLP%bh%Pt5Ic*i#pHkvc}a$sJLk! z#PKvP`jx7#`d1WJs{1aQ`i_1DxL~VMV2#U-cIR8;jzp@skVg^6(>U}=6_@xV#ck7l zH;4Kz)SaBX)kv|%(IaC?);QXEtcu{>h~sJ8#Bn`{+oAjJeCj)jTf5Z=x5m+3mN09a z&v`0t@(#rDG|sG1)s@sxT!rqtxzu;l+{qia8pAJIMm8$OJw%_!M>a~`VmcI9hB*1= z%5mYf6j!PHZXWd=-EV(rtI=VN%bn+Lx5g!_TTGSy4b>Ce;eHY?R zuH0(WS>x#aIW^X}Ty=}7a?*o{<7piKYZaIMYl_>i`))q<9mPGp)hMyX_04w|TjNUS zqVMQGc8NHi#$6mYins&1?_#O%=uaN6Y&9~iaZwB08P>Sk7!?;$h&Z0cMNg^fs-L2` zTHSXSQs2=ZW!~Ou#9HHWFLcLPstmauaXgKiIIahA2X)`YQQuMA>8(Z&Z9abW*%#;Tw#NCWFE*9I zxrmcHCQqyCN}i^;=XKvLqQ0X)i}{xsP1ZQNL(*uCqrSvYOwL9ePvc>Z3;zwp9nyVw zG4&n&0(^FvVOryIFLsw(Nl#o7Q`LaeHTxCN54^DRA%H^<7(sG zIo7ybb+@U~|60WHG>(5p#brN3aj)pUTTFdNaVyJ=L~9(qI48jxR~n~wcG7CZ@igw@ zxKYHts{8H|>O1E(cg(n%ZxT_THb+Q=WGjCyr=uip#Gwt3mhvm&bP+Z z8t!wgaWouiC0u|wUJ0=cDlW5us{26q-E!(XiaS|meAi$Z&A#RCZ|L**XqGNjae;FX z$19O1<4#F;YVeZ=L(^T5XUPa=mixQ{{qFGl(=LY^&R~NBx;+n z-5OVGb8oT6^{LxbmA11G$19KYMHOqQ!(+6+;er)Xt+a>P4Nj|4eQ-4jE zyy83hSC5?+mHge_6?V7%i=!TAqixm|r;Zwz``;STXQvw*r8}0L8#3|ksM4Lw&Y|4M zDEs@RGm^h4_3=5pB_jEobA5a|mekU}7nuA_)C96=Y!}sfK5n#K?3_dYTVEo#Kas-! zTO=$^EQ4(pEK@9-?JQW1SUy__tU#=YEeKXD=46`$D@%5&LQj~C6M!yh=wbV|hOAnw zj%@^1FV@KRZ&;I93){b7tzzwLpTRoBx}=(ZV7Fi|H~bjZFE+^bH`tKa2-|zGQ8D}F zs>eHFewXvkIoSRJ3l$4z`;!wGDHy|e1Qsh6&(;D<5KCfv8I~fJ&h}eahFBKc^RR5O zJhpmR{^j2|F;7kuGCle%W8YiKB1&>qE3RTRl zXy_0NV_Odk7mH@gg2jl%v0Vp?7fWQj8kQuM#SNqnql=~jchN$n#5YzUVycVwX+>0bM|!zb}`nWVYgT> z+mo<lGVdTLc>v8)l1zjj%aS zj4{py+OLo!;T3A^&V@O|!q{fR!o{N5!eB9Cact9I@nVT=Q(#GAY08`({=js>Om1k0 zWr^jmeg7-6Jh1|{Z(xOD#cZcxC1Pc4L$Go&7u!E!RZhWb#!rAXV)bl&um-UvwjNls zSS#EA!P>++*xrS8igmNS4eJqe_A|Bv2Ly-MUWW~fjk3K48x!+ORm1cOEGSiugltW) zFtJFs7h%z2v24y~fpLNfj8DT7#ZuU6U}<6*Y)`;4#j@G7&cgLRAb zvfTpf7aL@|5jG??!nPJRDrQep!;}H@OOqoZ+f`0rs9-qb6|hLL7`9|stXMo-A}m2H ziERliMJ%1|B3Oo47TW??cA8xO`uTOVqt6_!NSF&*}7pdVsUK8Vew*#Y=4C%k*VvyG{(1p>C!Nh ztqqnXmc#Z(Se{q`+wWn8V#RESVI^W^Y>lvTG1n@-{(BBsC0NZ3e*>!#t7of)HHbB_ zRl}OaTG<|hwTX4GxnZ4R-E0*HaQ)XK*w0vwh67?lY+GT&Vxw%ogpG;$U8#oY0a(zL zawKFcf`y4ivfTrVhT-}zmhnztoHR^e+W<=xOJU1_rHN&*-2}@N%VxVCmLrzWwgy%p zRz!yDzjR=+ppzS>!pg)z`DeG*nS7=6&qkX z1RG>?o)~6q0FFq*F}7!5_H;QCrmM00HOwIv#&!S}E*8z^fyIc$u{{cl7fV#;?AQ%V z5=`TUJ7DQznQUdSEU_H6hhceQ1#Az(3dM@q?t_(xm9Z7V%AJBP#=C%3V%2Q7!)nCp z*>YhGVohw>ux7DVwi{q=VjXPP!aBvA-HfY&J%asgX|MsYA+{B;VX;v*12!h+w^|L; zQdrPxITEtP!@|TO*_;c3(Sosz7r^4g64>Uz62(&3B4KG_8Ems)nPS;&XTfsB^4UUQ z1*_%yuZS@SSS$^lY?EMRVkX-Jm`lvV_U#j7)navQBd~h0Mz(*$n#5YtgGNb&K_~eGKat8)W+%Y)EW`?LFA2nEh%sOr1`k-_<-$4#vO0LdC+_{sfB@ zi(xwgixrD!Yk?(*C9%B>OA$+F`zS6g}g=|m3io{CTeg$)i zm9y=KnPOFJRWOfO&DDJUw+C1!*uV{U!WzYz*|x!2#M;y2N_eeh%vu z8(`b~1g`%E1&0|6&~QX-jO`AX{TewEUZckDR+vL9jBPzETr8R`3l<|5$95eoo=jc; zB{E(OOp=CaY^z}DVwr3yuq?40w&k!qu>!VBVTEGFY>QzfVrAFx^NgY_MUm zQMT_MCmR#<%TU8~1{RbdM?$t?SQre~f02w|0;8p2EZgU>II#q_ldwdw6t-Sinpg(g zhph8?hCF(=!bure`|?I_G8=3#pkRxMV?)(oo`Yh-(g z%-Po@*uwY%8n%kHvmJzWh;^~m!MeqI*`9>;iw&|p4jU31VcQEERYuo;_BCppTtL4y zawKHi1q&4mXWI^o6pLXig~f`+vz5RS#FE(Vhoy+6!|3|&XTS`>EN-|7mMxaYmJiDp zD`dM3RwP!!b~DT=R?fB#W{Op@WvX@_!5YSEfOTRGY*)e>#hTex!dk@I*pguFVx4T4 z!MenH*e-$fvN=x-FfIZPO2c8cSlEcz7~5Q!{aQH^UaN-gT$n>FjBPe7Tr8R`3>G66 zr_9+g4Hz$&$PK5!lEl*3{9);0nQV4gmRJtk_xs86#0uEHffb4svz>;OI0efXhk)f` zF1CNds>G_@3n*pS!=+gc}ZRM4KO#wi2lmnla= zwyR*FV&QC8z#_$B*pgwfV)1N=umrIrwk5EXOu7C`XS@iQAq}(G7QnK_^4MZv`C^4^ z=fR4^O4!bUImOD^X2MLds!YEA3k7-vYq()BtWKqaSS0kx;CY z?Z2=tu^zVncyRsKD>%S-3JnLvhS>&TBVuE0pTg{GIVEa9+P^@?@U;iBjmI#({ z!$w%Sn2YT>Sd~~c+izesV)bmbum-UvwrW_jSS#CO^t&256bg1Qy3w#xtedR@)+5%> zRt_5w8)DlE8x|X7`z35l%R2tfEP~+r)`Q0E#LbgCys8~4LL|CL)44V%uRxF-v^f9sou_PE>|9uTi5lrWX zU%@iOve>?WWsBvp4Z!ln3fcYvD-tVV`#a1jR?hZ;GE=aMu?y%Ct6_TwRwvfL_Geh5 zSToxjuokg4wpLiXSSQ;bU|np^6FrQ-1NKV80k%W1L9t=B2H1$$7~3;2dzKstv((W2 z8s-oSV>~ND0=5TX zg-*d@#`}OJVr6WFuyQdM+g-3Kv1+#4VKrj)Y`L%ou_m@`ShJY3mGK5(n_vgqwXjaH zZno919j&PF&-8s7Rj~{7A+Rbb^$C- zEP-tfEKw|lEfSU{mccd)mbp%@|FRj+0_I4=e6|o+fmjh+5Ug0t$uf{onp->@dJ7Pf!ETE*JgK7)0Lb+Prsy2X0gK8E#+4YK{s2^NP`4b$0v z3(FA8VtXEzEtbbt56c%TWP1u$Bv!)qE0|NP{6@b1+YdAatGHnm%p+FAwg*-x*1)zC z)+pA@whh)I*2boKx?QZ3?HBuS{nsVf!}xP-+$%P~wiz}kHq2H48xb30y8~vwNsfd! zsiC_S<`4^GTMr8-Q`djdj9I`KX&A?L9V}ifk?m?&l2{tsDpKA-E5O#J!1WAey{wfkV=8gl#WuRLs6!4U-Gzw_c8fY`b8gV&QDtVUc1nY^AVRv3M9=|CIm} z1e3Vo{je0Vbhe+tGQ_gjHo>yR^4RiW`C^4^x50|UO4x3OIh}&#jO&1=SQT3)%p+FA zb`7jftby%HSff}o+e%oASQ}dstewqyqLcA5V3#!PVY>v@D>lHk2sS7-%oYn95gTKh z3$x!WN5Y%c(47l&h=nP0cFYEb3r2IpFj$OO9NRQlyjUXJ6j+j28k;{XT`ZH$4$BhD zVf(&{EYB%e!1xWYP^_5kG^|9djBN;3F6LtUC#*`Wn(Y% zwqRJDSOZ%CtWm6)%@@`p*2XsWD6aq71v?r4`zTqLSP$EOV7+1kY^Pv@V#92Muo1B_ zwohU9TsacvsvSN7bC9X)zc9v+fZ@_GnyniaBNoSY92PH@$o5xQl2{tsTd;JoOtv;y zmRL?MU;q6Pm?v1k4Sx?S6f0&s3@Z^UV{3$!i@DgIgH?%Dv;78EBUaB=`zWse8U&jd ztI@Dotd;FCSesY}n;X_C*3DJ{>k;c`D~An;4Y6&74a0E#H_G@+;FvV@yH${N`v#o~pi1o9j!3M;J*qkeX!-AuX25d~sZ-ZK5OJPA9 zR%*i$hRwiZ&P5`2lyO0sIPI<^s5y;vjLzhO;cEo}dSwTiW~eFp0g z>tgG70=or!89#>giw&~<4K^e;!uB3)RLp+68m3N|-|ccFWcv#&R4knBPq4__<@zs% z@dz+h8pgA=z!Jog*j|REh^4dr7M3BF#r8ZbTP%;Q9+odwc)L?o{S>fBu!I}_3g#3m zXWI`m#j4n>m=wmq;qu?DuCutu?Fwr!QT{%a9zV^l-ZF4oER3vApa*2DI5Sg+Us z+h*9H*f3iGY(#8~?GBjz4!Qmdx zxc;jVtY?fu!v?V?ws2UpSS#BMSesY}+f-PmSU1~bSdUmgn;&cdhU>o}MjLQg8jiAk z=OP;u^UGJmbOsib&%+eTHVg|Bi)8x}7A+Rb_Bkw0EP)KyeSUKA|m?>7pmI?ES)v#Rys}pNryAsyO<~-5NxDwbR4cpj~VC`a^Y?r~h z#Cq5+f%S?Fuq}cOiVd^H!bZf#lsP-*0_}J5I0fCQ#_n90LoAGKHY{8$nk@_#BNoRt z4Hhq!$TkI*B$meJ4@-9nW-{7=Szwz_kwX*#mtWB(g?Oj->SU20-upY5~HfK9_Bq#Ad>Z#hgyYM}TF5CfgR6OU%Re5Ug6Pj;$D0FV@I*FRV$d zh3#%wt5`eRMklaCu!}Jd)-Be{b_=XuY>@3n*pS!=+gjMDn7u#^QwGehK#qiLSHVIH zl_L7BF2flN+|dvcz)O{s_wxD`5LQtWd0&?J%rFtc>e<0@ee=^84U3Jk{Sr1N=6AOmrUzg_cgvBGtq2w-7Rh!GELtp<4A*~m0^Kl{q^afFpuq-0&Hgy-<#Xg=*}64ReTvu^oVg zi$$|}U@>BGY>&d?#S+0+5|Ww0!<9JYsHd13`@55fw?irMaim57zG z6~fBJoG!+@fK`IkY`4Q|#Om2{VGUwUY}v48u~xPlU~OU@Y}dj%#k$#?tARa&{fud_ z0kI*r6|iBkQ8oiMCg!(U4bxIs&}KOjvcDiEDrrUHeTk>-KF>wZO#Y^gZk+f8_#B&1O7Bp#Pk8P&pVI4ceUknUZ9HpE z`Ay$<$Ub!n{U)&Vnif#b$!dRLAH#CUegVrMlXoDZz@Nji$@0AIHj_E= zB1HWTL^Lcw!y>X0Z^JuaPO@^Z-3l|ws=T%yM(;s9QRB5NSRGk|*RF%ndk|0PcOc>) zz8cs<*ye4x3f4|0??6Pm6j&EokGI`&STEUt*Di$(k_~%pF^t}Wcw$T&T?54d?JK@H z5wv1_?B>H9WMN)A9~Mp)?X@Ua3|XAl!eQ}biC&ulOCn42+Ekb`oiNjjlYv=eIbNgx zs2m+|$qKw?gB6k$d+objWF=%}UONLTCv$mi7*<7AE$=`?w|)t%A*}Z{{2bOm*5tL5 zux7GWul2&($U40CA*_?E+iUN`ddT|6&3X73aDZ@V91nNEhRH^~_9kqM%r9kpn2y4N zQocD6>a|y4VPuhBYlcOW#d_@}SRB2FP`?8az3>7sku1gA@E|OWOx}Trc6G2!vTSd= zCt*2c`CfY*RzOzdwY{)nGWxgGH828Qz%oM9+i(|*-h+6;YSS(q**H*$3$dbI41WO@H_u6H!46-b*T>{G{ z%Y)H1FuH3IFrTo{+b|YZL{{RpxiBYLx!2BxnPgR7n+@}j)p#uoR!7$0wP{XZBVn@_ zr@&gs+PvluYbWdUnjO|f*5kGBcarsz4S4Mv*dW=k*G|JmR(>=74n*|A5YT=F9SN@( zAG?3T9Asf$`vewF7VWh@SPWU5*Lq;|9>f!gUi&{-5?Puur|SN9f$4AXS9bUVIS^Ysl)o_AIP{tjTLn z!(+% zb|b8StjKF?cjEf5m{49th+;C(u#C*~HoOYvBJ+6d3RpE+o!658A7%F+7e%%Ifq!;p zmgSeAg8UHUr-F)#ii(N|f{96Kg;y=R@~hOMq_VO^-4#qLOqsNfSG$5zDQl)BwUw19 zm3{J-B&FS~IlgBa48=v3ZeU9>k_ZHkB+1mdfUM29^PH&4EZecbRMkY&Pfn6K1A~ z5St1ZFHpt>up+irvc<4swlidA*c!GbGR%Y6w1Mq=G6Ab#J3&?jbI*ZDB|JvB2WaDr zUy$vG)vb{KY)t&Xe#c9QKQvQx0LZ10g_9>k_Lw_*HOL)Z>47VFPRN?fGvlt4t9j? zZnC4W6J2Jm`5WO$U`rR)+)j2DcAhPZtPR$|HigUqGu_hFOq0lbZb47THi0Y{7QvQ8 z7K14V-E$yPEsP{gfF*Ipp=8N0*BpqHZy;GFYzF6xAk?;WU zFyn7zM_>(X=g3aLPO+UO!#s#ht!&L?=V9$^Kah36lxbZ%_br)e8pePAj17bV)6f&L zeMuGpi(~sAvUpe`+s9-{uvE4KWErq5w)e?qz-E)V#(!@U&IJ~5#=T?X&C>tF+N7vj*JerA~GclJz-W?+dV+$4-00yk1Pxp!+o4Rs>tZmO@qxD`gwIhQ@zu zfa@6(DdPs%7Petz6|fy_gUEKl_ObORv%wCqMUd6OjtORBbHGfub~TfM%;#40gltzm8=4`gY7?LyI}j+ zPLtVS2iQ)L)xnN*nYrdW!lS?wU0CxC*-2OnTRquX*m<@iWNokxwol0%Fw=~#W;#gb zGXp&#+XrO9m|oC52O`yijW7ll&l%q$OMoS@?IufxWw7le%Y@Bft0K#W&1Kt4mIGS= zbC3W2L0AY}%o#V5ErFqs?lIwdvQk(X+jC^=VS?>xvMsPGHVfGf*d8`>G2uSoe#R%r z4!{nxJwkQ_*1+~4*$LPwwgqG@uvWHwvh%QZw!f2g%)t0hxxH)e<`9~0M^DI>O%?zP zW1CJE0gGe1g)APH$TpcQ36{#1N|pi3B6E%Z#uLr}&gP7x$>zce*oKoWfEBUDlP!i7 zv&E8`VQbi;$jV?F*!r0X1+aoKn5+u6i>)`=9+-`-2ibmD9h)cFVc1bNg{%Q~lI`j$ z*s0qw{yWQPCu~K=Hnu;=+F=g1^JK~$=n0(@?$Md^3zCOir}!5Lp9I|*xHD3&f$ri(k+0KxeVQbi$$jV^uIS^@&zb6#H3eI?f ztO~Y^?HJh}n2qfVvi-0+w$I28!;Z4mku|_hx((yMj|fiz&$>~nd5^3W*2Y#t)(&&9 z?IBZUq9=4txJNr;CG&>`v%N|d28&^*;&|mwk)zXSO?n_G6&4$oNteIcoLZp zrV@0|fk-%kFc=oW8I#CjVDW4t$r4~mY(vSCVHs=#$ueOx*kZ^q4`S0?n0x#ePM8B+ zz!^iy3Sq7}5UGHHWJ_QuxO+_KPgV*mWAi3k4-;%gvMsPGHnT*y1GtB=qXdR|5S#Y1 zT_igIJIwYQ*%6p)4n!*8IkFS5Q=IQCSqrR{t(oln-!T4bXZ(S%0~r6f&M=dy1?T*2eZ2Sv$f?*MC?PQn-u_>PI zcd`Un65D^tl3}hn5GmfzWSOuToUdgijsLQNa~Xf6j5)9cZ2u-Jge_+KnrsQo%yyIv z^B^{rv3*Xq9wyj6A=?6T&w)rKtR>t5+`}37lkJ1;XM2b20PHZ^n`B2|4Q#KIoq(NU z+d+nT5Sv41TC)pmDjqNtF{jfT=sbq&?N8N_;Uj|_V@T421nu%nmU}xFJ zk+s6w*hZ1H!yIf0WXj#>37r$}(asGf^M?hq4Indz0b>{=3FBZ1Y++=Huw=F%vQ$_m zTQ9OKST>t4*=$%2n~AIdR_K}okxD2N76F%V#!d^Y7*@)5iEIsQJzE>u2G|z1U&$(9 zJJ|k1whOke%gi;W32ndwU08F9tPXaB?K`rguoGWBVEdHJ zVFsF<6Yfzh93=Fai=L3}1F~RP1e=X41{Tlu7Fhx;iETGoGAx5_Cs`(J2FyMFt0K$> z&gG0-$#P%|*#1FQ2wTjyk!%Uf%(kAa6jsLe9NBu9U^72WxCL0nXd&AH+rw5&why+S z?Fq62u)}PRkR5?Fusuk20(OdR0a?pjjQ?60^9j!*V>{d5$vR+)b8p`|3R>$T^cK9BQ|Bf;$ zgbm1elI<#ukWRtQvf0U6VQp-GkhQ}cZ0E_8zoRGod)Lj%FJ%6(VBMVKzn=)hfH9o0 zkt`0Dz;==>5tht$oGcZV$@Udl7A%|XUu3gkIc$f`gayDt#zSO9uqA9Ck`=>B+1@2v z16$9wk8A^M3)>rH6|fy_)nvP1?l}wqcF$@QqvA!Mc;^n`2yWC1YO9Eg<9k1PTf$N9WqW||1GDUng7j7hLm zHpdEB1}uy1GT98+Y_>niFb`r=0ow(#1+XHvR_7YhtER#(m z%YtRIttFcc%W=(tNPD-2umD)d8B55DU`yDRlNG~C*`6d@16$9wm}~=V3)>>H3fPV= zGuPZtxC^+i3v2Erv%wCq<&f3Ej#6GU{!1q*$&tqwvOeneX#v(7s(F5 z4zvA6b_CYIc8=^so*7*s<5|KMWNc+?COZ#nXZwMy1E%D6HPg3brhN2-Yz<@qurRhS z$s%BJWUlew{}9Fl6FK9@WJ$18wgY4tuq?Ls$!5T2v%O6=7goTwmuvy7h;5gda51o$ z@ij6tYz^BsvNG5PwwK8Stb$FDRl#<#y+F1HW@CGvY=6GJYYs%}1D+u~jEqM)V<}k! z>?GR?vQx0LY)_H3!rIs#BWs5_*ow%M0`!Ch)O61A-vfmHK-V0IRG9n7!eB9aM*WT0 zT(US=0^3}&L|8K0EV5KsCfglkS+H!jTbI+-ZZunpM389m4xFw?zVrfQ7NGgPCa}#HKjLXDMSmERk&$SrROj%}ka7 z%VJwfhItU1X0ts`HWyaF_AuE3n0pRHs{TU4#lT|DIG@Z6Tf>$|RtDR^b`P0=Rj|z_ ztAg!fyORv_AU4_DhVkERg!_SYZj@@Kk{yP*=0KzZW{@?&PIA79WT#+f*~XEz!rItI zk+s7dYzbs$Wj?yX`CV-{n9v^<%r<~53>L!{Nfrl7U<)Hlge9{Dk)^^i*?N&>!LnU* zAkyCX63zzZa7GhZ0j!WsCM$w1Ve2f06~ju|E|IN)t!HZ^+W_0rW#*b+2`hj*y0GRy zWV>Md*iMt#UrfobJ@0%<-iuO z{e!F!wwP@r*%FwU&Agtl6j;Xi9NBu9V0)Tu3#^LGLbe08hpm`wA8bF{6J!TqhuIz> zJF)=dzXrw!2~Qy7DYgY_NC68SB_Q$qvJgvMFQ@u#;?8m%>iL z&a&CbT48N$e~`7q9J)Ejf9DC6`_U8L-_>@%kom)c*?uAmgT=5llEuLi*iMoq!jjpJ zlcmBk*}hszw_ zwZS^rR+BkkrU$y3X(gG@1Lz6amXQU+BG{IY#lYg(9$o4%qbmd^F+M~YlVKTb3&}EJ zGuR5qvSD-C=8@&V7O>q#RtQ_nHj``#%smGpRsRgaQeYWpoJO`DCfIH!+XAa%OC#F> z+rySjwhy+SZ44RaL2NqgG8+GlAUpzW;EY4aPQYAqAW{M2$XZ~noG+T}JglAVCbABg zYYs$OH-yYoh@P;ptLXw@W||1GDU8vNGDg7S*u2Q%VTo)iSrROj&G8fr^B^{5v0Wyc z0h`VCC)r$>dk#b@;RV74z#`7rO12nQ%yx#%3|qt2L{JInSSSu3oKt%l6p4s^xf*SsSc_Z3>wKW_qZrnI@6>JcOQ* zZ30;^EP^eGECv=2bC3T<5+(qXIO9;VWLO50mue)>ge9dI%VeM=`kafV6MP1GGEtzQ%dO|YS_^*L502sy@za)!* z#j*VlSv)L}?PIbeSSs5AvJ6-j+xuiQV6)lYHWSVT7BKE5TL3F!+eNk*R?PMqnHjc* zZ5vq`Yy;cNWCB*fCdjH5Vf?p?@dd&?$Y^7Go@_s?j_nz;!?2@lrDP4TlWZ%8MU5+yLCd z8HbToz;>_=BHIPq$JU?B20OqOK~@Jl!q%7UDC~sO^zmOG!jr%j&e)UeEbKg+4_OB8b@6|*e{SpS?WSAXp(?QIW}>@Pj& z5Vf9CxpW~D+X%3hl=RcuV+`6iNZ+T&4YoFUNPFc}%dx21vD)SP9b#Ma7)`=*>N2T1 z)l)LtS0dv(z<@@R)}#bmHzG*oj~;efsR4!mFIH+o;hU8}Yosjgl`Lbm1`o-;1?zPd zr&W`;WlyR;h>iX^H@!M4ceK_XmS(5C*bz;V#%bk+j$qnw8)~oe$0_zGPpUzhdm>V* zx!+X-t=JoP4RjWNr0@OqLeaMrb4M1SzG&r@9@2%VNFU9F+B$?iPk%DgPPKxKmq*oP z+N%+x3Hiv{FgN8-SdYFRy(aei*VHW4=o6^jucIZ@aG;fHHW~S;7G1S_k9|98r3s0D zC$&z_8m&!t7cpJY zBCaW7g4X=Njd4HaxZzq8R?^ETrD%=a1J@4K#)>z&jEJ@3##nnfme$nl3Uzym_Bn^b zktu7@?lP9BT3cMV_K}8b%`e;-cQeOD8L^UH#@ZCE#uZpU%F>2wz9MgRS3M%uYd6MP z#j&)eXrnV!&xzXB?xCa++QkFT1G4duQ9FE18AoW%@81}A5yv&-;B*DHOw^v~9=LLZ z*60qL@1ecfJ+K9Vzq~Q<91g5CVI6(n>nCcDc8{AjQv2K;S2mlpE!_i4Bemw{8w00z z4=kIUfzwj8d%6dXOw?-Jfw!Bqr@P0sAnwH*;|?)*4~&)c5|^iHQ?3a-O55rVobIU= zbq_2hYR%q;8&1=p?s2gW;?_%&qz#AbM*zC-D9KX`r;cTfJ9x9FHm7@Vi&*!J5@dFu z%kDZgkw*`9yQGD7FJ$c~?GbmJ5-%;idmL$$);#jYLjI?FT&$zVt(7#TdtA%tFm0|o zaJ08JqX36pA)6d z)hK57%Ozd8aB1E9M1G`JrEj;7b@?@U=&~JX{j*dyYg>?k7O3-A?nzWGSr zn2!?UsHks@QM9N^RckJg>_=UWt4?`(nxsXgp`WW$wB{v}{j+ZCq(>sH5rc^WtXC%4 z4|Y$>MVe$pO&Yc43d#PyE3MI7Wz^CwlC}-Oqoh!+F;%iR@009rxiWl@YD}+`w9?X1 zn$&Yxcz?-qj7BLd(?@Hl^1UlJc-STM;0E};SEOpQuVl}Sls+_Hk*k{zOZFNx?Mkdm z*Z62P4X20P`X5}yB2?+O%1@-3L4kYZjg-NHK#8hkZ$oWtDiu@KD(Q02Lh;;MWu$Ch zC_Y-NB#l9~W*kC#i`4hlOsK(caflcmbBGW{(d_!65`vcOV~s|60#&JgV@aHde_jcd z+ZT!{&nvNk|3!f&WEfBrLDo+ZfQ}nsd0rW4{t+p0sMn}EN&8rlE_{lAtJ3;upIZ89 zpWyqewf)?iub0vWX{j5fYHYqfC}x}%i{0*z;l>y%h?HS$?-z|cP1Q)$>?IVP>DO=(m@t&Q=PlsB(93(`c(ILiNt{C{Mm zVQdv>eZsZ-&QWHdzU>z&9dmY5`l7!`e;(oL#WhTBOaQ>WwDYRaiuVHuIJo()=+z<5cd+)1tenz4Y_kQg9jtv)l=KP-jFXw0GCePi?7@_9X zA51Y1DEHW%_VvM(m}gA8qb8%2Q!Ob5v>P2Ol{h!tZ5xSpJ9Sm6Ml1n-*bkDPtrsPXwHTnC4DRgQ?HXckdq$O!9f5ygfY$=bGrbs4y#+mF zfE97(Mk0FZvYyqc&q(%3xXfIEokoD4@NcD}qW4)8o{e>bux)2CKzSjpW8$G z5P6=!%@!T0FS+uGv=@{R^IJ%<#2B@;-PWeHR>F2sT82@3`ua53EBaOgtxNGqH!=5R zNLmSw|Mc1zeJf4bl6`=ue%oe$g!0ao?C9+;L^bx(WYuyEyId`MN^|tH@_x!N7x$iM zxu`TF)kn3#XgOxUK2nkMTpN)+Fe5+mNV!I>DMzx8kjpvJ2^vy)~l`0$_zPC>ctJ=YW#^=I$#t8bvWyG$(gov9gzD?14VWU^zxBUc_}p zU%5!Ke}rp_hh)&U`=#yv1lNvAk4d|?MUK^5N%oa?M{bg;CDpLoLdPvGh?T0z9;wic z=`g*6y#?E$0!4H$gydoFs>5-vIt=cfA=ks1jyk3EQP>mz?&-CzbX4hBq*Jv~6?t^e zBbhX#m$Nn~kG?~w(oX%DH%r#1OFcBbF4Ii<#%M#bujSakacEJnpOR61xRn3qI!W}r z76kRT9IM4~PgUy<{5aK8Ew0Gku3GZ0P1#nNq}LMK*jY=SmK42~Dp5=3KRle(R69to zCJ7~{YC4XMUBc0pUxgb_I#_C*g_BKEb%c*({}So+)Z^Y#93YgAQK;-^Ikw6}s!l_p zO7M)}P85btLTavUmCmNxq#7>a(rVvWVALY^+1% zm{gmn$>$EHSg@RX0Ug^jbfLu44^(F~u21U_hYHudu)7h%qIggZVStpNz4fp|9NeCu zSu#AdJ^21d@*wBc(%h{O6omG4D^}L4))Jvb*Nqjnmy`kW#Sg`gFDYT>y0O}m2-t$5 z0Oc=6^F)T3>~<_S$~Xh+hiR(8B@BkG$kF^7K7_D z60KTNzQ0Tx3$%uJ+nD>f8Krn?bg7{xrM;1H6NwG(&Bcbua&ReHiCeLJG&3zr{Y&*G z&c!xLv0O5|G$jq&X!iIUuApfDG?WGxvJ^T7WNh&I_K(u{ypR64Eh^1Zdul)3V)sE6 zdur2S@XQC7sSdg^i{YR;n_ATCG$f?-e^hyCEl3a7t3A~E!C&M#iS!6Fy5}^@ zG3q<^U|DZxEMw?@XQ(8XS>E-qha#=C8k zI^KwLwO6C3=7sjkZ5fUcb|338tU&D)Aq6-erOn0DN<2zig_Ryd9vYg^fu?V?JYL&M z!LZzq)>EXxG`8(u8?D8lcZ{5)+P4kSjx||!|1Le5_POM12(vsHbEyFFMB`?~%j|0Z zO?BRS_ev#>lCWpBUiOyv<&EwV>l>>bre^b3{@A8mD!tFtNf(Ms|C zA1z2noGps4b|(t;QjD+WZccZ+hxI~-TFujLsGd;k{d!`UHRFb~Fl)Y^7G$N<>)N0} z*139`t5zj%Z69`kYSfb9tF4O0!!Xn;odxN+{k4)ZdcY7M&Tdh9c*kSKS*X?)SzO(M zA=C&h9nw#BUQENfZK_H?zUk@^WPJ?7u(8PZk7h3%-$Bl&z_lZ_MhQn#y-6E^G)b`> zGvTutm#0!ZV$%EBN^gxk17jk(^yT2%+l)Kf&U+n#E@P$M?u?DzqT*$xkJ<8pypcwj zr+qT3KSc=+HYRG@ae(m;}h)%=0 zRp}<@C;-o~$!S>EA0q)8eg4~>C)(3BQqc2=#D6Ni5|6qQW$Z3Gsq|bQEf>catvmrM zH(_j&je?$um{v_^-O9=YvE-jhr1^r>7_C|UFglB6iPe5YB-(V1D|S;UBz*a zkY0Ch@eock+G3>-Jp#~+D`V(JF=*hj-IY(z(}+A66Hpq(nc!)b?3=r1i1gLA`AK#Q zicT3YqOnJy*i`eC9%;Kh@SNc=ivKj~vnet`do?#kZ{43xyLO;9O0(cH+#lmWx}n~M z*tD^g_`HG`CEIOK=FUQfb(NGW0F!Q<%>f6icq21?9H(OJ?WuQbV)jUc>n;L4Vn)+DZdCz&S z<`(qO)J2ZU6Ek4F<0x?Lp^;kVHL)M;W36xn zmlQwkVFah38xb_H?#7@YuAqM)=t|j7qkxGN(Aiy=M_GDkWv+OZ?S9%lu6XEJ>eJK2 zib^Hu0R{PKed<$ahgTxsrgVR;mU@PsiCUN*FU0yMKG9V5bpPwDm=NnFoD2bQLx!JT zF%P=8mG7^maK+R+D@I(!_RK8>&WfPR{5Yv6RYZAIF1D9GQM-aPcdWm;V$nr5)*b6m zm`1TiN%9SsoG)B)opsSukM}dIt1cveE$uy7Y}lp*nz8r&w3473qrBTa%63FS>7??B z+Oh7DYW=mr?mbQKrFBGh4O;X)O|J~mq6gj>ds|m*Gnxx4=F&l%)>qr#J$Pmv-e{9J`@(p(*LDeQ|y8O7YQlC20QQ z?!k~x4`vC~p6?#4wwLx31*2He0ops)$BGQrqVK)2p!XmK{RrA5i}6)Tq;H7!b7ER& zXYs#x78Qv3RrqoEV4hf4rIdt^%Ey=wBa_@t$LL%s&2GtXyd8nxeCdHmp8_%L6(!m* zS={l85^RVS_rIb%X-F5%uPCwe&R|6vWh}&@dC}nrj>3%rJuZz5%k1`hDrUFS^9AVV z_c`Qi#XrhNhg_-t^Jswe58Ra;M<-*^AGsQ=-z^mLUsb~8!}((Mt9YXNPQLj3Rb^OT zD`I_#^*83xwnME36!KNrvI5cjH6`nBSe?Rb#>0$S*JkJm?`Qb_PuFq{YKDHB-sf7* zLptSc$C;uRt0c|d^qlMG;6EHS%ksrruPK9j55;;?q-Qn;Qx`gm5AKYV#ILU@QMc7g zA7|Rr@XNd3y^i2oCFi)_(^{gmZO9mf&s0fjt;M5bEaL~$OnV;kUcgVmk{ogT`uyUa z9ZHy?UOc%&iHo?9Taq^}%^;1|JA~V(-~uJp=+VnF?921SM>~|)Lx*YfqkJRkAVQKJ zp@OZX?MlN%=}zTMc~8C=Q;nZ3Hssr0t5&{NZcEVfx8ce{JG&Y6h=JTF`h_Ep?iBIJ z;zgJ%hSugoqfUx@XlEoIr%O`BW-7A<+mNu0!@HG8rT)_z@yl*yD9Ro3hO%|+aP8sA z(r(F+W>>v%JmG(0>?}UE)3vMh(r4(|@E}Rw9Dakmo$}(i8<#JBeM1RV>Z2|Q?>)*; zwLVIkB9iwgLlAf29_3C$q}ablnS-Uky~?+KD|6`(2(UVejpN>!Cob<*q7wFQ?44{t&%I_)_KlB7d1Zl~yuTfbA^onlYN|2vt3hLx^5W>TIs?4_Zf)SC`)Uu=-hAostWSjRIj z(~g*3Z&5VPwWKuVSW-L<;@3BokNkRd+nb5k?@csDHc=Mm-jt&-w83H5?ag!D_h#SU z9pX4L(CZM_@6EFR++?z;O#*a{7 z8W6kNrf>JX$w1=#|7CA{5#ayQHbapA|FAcU-p1aHa21mFX5RICqaSIF&b`@-LQ>mI zziw}=^YkMvTR+ko?m>5n41d)&FC)PJWp6&1CuEy)yHA9cju%*RBtz>;@s&*p5D(jw ziG~QV$EG}^?0vPT82_#^PT5=Vx_IJU#VWsYkLX*g^tDZRPx)ApXU?_BA1XnLeCBR3 z_*>-}Q!=hZsmK2mcf6+r*gmLL1{&nByTzG<=!d&(H31;B`7j zuz2QOWs`jAE@#|xbrg5!9NSxm5!WzYM7^hkiJq4gRZRU>dEl=$P&C`QfqAo?8yGoT z-+K6zo9*Do=JPWymx(W?=*Wfo(DuVUcd8$ z42GFhvcZeyc zmBI3pcZerClvuIpwDPi?d50MD6L7*Ew)~%z;~w(r8Mg7~l+RUH-= z-;{gh5!1!G-;@%$=XBBgcdTNZZkzbKlCK)i-RcnY#D7mI5w?#nDx*~Sc$T<)S(z>$ z$`aE$kkgh$TRbGM&JyFVV7WNUHvfvURF&_U<|=FEE!UPc@fK%U2j0@HtnE{sWj#05 zw%tQrp&I{{dEJKJnd02=_9@N{iz&_x&!6Jl@Z2f3Gd76E!nluZYKeLgC6$8vQgBhwuII zFAD#j%9r&a^4Z1_ct9!HSK+mZsK`X&2v@U*j>gSZ>T&R3i+5TzWshnct;P6A@7>^* zF~S_71{;!uh)^R8!-XwE9i1>>vP0y)A=v|Q^>n|1wlSS7&At<7fq8{@^*2`>Z|k9J zlSEjg8fG4=6|68^zlHLsMtI3zxMiGHu=+1Na=cdX++TPteBEDoZn9SJ0^Hnfmy>aY z&r>F71utE@!g%w12?g;VevyN|1`5hzupMybJ} zl2-5rr*l(CqKJ|WTESa?kz6T@iYPV4tY{WoiVv(XR3BI&<9Yve4JxTx)yThSP`r~+ zHRdlIKSWiHzt*XSswQ4*R6AAau))`Fun_^KI5Xn{Hkb;hH^0S06h^CIp(btnbm_ek zk2H)CQ;&CLX-N?kNH&n<`?OG)aDj;ayy z{nfBruv#W3U$aSzhgO<(ZH?-c6lu~*XI$r~nf3i~93W}-bxCx_=6Z?)l#BXZyWM4;BA`-fbl)9^V8&uk9i;b2-&?Y{K@p^^j`x?Vp}v$Lqc3>OQE9ClMqh6YmQr;@u;vNY5#D zdQI#pd>@DZL$oo;!kOfJS8cx z5jU7`dq`TqD(R91hejg`5h3+yt@gm1xQY0$-z87{(Ea4&m&~Xk{k9hmrG_}1qws^s zOs^lL1H5*2vpU(#%xJ*lGx@*epqgUHK?gqbj`} zgj!MYFD+8iaCi0FhK13WHb_#LFV2ZqW$Eoz)1~T{uwmL8+B@2#op#4ei@0fs8ftdd zeUoCu{hez4$=|bj1NQDG|EbmVC^ru!z!>`ObrahDXc$Gpo6fp_<(-! zS_>;|hxVp`x z>`gx>-bhlTl~*P@gv07NK;Ar2TuxG>IOQ3noPXUjG&0J{HQHqjC6 z-USr9D_oH~+h?yvkk5j|F!(gtmTpg$Om3vPVeaEA(@|Y-A zoc4$n506&^`?jZW&HmL6{G8&dj~`R6tB-#nh3aGcC-|b*$IZM0wFv7D=YF1I{sBEP zUaEB0S@tQhI$5n$duk8-AO=rRE%P~zM|3TcHq7KKmUO$L+De9;mJvHSA z{b(wea)WF~Q`8t4w&Z)4)d$-gscIj?$QTR<^6;E-C{mi~SyH3_SLhhaqhJHwRvFS| zG2e?RlhlbSuA)g80?7gDV836`mbuTXd&-PIhhM zUt?|ge^dL@BBf3mE7r|cC%6)akF_0}t$yv^gZGle8+WPa48gW7cdHFGXfd%sjm~_RV&m;qdb&hEH`Db_!QFme*M{;@8MKkSbWcq}CDF!n@aIULlk&q2 z*kGjov~z^mQJ_xp-s%b-Ia>T)puQV|>;!562+$rRg0(dQ2Z)UOut{f$F=lsqV28w)t>HS z<8HpgPcCxLG(J zQeO;i9qzou({6?Mgp|oWzd9xlzgg^Bq^^{|7%qktskuFSX}=_x9y*ug`OvSaUJref zAhs5%{pW;e`jg)|xtD5{oZ}Kkc+}Hb6Py95fuiunT?v-c(T%5nh5-obSntwLXWB1} zaQ?tdMt}S?1O=h*K_hK_A6ESg>9epR1)&C^K*Ro*Krdex=v(BYK!-+%2Od$!4^F}| z#n206>8<(yFL9QS5MMr`4(lDo`SHlRw`LzE{2ois=8jF8{${;#WlXUg(N`=Lp;2#p-l}Y#k<+KBm4U zFCQj`J+3|>=L{3CJ+3a5(}s!YC)9Z()3AbmKOyzS$fd9K4+Q=XisgKnx{q~iS9%!I z!>s3qiMO6m=cv6j`%s(T67`}Yn}!OHVs*Rx;}BsjRyWJGA!5ohe3lOp&CArg<)?;- ziObb7a^Vp11bzN}hoyGrdh`78$eWqV8 z?PNUPG`TOadX2kAFgp=RAHi%LB7QNe;}g~ZB5{U0UnU8#UUZ$||2gXr=zGc!;tZG2 zWvKX`9(c3Jwx~k`C_%y7xhtPJltKsp%|A~T8!YP0iRjqMan9Ete9n?0Nh35VP0}V= zN+;aA_D~9?Iq-tSY0;zlOod(btjTh5O)PB7tcQzWO z3whpBr+?1}!_|$4#F7$q+{EG7aYGtL$zDa_1MxWo%XC$hYV*R4uCz#`MGedg&kK?| z`&0UG%dy;8sq>q7@oNbh?o(`{6es({!Qz2ZG~DpPVtXlud*Oq{FZAg^wNnAiqiKTNa2hI}M3xV-iNfjzP{1)AuWb zguF%_mhdmEL%%GaOPczSK?*zaYw9fz(RMy1#~TxE*lrayCC)Abdh?t$YE<;QdSZZe zJQAp2G`!x@>3I9Uv@!g(>t5{n8g*iNCGyo`?0C>MZcM|kWm{Z;r!m(a)$8=XH6l(*u9TZ<}3t4SHUG*bQ-NooSv(a}U>tq7ra9 z7)`&+Q4jj>LAH;cQJ*kOQBW}25qj%K!gu1$jY=%yNfpHhK) zxJXIr{1XB3XvKw@e-DzjcuF9@&5*Y(dx@lgCXWaIM-ed?uFcmmH()_*2erP-9oH zyg^QTk8008NK9X=KC1K^=n(Oq9-%&YNTj~F1$!~W(<4f@#0&4|(Z%Ep6t6vx1E%jF z@!j+4wCGf<@jD{WPubKxWMjoVy?f|`?xBy>G)PQYr}ppDON&Czh(PI)&u}4a!r>H^ z79z~+)SJ@naX173?(4-@SVq54-mNDtr=BS&SKq}*XgKa;qql@s!II+1L zquOn8;-hl)O!WC!w3A61o#*Gg^No`FK8G{Uo`(%s@J8;ELE=+Q{ZcN7v%U0!df0H& z%ZE}LgYgp{f>PiS$cH}-8nF^T2R6rvr5o{N<>P^3`$lzI-*0H+u4cJ}zu?)2ron4Q z7smMuj~CI~uN^2#UQ}oKMaMaUUuy1$hZ;fFQv<}A7g4_Hu{Q6QRBw4e_5gGNp4|)B zM=#(fa7#(Jb`k|Jh&$rF`-thAR6luTteCe+9Und(JJ$ECV>C72AXI)cmg##ezMqN} z?`%@%d6*F6&;VQCf2gru^4J)WzFnOz_m2@TY***Y-ZA3xc9gO;T0Bvu-Z}Eu7(CIT zXI!pp(snF=p|>jiflrY2Ojo+IQ{RmBtJK?ZO{$I-(_c}SxrR6w`io<)sKa|s?mQi5 zs!qe0`e)piH}<#nepMZ22p=AeOI=lF^=VvFDp#a!Sc#_s|EV%zS+YMLCFZ@RjtuYj z|B~maDBBya;Y90uf->Pb1-&2p6M{7-d&}}25#nkM4*g}}V&vQSOpOrp-^L-aJVLB{TOBWlM~KhgRtL*j;o>4b zqkBf6-_1$0KkFM@_7Wa1yb>!_zk@?&L?@l1s`d5=k^T-&segxyAKy{$l&{<*M%wUc z3m2NNRWxHx9Rk0h(Gy?3!(eUn&0pYy}%Ge|VPs}7X6h70fa)T!9T?Dy1ogTYsr z-&eB?J;ags)fuRVu>I;j;L-g$hJ8S2EBrt$l5fS|M)bq+hrZ}+n0^M9>t|qNZ|wk< zqq~iT&{67Rp`qc|o`LsceL7LH!$s_Yu7hBFxUe2j$D#_);+Ym51cSnDzaGH-V(*Pu z;XkIS_-lUZExfGd{Y3gfb&LtGYT!?ByoC9nI@G5L3n4f%qS6dD+d-5RI~Vt{dJBG* z3l)!khW2|Y)b{yj>PUlpOQ^W|KWM+9p<>bJ>XU{aq)xjQPL(nL5#pSov2rszv~(Y~G`LOzPm zBOzkUQM9vHsF-(DeM#OBA}$_9JG>h#*43jO=G3dB#L}5vPQR!Cztd zpIO#fE14MyACf2(t4tYkZ>CS$SfqbO&_tSQN1&1VIVFgazJa81MffJk>FWey#rFy?S1en zVl85=oS4>m@R#BSxn^=FEk{W~N2Kp3i}ps8FEmj6*n}~R94N*&tFghuvB3(nu^Jio z(jc=m22E0l!BVq2TE0Kf_C_-vB*;4h#Gw{-YvPm0t;{Jo)=yH(qzK90FHW+{vrCRe z;8CXmcXc~^<3(LWplA_@N|834Mx^Ed@%d@>UUM()VPsi++1zjd=NIi&_iM!uNTVb5 zF!pd5zT;0EaR7!{ul8|>AQ)Y>Y47O-ijwFO~&}{4*F0E()-1KBInQR2KC_)&61XGkDIMh>FLAG$RH*>9iM4#?$Igc5d(O zd>gA0rJ>!p*jsEqN52Q)m-9pC)Ti|?)BdY2S1-{0^^yOo&xRLMUiTHvY|sK!sfHe0 zhhh(KReSVTwM0(nEiV45rVslZ1)%L&j?*t-`0t>4;ev(th36oKi*}cX5 z^C{%UL7BujlAEr zIY!Z_jP`98u1S|+`*5+_jPLC|#jFcz{={&^qC9k4(PYA_TzGrR{q!ypV|^LFWEdiQ zYWXrAvTqO3@`4omXgsLZTk4z$&++K1%tT!M_G22}toTj6DdGQDlwQ|G8ICCQa4}&J zzEIU00#|lDZ0+CE`EcHTo?`m%YG^|J4ZBp?3xn1^&RuHu z*Yd6!>|b2fcd0ANIaCW3Cg>-8(F=2epL90*i{{^Pxq8u0__e7o^!wQlM_zjRxZK|K z=2(#RK`dK(U~nR*SBuC;JObtK{lu|0b=`zCqy!u0Z*6pqt=^8NDNTZ`Z_9?~9`7yL z_aZ$)32x264+7+)D3V9_NU!*bxBgJm!^4o0t2hThZ_B}D-J`7a6TSaL`BwUgiGQlG z<~_*!bBxrv8=rLQW#AL1p7Ww*3DhVS+Oz8h9%r6@(RvnDsh_Id^EU=){#gD)ALGzl zi_T{mAHnGRPOL+Z3TVAS&h_G4SH}R&0661HjCLkE)6xR8%RPkmMO;I!`iW^5G1MFC zCl+1A0sVFlvF@U}b^Oykuz{+n<8m)MMl}XZvPWKa)JTYN6!B=8PNpl!a}p0pm$mfM zmd4P~v7go4L(Fei*U1e%#Km^p!5909CoZWIM=nNQs)P>eescS0Sy<*u2*WQH&PsSs zKLGk!MGtZ262=%ydx-INoRn95#iMqVv#^KlB|CaJnbBBKIq!zPrYk zYPFxW9fiDf6}5_AQpw+dhjlt?enZ|?eE$Xi(7%^UX}z>9_8VKv$|pLiWR3Qodh)2oK3X(xdY*n$1Ysx4+_?+hxoNq4eGNGnYr)*df|T+p;y%izt@oDF1x3{m~vGO_j|}y#%)L& z=qDb%s!s2_7T*I?^*zs>TL=tH;6nk!TcmT7$0$a;Sr2KSLS~ zxvAW3xJh4#x8tlh+{1R! zp{_H;CZRRmciwd8n%Hf*v-m^m)AvSM#B|v>SbS|T_LKYhir)>!!E!HO5f1b~20X>1 z4AbP_eZ*$j7~c06ALqr9ZbRupL%-g27T4`O?IVuK#%S|NpKCXI;=1LA>z0ppTXtP& z@Y77_HLu>%BZq_D&e}Dg^XR&aV_gZ)Qr@`Y+$PrdtUiQ8H@(qI6f4G|atZ22F%H2G zLo0US7eYD>D!uSjz<4;Mmv#$C|3%2+`_(qOcg8_Gd6zh(8lRaoSUZ?2Z=~4{Bn+Cj zVyE?i4-VTV+`(MLDPVy8jKi%8Yf=weP&ruJj_<}^>4Va12a7VJaezF>N4#Y;#>&w? z;ya^pjQp*a=^8J@ zV}`8hMa&(nO+mq)?rxUBBFkhPJ#jCBbYKPQ5xzy27h#fqOT*8_&FEd|1nY-@f502% zkTN=PB=kbgr+`7$K3?J@lQBrH@)pNU#__U*f_fUqc-)P3?(!1TJ&mLK#cNxzREd40 zw<9)n`~ISr*y?EvpMJlqky=qV)XP7FJXCBN2u9_`Yd2#V9jWUf1b&~ycN)j-qk{^0 zRQw$8JcR?Tzj_I8FJoVMhPN%&%Xn3m3%o_FFOJTsp5jhl)S=BwyylBK{lX-E#Io1B zCj5!tJCp6_L{zp%oZ)AY*TWbrkMt5tdl>untw3rnQX>?}`DZZnI0a|cP%rUD593HB z1VuZN?Qzpfe#ZV0v#~&-_Mn>Yk}kb-3M)sNq&Ek2I%a;4@9{G|Lgib$#5_M^->~@r zI?ZT>e_#dbi0wE#&UrdS@l1~a;$1)EJ@O7O5#*23uQiEuf0Vw%(^>jnCh?`eahBZS zA!2(P2OEYsi~WSBv)C;jD0Xbd4aI)MQ*7;tV&8*}bQOCG79K-pcd=u-6+6;h?B_k5 z#kL}{UTmz;z1YLu#opP=SR;SpA?EeQ>Hn)qSbH1C_%s0mkL}%c#==jVbz<=K_tl;1&1AWN{+UI7BCpKE{2967hZ?<7%_y+ISl_PW>o7 z_$)G_PsP0!J#P6L-*M35ud#fzDC{&Hm~TWRooNhR`4gf*>}Dmr6@Z zl~(((iB{WaX}wkHBM~hvZJMj(v`R#1u-@Mi@e&cODlL&Jin2-S{k7f~N&eq+@2+e; z+TZ`PpZ(l>XU?2Cb7tnunKNf*fQ%y&tJ6M{5**5{nvecF3?y??{M6(aoHPL=W#GwP zj$dJLL<2c=8_&R#Wb#4P?+`TFM+x@d1U$@JmL{5L#kmkXAKwX|BdTr=ooq zEZ4ODD+(*x&0RQ;A^e|k9#V9i`xpi|Pqz9y&YdotoBxh8^Ivd&Q%gU z4NyL*o#_E5eB{8sVU-l!L8;%AgC=6qHwhD4SEhmRJJJnM*j0IPYw|?<>xY#& z@d#-XsC1~V^};NCjS5tnHC%<4q+qGbqX8Y@fsibx5WX@H0^t?pbUIM+?zU|wjJ8;C z=SA*BY!Y3{qb~Fp$@-K!{d`QhWbsg~An9$nmYRga-#9+0uv!-$ovCe*;seG$6QoQ` ziYe!y9*X3caXqG-!GfQXc1*vey%)WnVkrLvYyJUvb8pY`ky{Prrx91k z;nY1?X;NQPtTJU4_LlA_MVcfD8W*fIGmb`izYSJK)aY3bk+qJ^K-HQkXN(KMkZVl< zFdHvEO%d`6UMia^>)SWQ3)^^nVdE))H`%d}zuR~Q$v8qQSaLAF(^GXDPgygiqcIf; z8-^&a7;ggNgAgU&cpNV$LX@ETHSn^)nP!nQO`YaQ6N@x`nk!d~vjNemh0> zlHSIjT`Jkq(*;d(0N{AgcWRKcS}5j#F-XGke!V3%V zdl1}=UE)`Ah#5+%pH&)Si{t^w&sq0S~+IG zKD<6Hm4Ie3+|LEUR&Ua(Nbw%JEnYEb!o@PIOnX{ z!x-AxQfY`4%M&e?whgXp9*bFKHK+imv~leP8YrNZ(#Kh822|RZR?2N-577K(Yvn_u zFJ8)8D{mMpq)K`=3=D3Kmn}{P?{qRaDGUsL6QH?aVDMT%ENi2@-TrgD{9FBQudH}- z{oX;sDQ%SjQE%Xdd3X-E`vY39C~uoTco%`Nz6jGR!`tSEuyzP@t31zkN<`9lgz-$2 zcQ4)s-`~SGPXWR-e0sg~Kt3jfbNpLQ_=|vNEn`K z_4bNySSpBPp`f4Rt83Neluya5H(4kwTv1YKgf)Yvi*PPDG0J9XJ8s0%!E$=EP zua3$@`9V3&=m^CvwVaN3RC*^>2OyUe6NF9iK-dG?c7Y~&c}d^fHXa$>f+Hqp=2AN2 zol2(xX(xcN$q=BYK*;3s%A6v=pN^9L>U+O(P>%6l?&*orU!OkYEpy4m$ML@mVmZG& z?3w^aXilrU;2~voQAW$>E2v(i5@lFL10t0#<>ww!X{3_%{FH|kd32XLLFB&k$z$&2rk)O$nEWf{)#l$dFf&x&20EN6vJRLE4l9 zBu5HcsoXe|wM9J&URPAl}IH0m-s%<@1{J$#ykof8hRvxjXkCqt<_tw`%=I4=d2a zrXb7(Up{5~BadwKZMqhvGzm1QL2y^@fxVdq)cRK@OdT6am_Fi67am%ZDZGag7FGa~ zc4Ga)fEu3%n9X2qiKaZ@P)o^s{}zp8p3Ef|Z+=LrJ(OAUoQGt#pasr+NWCpex*Y$I zPFa+za^r_|AX+&hUwc5=G0GN!?d10>h+cT5W&@fOt0c>F9?<<*G`n5*$-k#EIAkTF z$74aCJzk zr>5R(^Uj$d-A$FZ?FJlke>K8gKJ2{c!G=Jv1cHK&^un~=@PMLvqrqIhPjh-J#q!Sk zG_sGfwMK!1)BD)UXxd=Khb+%1ZRPRzY3wsfn39ROX=G^TS)aB%qtue$yia?cK}oak z)5T|$@8MPU0w9t>HCyWXIViucV)AU_r0BZ`bgHj1!*mxgTq-KHteA+SMx9hmj#H+3 z9@lbjV0-NW$Q&<5poBq6nv?#s_vrp0rBFU}kMdtq zCfADuI+iqSNHsu#jJT5mf<*#;W)kr=nH_?LNvS*z{qgrmR@v5 zd+`>p(?!NZ3>(RKbh~acPZncz*ffp{Wjux|JmGrWXSXTpHN{*%1u*g0SQ-!6Voj0M z5YWs6y*%M|Zt82`gSiMH9~4Te)eQ3+hE3hfV6sKsB=c~{>K(VJ|8Ow6Fiw%vL2N>DCRM6H~#z&eiVaYGWLv z;$+~7FEpwpyu$=bh?7#Vj0l()ZdTCC*DE)%k5+sPj^AVdFN_Bz5agVXo$<}WdIMm6 z6&>H}*mOIR@j2nGvw#ohiUVJgPd6Z(Q0So^yH>eLLxk4Hhz>BK`4$K79qtUhfC=k~ zL30ogF}!uYVcMPUgrIaUB~0^sl5q*)0{KV#A66gr-uyreCwhL3=h+I*8zN1)Eu+$7rw zbh6nuDdKe{w082%3ZHRkHH$Dx#nS+b5EmFp=@eve9w0FV?Z`M%dAd$*cO3S1)ODoNtd8U!D23A)1U9}2S|8;W7_N?T z%dM%FTb;8yNRd_qyOEAEvftg)S;DF2n<&E1Hz@o~k_KgZNgb0RAjjdq07SrG5sKr( zMzuyWw$HTW@w*ig1Fa~u0piCA>8Su?{ZZ^O@ikZ)gmhAq_Gu&HPbEF3KiC--IaMtiCG+zJa2)<>z@BLVjlI}+&b z^^%R_Y9UVJ-{5+T79sB;r1Lh&7Uqcgm0Y(jWtqFhX+N8^tn^kN5Mny$6i; z5wLbTeV|IQEXZ+XFv<4%i$;%zT)caoW{g%M&C5CcbW5J~p!D=NtjPgZ^Ekdv$46tX z06U5Q7_3;_y+*zHdF2|79)n&Pbd6HSC=(+p!CFbOeH?$@Z|ebD+8$}m<5_Nb2hG|u*x@y7l3 zjfX6waN7!~WYxt3sZnWZJlze-3|CKr8mKPXa`!{oZ@;EyL*3yn*Y_{V7^|2})0rZ0 z%@2#LyjH`dID3uuja9OO3HIHE{K1tpcdl%AQ6~zK>dJK* zHcs(R+64-jB3|_j!bx@CxKYIBIu}LNoF&-o4sUI*e(?|R50D!xj`y^cRI{y zd+##)}H<w7BT|5TSN2(sm$+WLP9P`M~F1a}SD((9Klk|!!6gf$mFE_bHM|iGjy$cq3r8iDPCHa1M40E?ULuy&U!-U^qS) zO(#f-RD%$Az6`E2yA3L*FPRnl)MR559_U?$K#@YK~s@dE4eG&F!3VdZCzr zlfzLZpd0JmE@it6siB`4_91l3d}NkbY)= zd9Hh2=dM<0&3zZ}F#S9U2*N4s-{9LNftVIo^R0$vhzpFg4Otu>>!gYG{nwnd9L9TD z0QAo$20ovQj!sehVio|93mc^+@V4!7_OlH4jI9ys#DB>6&#M&v5sXGtuTbJgN>jtr z^yNp;8%ABBoR5?_@{LOr_g^K)wA6_%IYv^0tdXjWa}qmUA=6Z4s(k4(rB8+Lz>rHY zalyuviLt)q*JwypleYYD<}w|as$8shz=^KE z#55?VTQ5@RG=y)sNOAm(x=e|9nzAke?KO)doH ze)<4c3MN#>%M_7<_%Ro0a0-S^$0eGYqD+iB0g`xtc#3Obht!cTX4nQx0@uhS#FfBN z#5&zim9T?CHew!n6rSCPtK4YFJ9(MHrz^b!(2UZgTF@{hOP9dDQioE^Ke?%~_fJq} zccSUa0C~+tY-UmXg$_(!A1k2&vp54d1aNyD2VUK3B2+ygG!!X{hJ38_lanq|_Qy&@ z!*~F{WwMm}2En!XLrmXXIoPAS#(}NUFm&0d~Voe96z0+K2btFOPOVh zwC}O_mfL|{pC}QghD-rkt2Q^khDpj@$ua8!UHn7|@j8E@f{xfLbI#&<<^uW8PzDA( z%2ev1PO!*x9lO1p6#K!D(}TX80g6$Nr)Gfn$1ZBkBcK?WKT3#;g5r=+|3)Hf59%~i z>04_HQwT~L-i3)cEe+c0Iz4$Cn|t!)9%`_A@`4_!Kfb521d6Q#?NXw1K*#kT{;ATx z%_JnA3zKIF>;inR2?O35(jRNMs2d9;e-CG3w1FV2L~B1q;-MGm{-*-AUuAWwQrhN#` zKgt)U_K$Z@i$#quXCZAVfS7T;^t8t>=uAKCp4MVepL0)ZHBg(`NW0aUwy~aegPyj| zD)+R>2HFW&IsF28eh#LjUZBv=mEf57LGxn`R(%*H&#i!x8}DkHI2`{j!uBKV4wTu` zsEJH8P3<_)bCmkI5>nF*mUe!wJl!eo35b6KlA}Q4>Mha#3qt{4DAE2eAfhCeZ`o;N zt6Yh7M%b&*ue6l&_aEnJ>K7P+!!OW$Jd-NV0d`5BE(TnqXV0}b?%cFEHbJIXLA_*e zsrEryyce;WyGei7!lPa9P-&yw-n+WJcXoU4==L6tcOFWh<_Tz~jcjYEBuNR7V!tb4pi)yQ#n78^h2ePaO6^v6y&XebtsJ{c}DU_dk&Qlye^UqTvKXcC0EPk#zPd0vLpQnBN%s5XM`I(ON zX^MZnRE@&=wu1AzIl=29MW!ic|Fvi|CLA)!hg0f0oOYw1%^UE`FVNUD7=gx|*9VNZ z&ttC=B)OlayI|mkI$i>kLtm8Y(+hMXO$kkU#l6IE0r3NVt;CwuvH=ggY3u^B2;t13 ze(vyC`K$d8@LwUExmfTRoxdPG4_0jPmo8$N7xzsJYXjopt+)9(0CS?dc(RixXV?}A zN+G>DoNF?=x@AQzw9`ioTI#O;4yE=sMM)FWhCwGEZp`{x%bc0r(a=Nd*Y_ z7#^rx1789PTh{*8^zI=3v-5OyE=oP{9GT}~Q0nU}P^`1`@61E#J354h@<{7MVAv08Q5w9+9bdjvJNk6^H&?dW_$NdsejK-a% zJLzcm2hLI`Ve-D?ER7~*pt2l<-N9-D3}Jr~@~5*TzE*68cgQdkW5>v|wC`&reAp`h z+v$m}QOxUg4Q$cKo;kq^%PeHgmGCmc7Q;BLw?gRP)#11#^*G|{f~^q$B(BasM?=3s z1xK8vS>GuBAz{dC!eji~g|vf^&znvj4?rXMMhWiS2(Tj%#`y;UhS|aS2jPlJ$DdEm z?@i!w(ZqW4k~0)BUx|_*oY7jN*KOc&)$6P?G=IJl5_uiC9^uaHrtbX*+!2rA9(#uF z&&M<y6jPnQ7PpmIJQmc2T0ThoPCtV(FCx}{|BXXWRVgY ze7&@S#vm+-*Nb5nFTwp8JTS3s=ug<%AC^*ZrqbX1J#hYsgO$<%YlQ+_5F>T@0`GBU zG%FL+KAGRyR)m4|0rJ-dTsRths=sRsET5FosZ0zvuK+*O%7-p+ zyLXh4*J5<3x_YTSW4KI+|NaamELO03{U@DWjQ-xUjOt~fzwa-lh%6-|@>|ehFZ++a z2Vq;Rwg})5~b^ zQsA9hN|To&pD|^Wy;RvFmzU7!?-2e@Db4v#xoX~0g8n&5>S(CLO$TmVlHV+YkK_m~ zrTN)PqNxt(IgY$`qaRHy<@3KxwmBtaUIqolSehHLOu@c{>LnDjLJ12WUsB;y0AOr* zR}VcU&25H6?B1VzF4`e=kv4TkW{b`l9QNIfRX%EKdkJN&P+q_ZgRx~8rEzf`S{aUv z3srmI`<~ICm3GKzT!)dYX!l!n1UbnMSWn^wx(_ox0Y-*l-?gAXp=QBc*a|Sy9z^Fc z%)4L}$FnpHvIsQ=@l6>=S+wIGuDdx8nAf9W%`2JxA1K>?w#JBjl)&0nWlNhc!b)cM z)8f6K5MQ^HHrU{^Ud$^U*~>0-NXa?f9C8eV^W@Or9(PxdJH&A# zJU|>|XcK?+Ji6~&2rK>4;&7CCsDVgRf(Zi8RUPp3E**}ZR$0F$2$XG=O_VNw*lE~G z2+bfnrLI)WUa24?unyl;?Q0ujr<|2af;RZ8irkz?}`+Ory3SU?G#<)=>xi8aum z>Tr?Jz1G{od$b0a={I@VDRK>(W~H4*u2Dif%Mr&_kb9cak;Z@JX?#B|b$rzrvtmj$ z>ChA`_;|n=$}o-WRJ=wxn~(^YKwOy^tubKXOIGAvb_Wl7uDRD|!H!=%4H`>t{jo4@bN=GkneD?Cl+b?C6B)7>7{JY&PzLyW$&OWVVN4-O41hHj%vy=SMab;Zn<2S z6Y01NTJcmCU*GD3r2Q!ZU74H@&=k2E|XgJ;8pfvHAj902lif`n8 z05EI$hPb_Wca#a0M@|Q<|33rjJmT1aK^h^cuQ6h{o$&UT5<89F2#fP(gkc2NY~CD> zfkiWzR^zJYu88;*U_a-<)y7sPUp#&Ahh$CTsmxyFqrGFw@&n%MBCd`r9_|bU2&;*2 z-ulQ671i-x4S$U4PSJ~caPeL}P5zq{Q^*HM#2jNY8xv9=3Ba{9jcd-0N!h10Qyaav zN%0670{}Zp&;5@}dmbF9hcK zL}N_r;Ut0u5yPCo_v1v2K24FE6>~_ZC**$|@b3AiL#}T|{>2D?#ZGHB!!N2S(($?b ztmE7Sm$jWgPI=S#G+hO}*Here`ENwJNIQk*U`o^;&1EdoxwtwL-!3^NK`i7b!KQBk z?}`sZJdb4)?KD3Jo&4e{+L{Bk^w=rA^B0}cJOAEOTIaWNt#Rj1;3x8a6M1pVD*Qul zzS}K4(FOfPvBu6F;^G`u2y{ItW$J67a}PA6nSoeZu0pl z?95lfpG^YvWoM2bBZrdV*l#vMQMoNMH8gN z^6@shn2RwypwIe)=5JL#sej#7dtu+;06#dk79>#kHl+j3!+mp`(&p*d@&ptz!6xsB zh94{5(~=V9JPRC;IXpfA2a~}mImRQFc5YL;$fN&D_qSp3Hi3e-D+6mrLp!X5e^rpZ zJ0)#bo;Jn&7hH>}k;f6-R`^ik?*FCy?Mhoib-K1)@$qe?8nGz(Exha=)P=i-k*A;D zwq~cue}@tXpdLGvPphY~9~AG|IJiUURK2=-Yl%^92gc_sEdbIfUui7U2^yRaE-pSn zQ}Z#KS#*-p^Wlzn>?FxMl|cX-vQzma>Kic5{(^7 zucd(Hb|VGWP#5Ff0#2|d=>_-)H>Yl3HysTYE0N!vpwt4i-M3Ftet}|&837pf0O6fR z>{pk}mTnAJypZx5;@D<7+9=IUhPo~#*U?_kr!DI^T`WZJh&@hXH*)^;IK}Kno4zeIhvqPZpd^A5N)J z``{aW&1qo*3!D}vc0t?(TJ>(Mj}9Dm4e-pW-x25T%}9-YP@a<`PEg_xsEF_rH2(*< z`8Po6qQQm1&IrYlxqmyVQ8^O{&%Fl+_+z~&b*;iW^UnhB>Zxf2z2eZiXy-HoV_wTfIFP0=)oS^)D zO0cJKq+zZd>QA%ZDe5Q8nxnNs``GTjp@;kZ4rb!+jDTB)_ou<2#jul55BuRFw(2LP zR`Wz8;Icq99;A0+^g<~@eFq5KzUlN&N;6L%CriC5iz(lRyx!GPG}yy@PMhz=f|ktFUm#v_oGzt3v8`%fVC!gs#X+E=3h z#8|{FnkxPE^wr8iyqQuHs4XSO1cb9Mzw7&beDm;D4NvBk)>7d;div;-TWUY#7>Z2BJ#Zf0V;YonaUC zuwo87;tV^bhy8Ml!VaQu?m0$rc*gByn2|A9E3W@&q7pwEun;#}5Eq|-IB30AxxV@u zN?{#{@4|XjutRm&)yHVfK_$FtCen;Ajdpa9rA^7ONm%Mio2NP5@{+MOYyl2>=R2dX zzY0i}L#%YBa!#kB^_)t*)bOJeSp+JlAEUuVP%ke0P8mgtN#ubIIP+p_5vI`#(ZCNW zF=3sNmiM?>N9x=3zs9#UrM9{UjlnAGVPA0=>UP)fwC0c!VGcM3=YQw<9OYB?EN3ah zv~XKE1i@7Q7@3NdNdKQfZRBm7&4n{AxZcMD&nBF4k&XBFkJ0F2%%;9RLdC@xgN`4~ zyO8=4CwvSYcwKv?pgM*<0R;sPP%9YP}BG#wAg&2`!1u+pMt(PlYPRWKNSbd<&( z#?TdilujL1{P+M64aA%3{-)HgS#-n+*Y7BW{iYG>mY!#ehx@^U~e#8#~#@74_4LmqIZ5*1_iYEKhT~29q1G%y2{`Fv9L~bCjs$q zg{^Y}=<jb~aiy$gc0KdH5@j*ZGec^O#eLcjV1qb?N24 z!~Vu$ov)B!nAA3d2Zy9$Im_Vz#Ed`>r~Feec0M@#zv)jMri-VP$Tz^6KSBb@|`Y%<0aL!c!OQagMxYN-Solk_Vklt6}z z{*`8xC>LY46@wADi!9!YC)&J8!lWHQ*BW_gXY)XoaZ}`dy%twH!chwR&9dy(Un!?l z8SVci@ML2AOLmTbCX9bQweio}hCE}+F#h!`rm#P;PhcltSw{YLnEL+-?QS!^PiJ7v zgA3(m(0`#Ar+j0jp;0m2_!HXP?BZP08JGZjryb%!PwF^LBNqM`lJ~4>IL=RYBJ>4A znCPKEq7(hSMkI&5gs`@NYg3#%@|@D!AWtZ!HRqu-`X8c;=aI`7hjP6xKxZ`nTEya9 z>bO|Tg;kRJvlb(lUWZtRG|Pj3r8qnz$7s|f7b|#jyKpIse;|Ddlv&p{1hl&%cIx7@ zAXz!=`zvK!1RJI!9go28{tB~z(%zNCbi!VxA(^=GGGmlIE1Znlve zt&3>bCD^*(FQSY~AlzP*TX;$FGMJkJI1_cLvxn=_M`I6=vGO}$dXT!TxWZ=-;c0~#C`1zo7@bzk} zl~Nyk&4=jz6=iBj7Gl}XP>EX&xM5@V(Pc5P@`^UA0DOYPHwP)>s$w!SC0PQYxLdwOKf#| z2j5TP<#BLBuj2-`jYT|k%lz4jRqC-!gadp@2zbUk+7X45HR*S z$=xdt(cr(7h^Pyo*&T-CF9Sa-#k(-wa7`n|0H+JiHH|1el)LXQCD>4}HjuDEgM}xE z8d&2XRop<|&p1dIZ( zAI0`qgSzVpxVX_WuAsYBxcXG#8e(%H+X}#SK*l}T2t;Ug>vYLuR(B%-THQL=$q?Fz zhb35T;?P8L^g&u4JbGaDd@+XcqrXtj9Y~M^ztHhJu(63Ex_?J8hm8VWZkcFd+N6U` z{tl!cfN#!=-|rwVhIy`tV(y~Xe0h*2-c>T>A;09B?kV@H*Iw{*1ziR3HR`isF}-gP z0dn7;Das&1UEUyW9aPX6wz3|wvU7m!%QE5 z7T4i@sH06^14ut5I7M##GgSyN(Chns6+W88K{mVg(XeVF(tk4ObUze07@2&9i3cAF z9I&5qs)@03%uf_rU6?&*0+!R)_!)=n2y6%ZnZ{NZVbwlFUV%n`T2@^wHeCb|_h{+x zE}XJGGQ&C}x%<4mG^~b*F&%y^t{~-$Zb^G7r-q2~`Ef7IVX*!MqIP+x88kUi!Q89b~)@74#VU&-Z`=5 zut5l$P#ELjqbyh?EiGnQu8WR-KT%k1?9A=`6UE^f)&sDv$t^Fsl>La2j$J7+!FAc) zrg46l2zU62=F}G9NzIXlC%1#JDVvupZ^3Rn_$Rh@da3Vft*D{Rsy$7%VR$Y^ZE^Vx zxIu~OxQ8A)LH1F-foC=1k}*NHYP2@66@k(26Xi`z5BL)35q;0Of=E-oGuH4@keC_9 z1Csm`4fR5yzTB5P(Mu#6Wb2PqT1TYI8-Aq8bw#S2`eUx=Q(~Y&-n9p(@St(D{gG1Y ziL=2|_W+BZODm~T+O8v-RL+U)+};?xukO;;h$P z5IirqjhYF!{XV;?cc7RPGIlo>Kyi;Wx5NOc(WSswvGEEpw_!GwFipGtyyQ@KQ$-;1 zc@g;pp#b~8r-&fYyavD|$wRFyq>(`)JH#91VEy1AP?n4ks(m(8z$HR0sq|g(aJNyd z93i@FDWvdV@s%N%_5=%m|C@ynd+0Y4e6c0I6yEYp01iEg+4}wWBsUSMUYmf9DdMay z6jDYL5iV~kq~azRZES^fpP!H=!A(V+X#!yRH2eVEa^D0)at!P01-U6rMYy5ftH`XB zk;72Wjc`aI?P(?=jlM{^w<91gMEL`x~fw%2g0c~g@-tzEN70~iDq{Ws3bfwD5&Ah76YgYwz*;%5bq9vqSlW$7VW#38;&ok6O-tV0*r(i-EgxOkdN#TH6(`+`OI-$L57iEwoQ4_W zQhv&uaPcLTT?YjslC__a$iM~YQdoWmpbQao0&x=5)WB*|-UDrk)@U16NS>i0QodP8 zy+cJVYP=#8ZRbn@`L{${$}OabmSVoVU>6m)6jKo0zm@2NM|vxfBd^~{{acF`h6wtg zwP-DWyOXk8i=m;uAeNg#qr?4IY?mADUo_qDR|{-Ld%VH+E}+mb;cpgzFTi^DG;TiF zHxkqoYeaB(xK}_4VItLZ63i`uixKxK0?b|6p!V2Fq76Dv+)fH@BVGhWQ`?9Uc$Bsg zgvaEzh{bld}1VDvKHjcWYQ@; z+A~~ahh5&u?XfRzqmwVO&3`*~BC*3$CWJXt9Q2VsP?Z918j^;K&|q6W95pea;S!$> zmQ;@p7DoX(kFomq^G76me2XkX+l#?bTaZSZaPVOWcxQM6?qb3~bjZ*R$0gyrQ}tde z%CJo$24M^v+zR)@fjfr^D8Ic3@mhp*yxWH37VM-O?NRWrc9N-sR>BzlF}j0jg7VJk zAV%R)(Lwlo4nVpxh!fBf(h+H*c2ZnNEzQJ^V3KVI**XgAYqixbC=A*xjx(sKM&O-C zC_~z``H|u9Z4$lK*oOd51Vla)2 zK-0UPPgxNn!c+=4?t-j(X!>zWY0ytQ=qlopTB7ONr|{CDz9q_leWEOZtihm(M-1R( z!|j7{y;d}G==$Kk9olHMj*p`XDrl(A0t`kgr*3ZI(PtgI?AAs7mjXABYIo2MhD!}E zO>3k#*ISruK%yDdb2})zlZZ^p)QI%9#XKU`q!AmBS;HsDkab8Nx`Gk^aCeZ3(ExG< z-lqkP)KVyYn-D$?)*(&S{LMMCk?p^TW1+x9XDV><`tErY(q0y%`XdenP6BdY+Y*$- z-ZI8f0_p$AB zX|ml1TykY#rO$JC;q9U)IeOP4s*}Rc<5Em9zT8{|;PIFJm@gN_!)QOP6et>uNpS$3? zH@<5?S*YAz6Jvz4t<4M70N?x|4a~b-JzqdgRl^NeWiT{M0s zjm@sTkQ19-8Kb+|wFko4>^i||c0I9;TSk@HwG-m4yuO^NnO$2tEw0Z;iN3OF2hEQX z>0#GF+2a=1*&3cIi|aYSu*KDHn{ILS0M-9waV_6L89hWu(kS5IVcRtkTvkmtC!-9w zoetv-%2f!w$%zv?2O6XfFtcdoV*_STax0aMmnnebC6_JRD}4SIZ`I?oobl@rZ$Lkv zg=YX3^zi;7SHa&F&!<23o%GoEl*hh5aR0{qV%&C0w_spwiGl@mHoPAQdy^H+XNGUs zM)@(KyU)5CeGGFqXSGrV`U6MuwVo5UQ);vbN`gp&uSP*Dbu573PNIpNHo(S>N*7st zuyJcO<0*MAy9%(l8U+^Fo4^VWt-SK(`%aD|nX>!MNJoGym1 z3YS9EH_-%i&AwIx+fro4M5Lmz#bWd^Y^Px{P!0EO{of)D(2CTv?%&JOKr2g&q*m%v zZiP62^v*)0X@x`~y1Ny^v#Jn9|5k`ipzleA5RVGcz!uA8P*8~0&O&5vqtaLr7VDLf%thVO^;i)Y()F=aA3Pz|96go%!FC*7gg)AOJ5}_= zq{g(B%)P`wId40S?uGHP(-YW`UAL+($1&;kwYn@S*$w65@w#lN*Ja~>V8a-&QLoDe zwpGZBS)GosQs4wWTGkhedW~&3_eivEuRAi7wO4uR+>9$B9WXNvjjgRdz_R+QIEZjz zoMA4D*pm!2O?$C1fv5j-4 zo0kWX=k#|7!tJ$;>lR?NSpckU^xj-yq78k7$>*#yI0&8(TqT@6JRj(EAJN1!LOtD! z`vrD+BzN%iP5RPV!l$%S;~++e)j7!P@rGt_<1jZwc9}(QK|_=Om%|u>cvzSOxFv2A))4}Jn6Kh&wJ>N%Y5|D&qA{R1JXAjDPG z`;iw{^=2l{y{cPm)mna(eaqilek0|7TRyi<7NOG;CvMT!ShdBh-OE48qp&y;?9~X> zF;p_ZVYh+phb=TLPWbliuCkzRjFis7CoPx-w{y+U2jM*Ucx%qj-nNaP!hP_m!#P6R zlkDwjXPju_9iXzw;TSHt>4Y)BcelR$cQ+1$(d9gfc~*pkrD!E_-W!G@=X>ZSnKoUg z7K*d_0^YxCCWzfFGpclJL$ln$LtW+SUS={n1#r zDuoKgQr3!{GQT41WG)SSP6P-22)dW!I~h11UrsDQ+-GzqRM^Fj54Sc$Za_a#$6#!&o~L&GMSJ_ z4RA{?&FPQ%^b5IE++Pfpy-|P9iwL=8E{%L1B7Mykn)N*9lG$6x_PoG}KDppn@c$l8 zy?6_qdR|0%y@7a4P1iR=mrTf|&=*8V+|MXlmh8Jf8HbQhlfAVw0PX0>F_?T^$N{&3 z&;2;+_W;kmlKn=R`}&!J-nOkJ^62aU*b~leA=5zc<>wrV83v(khd3LS(SR1N}WxR>H*zPuT7 z4+;n;_!bEy$QnLpd~9y+BkIW+lYF}T+2ppQE^ zYz}Uxf4_*($4~z*+=TPbL{pspZ3o%f>EAVD84m3I0aT2suQc}T;tbf9i^I?`I-J== zr(QvJUMTud5m8HeVs_Vn@bT=1ZNiCYT6P~j%I-A7A-i~2cE33ThUAjzRl!F!zWS0*{myar9AK9WC}~g3aMizL_?;`m z3}=Sx9?S5nO>}itb+hSn#4}F~u~p|}&)k&T+bV9ku74i1IX7m6SnB#*fs}8Eoa&bb z;i%`VkS=72t6?UuH-w;{M~dq8F0F^L!?n^6XSFh|6ACc=GZVgjE*jT|VC~~dC zu`bGUebzwuoWP4+rSkh5>G+#iQ)$0Jr?N5F^rm?VK`ZmOi z_XhGxgx2vqkg+lnkNy8B2Gnr&5s09!iLhPaEYL*Z*J~n*avM0gm|A>68#NgA|LRDK zK_ZmH`htq{BV^Sc>#0r#d@1ZWIzDJIflsNMsXS3M99WDf?$G1$9FES)U?odrZHvTk zSaE{*L@mU>!*EznPt@S++nxb>mU<4PDH&2Vh0R}2iK8GTH?7Z|GfGT0$Su`XSi18S<4(hk27WUt-h}!9eywA>LYp@og zl`hQl2#}|*&5d|pc*;?quF*V)+^(|JZ;HH+@MJ8b)I~w}YG&2?w*Ml1UvN)r{gCZ> zYia5@to4mWctd+-$6v9&_ZMKzC>pC8C$6T%i6YVK%hgEFMt&F! zKVL(o6Gc?LuaT!_PTh@z3Eq?(*3}gLfk+>m4Rj^@o&F!#JrT!gx9RH*$!s9mt!u0c z81A$a?p3&b0HA^%CjWS)&Q_LUs(qsMR5<3CwL{ShxGt)Y>V zL`*$1=Lw17%kX%{t){J$gnxfe4lm>MPGij_J^gEdyJzJ6ioP~)z*tzzo7CG;x*KLR zEM-<6G&m|_t9=M5UF>t-vf>rQce#t>heUAoeMtKfzUhSzMI-;d_|lKM_O<2n`zUVr zCYvlL5A<9^vp$3dGX+d9DT~R=gv`hCPvT+=_aBpO{VK};P{ce_unO_uLglZLwkMXC zh;}k}+_;s?F#o`<>d2P`GCea{G>V!DNPAgzbun_~&>(E(wPPPBd)1YklN?bV$@3#T@2$kyKgjIjN}T-z1#rS@O8p21-eIe0AII-qNjErtt24gWYU=-A4B#0n zY5sqOe_Z-X6cqRydf&^nLJ?eATN>0D`P;X_;?QUsAWavpb}>T z&00mrlVI6PKzxa@r{=oE8=Om%ERLnX^O`dqtM}GN-h%$&2T<;zTt27aJqvKI_eGq> zLpQY70==&AZ`@#*m#*-yR#rTte_-z&7eb4``xmZvSoUYRz0Y*L1LkAA^H{)39_lJ= z1)U_k%|n<=Xg-g3=K-t8e;T^;v#Tg#8fv`8O05|tMKU}OG(f=JdMh_SAZ6RBeuRL@ z)rXl8k-_|o9Ec7s?vU|sw)3nNyRDX zL&wm(relzAjKWQadTzDRoat!pLu`~Y9rK|+Ho7xijIDMTRdlzsD~sG3?v19d0h(OEIMD@$dzJaqeIo zY6W2>WmV_I@%A~U;WFUa)75_^*PO4dk@obl%|iJ88Ss7?X`_oXP_QB_&CL|S;iH@h z_@qETNL_6u2S>242C-~pc^2`Hh{MUH;Qqv!Fw*|VtuTz-RhWZ~|6Z7H5$7t51@Dg+ zX3D=5=4-%nVfNYd!tB+aKDG#3g^_lwB>zuQGf6fY`6;G|A85e!ZH|?c`YAMs*KJh% zDXMpnjp}_SV#GNRJbEP!{Y;ocy8@OEV&RU$C+qT)dp!G0mGt0&L|+4FXQPbIz^o=V zI`SD7Q1g~k>MYR+s^7|4qFLA$pusA#cJ#c~!IQ&OUIgL|bQ7?Fj(uG+VGCg1uC`Id zERiVZub{-)n3%0tLHV;Gkg`_L@!9Y$7`=jQpNoj#_m-o~S1LPBM7jvLG2ce3+>F!c z3p705wpKQhzd-u6%V_WyBDB-@fY<5=2S@}-9n?b4iH2ysGA<@&xkJ_0~&yb zyELnt)%xO|yxGFftEpDWxPcr4xPC7bmMeEN9Dy{^;JR0!>k8VFhMIhCIfbjJiB8M4dj;yY1vT1U zU}zXa{iL~M?}q)aAT(1F8tJz+p*}s-k=p1e8I%baOB@fA_ zoH-&~5lA}I?UsRq%d`xG_agjBw+s|=IEvD91toli@%sI2TJseM^~ff9E(GC~?`YUu zgpXWCwz*)-uiw$0xgyxS?>m$jq@0%Zt&Q=#t^zi{yo}^|5SV?IQOG<9-k!^7;5-rM zrDQ{q#^E3e3_x-=+2%pmnwQb>dBPkw6S(ea&EGtmPosj}1Lt<}O?7^@J5C~-d#<- z&B_-BrZ8YenXa?)T80BZBvxLRC?5v%JpLB0lNV9dPa~&DeAC0PMPTrM@TD)!c-xBk zUF(p%1-FyRN^9e6iuy*FlTyKjxw2`0eF)>Z6)|7kf?={D=9W`NG*dMpV{NOQ(xKz> zv#kLoC7tx;a5l0I2JV8%^$k?P^lUQE2T?v6@oWk8wtfDHcu13Eo%o|5f)`lr)1w^*O*Jyi zmc6A-1_+jCm;hH{3p%L@a6)d#IBND?!Ohec@7(*?{26cTtQD?4!gy~wr%N#;Clv<; zc2>Q#M9;3^h?;n3U`}L*$+p_x6X2ka&Z?}zuVaPDBrqr<$SNiMU zqSAW+q65C>CSWd5R$CncUQB~?h}~ElC-E2@uVz#Bx57VS3}ZrN#Nb?m62uQR8r0Hi zbynPeAURra+!96Qiqz8X#(DJEE!{ht?jx;nDB_de_Vklyf2YX>`C~kvuV$A2`yGv5 zAVPbN{jS1CU*6&?oEq73H1bX8i@5Oz---DC6PlaWo^fa^^F_v%wV=#MmHRP=)5!&* zLs%vX_%eE?LE9taAHD$JUiju}e_SJ;hxWV>JvTL*hAtFgG2CPBL80JH**=ob?C+4H z)_<|l`b8AsF8r4HY%pKE4*}lUngn27Qa=eUESvT%6rtv_CCq%dr2wY3)7;CfL;vy0 z5W&X7h}YPmIN4FLRAWcXT_C=Vj+G9v#6{mLTOyeE)H6*ikP z()!u7Cj(P=3pHOPUaI##lGd<(|J|jOx(MZsgd|)9>+eFuvtZX8RV8V^ z1=)V>%+8!mo|)pfyg!T1W{S9HR}IJgXV4gB{Ehg7||5-~l@Z*B+ z{B8VG8uM;pUA1X-J>EJ$xw{mI!T+SC-12DwO<63SseU~v(%^^*Y)bnVixWYXa&Do9 z&kMTqQ%)=B9-lZ(drufWt-Ik*3;mb{L&G-(-7g`&R+;h8>oJX0>%s!^St2Y=i-Ig& z)oF^fdYWQbon$jQjB^XRFM24gkYKn;$}u`5WHe=oNUmOFF9RXgu4G&)`pFHJ(7>f4 ztloQI9=AUOgaK>+OS5RsQqf<2FN;bMpEQVTbT%Z|baoc<)`$47^s%QO$3fqoTo|Y> zacDAH*Q@Q_RdXyZ#LTJ&KOHF)ZB`GrbXQY6rM&uxOZJlT5MIO;9F*Ku^+K5SqM<4b z2aeTrL$TYgD{g@7zD(94l}!jC3jJ8bC|zdSV5$Eox_6N z!mM4@OB@!$VFR2Q<4D}I92n{bh-1r2I4sO9EICR&$zkDA9_(?~Z$V!T1ZVG{q=D8B zU3LX`r{US65h{b#z1Z$FJzKPEb16$_^5YCXgK)ky(1MeX9{?3Ino*Qxi)Pi1Ad)fE zStbGu-Koto(av1(4~VvA(d1c~F8)sz9as)c zWN#J)uK-L7;6ht>Ool~JpS_!Hlu0=&M0hxW4jbUp z@jVZJ7cSnOfNlblN=@}N!nJqEsFQf_0iVJSIAj8xr7u^CF1@pX5Cwp*UDat1SH|;f zrGc#pnl7(x@hqwXwU%;|8%NnPjGLgx) zJahp*n=c6J*d*j>?cGz`Vs3!bVi0b53dBle={UTD7Hb5q@r1yLVR#&_6(8c^h;|B~ zw-;0XD$J#aFQ&7rpwbOqOrEP@uj|h^%{?6k^ynC7DjRumgH(LB@lo1d4C93>LruW% z#Ao5KidaXys0!=4m?o}99_QMzUvb{t`)Rbhb$u zm%)t=6KGx|LWb1>{N@Bny@v`bfnC#TLmDo#lQs{|BOQ5UROL~LO0=dRY*tm+eGZ$5 zu&GsHw=*eq4QvhLmr^$J3O@sw&ydf-MW{y}e9)Nf2+KttT*o!g7<(Z8N5q@QNRIW3 zsbUQ#j{7qyVlAFKGHLW$?5H>mcuqeY6U(*m)jGC_#;y}nL#i`goS}kcZuNE(JS%Ih zs2pMJA|qTMt9)&3GHKQZ;ZGgbi@;bWM3-$?L4bQoFw~L+5X6VCbAua>_w(o#_UT6T zFknkDWzykU7KW>JEV!hzx0heDRsdwJ?f_HJhUZv*m!uo8qCjcl*47m9pVMFKg^&DG z23=i`hFX|Go*SSX-pruh8$^WHcNtYg7B6BVqk4?h>077yX@I^X{OzR8=tkS5D%t?6 z)3&jPPMc>D(*)YaE~3zlB1{zG`${Ga+bF`rHgQ4}@D2*gFt;&ff05yxWk}{;<1E99 zMU=l$BzSJu%39x64?S%Y?87bH;h_$@;HNF3VThL}FUp;~Nz5`l|11(_nxq{CvSkNz zF=$t?e}XBx+#1|iZGPTT&S8N;f&L+v_4jHY8{chqU4NHfm&%*o(%;2gk9V8gv(Sq< z@LXt?Nf|j}Qfob`nKP+KHon``nbd%!O`J)UG>>yc2LnCphO!mxwmgwAcj@`ZO44a>uA+%YsG zPrNB(zreLT(LHGwv43 z-~$-skN`CBq`{Y7+$MrTPb1MSh~5r75|JRpxE9z#SCZkNm0CR)`ns1MO6 zdHedW+eEaSyO2!V#l^sv0j8OrAnCvOx{@FT*98^zb~Hu)m{hK#z#XDna5SK_7+zbz zI+3=v05ktNSGX@t-67f;*I^F2VF$F~OW$Ir_&Z*>=_jpvb$Yl%^o(c)SSGk^ip6o* zxlz9CS;?^npge~wdzM+Hd%Xk!7VPqQ@msitW4wsUp!xae8J#jHCm%At-?#9I6$4G* zqtHB1>$)|2$ave@e@nwYt!9#UEudjLMTn^h@b?C;dx*<~+29P!1~a~;`8&nrkP}EB ztTkZ$&Ku_N5oV;;km0}&nK^3#MHV2>%kwFrK=dE_I^uaMXO_&fd8hGxOd#&#i2*x} z?~(Zw`RRkVtbT%bjBW7btE0xl#GsGM^=-?>=wtOC%oE_^iNyVH$#WMLf%`9@P=5Aa zKykZ7W1s8pgZxZq!W|1~>Mjt~W&ve0aPtMUXBTWF4HnRiUD(a!1tM7)NL!d2UMO}{ z$4%$Sorr!Bt*Y}IS0L^G1=q+ww_mh3A}BXyzxa>A8Cl?rto4g%QcZ`KXx}d)R(~zhQ%lCyn?`bj6jAgVHJM zH*9qaPN(@t#6_4b)EYNl^L9JgPV;8dv*UV6S=9{||JjsCkt5hdAP4{|XKa@BJZ~(p#s*a?e%x zM2}Akwvzd@n3}W|-#jaY97+qa)Kn+WgM$NFw##!uYvu5qkWf-ycDV`Fdi7&z-bEU| z<<5P^+W~a5y!A&q?nQhE7t3!lYcDhMVYyXfULO#{Y0N2o#nkF;-(i>m7S zKXV4=oHHmQmk~!Dm_boNQBgrraRkKjf{JEORyYHxNvU~Fsbm22o^rhHvL{6?OG=|M zM=ce#wDie{%IC?-0L{E*-W3h_eb+f>U?ls!@8^B~;KQ8nUVH7e?`yBU_TKYWv+N42 z%Vz-l-s>eD$Ji9*C7m}`vF#P;8RJ*O104CxSj{frzu5%l2lBfq>Z#Jy5>*v)Z*ci zDr*$5nb(r5pU)4IZ(>&1z=vFP=s5OuC0t@H5Vq1_Ni|VK=&(veO^=e?lednD<_FvQZ*D4l!+7L6i)SE8juXMX8jYKVtR5c$T z5f-aq2`aXI6)Qds-<-D*hSpf-ab;S+id{fD{K{3#e8#Yz&tB!;a|Wjd`C%*B5|-kTr~LV_!TSJtxJY~;jQmO zzvJXY(F%6$cf%?E=@sts%Z8)8?g#e9Rk#v;>HhhuAzsffEM%sehRozCh3Fel|7g_U z9@~}9aqTUGp#nxgXCur7HIURl8}v5%7NNIUn}s6W+Wx>o_MTxA|I<>o=}#;TM@Q^MfrN$~|TEasemi7?0 z6oZ$pEQS42Yk09)$=KTit6yBINCB5$mR)B^?a>t}gkppU{Uo*eRx)mx#_uF3J$e{O zIoR5DWFUQ9+L{FCiV7G+LlDl+)EUD0sms?G1REdt%9tZ;cNCXX4VN~%noFoHuvjoBD8|WnkQ}I}~F2}|%1%(fw#nevA#l#F;0uK3k}~_7-KoPSZOnb_wB(X`_4sMDTMxOFbIj_Qp9PEZ#L8*w6%!% z^0)(&1nM42a4~OirGL4EEjI|}+yrVAFk@C=r{@KvK*vlgg1OP?*iig&mvx1oj4g?B z;`N<|<=L=M!ooohte(!^M7h_z79~L86qji3;=7*4(L~+^>}CT^u0nLxo5DPCryFyj(-)F@a?V;bSL_|Eia$BlwHaB!or zYl~TwpAehSyAfWAZzrx$q;z5%g;Dc#LO-Uk=*4WUpAgA^vzYDk6SgOOgRrNOpSK}r z7>Z;(e!q#|t?`?*J6eb6s6bD1)#T~f8{yPlt}nq&9D*%!3TVmhrO+b(gYiw_G#b^s zuwQu$e!yaOxry+Et|=SRRG7xES;+P^74oA*BprrL=XoHljJ8+z#dih%*AIdiJFFN4 zYZtL>e<6myu!ybm$4L6yB6iqcNDcc6qEv&P93992Lp!>C7b>Ge3Fm6cqMHdF&4)mA zCmQRl?l=?;Imrd>Wt{Ml7qThMz_iUmw!WD#J@#otRE834;(qM)`$Nxf3^DI}{eBPe zar2YWrIiQ2gk=YyvCUe<@6Wcvb^87#z_ zTjD!BtEbF0u~!E_J>w4Um)$|(Z!KWkgCW%u3*F_xLbOg7z-mK;aHt(&CZQw0}^Bg2k64^R$x6d8MeXuok-^-KRsVIP?UYhc#P=xNw#;s!V^9q@m} zLUz_94E60MXW84a7tBISHll?P+a^qIg_n-jqW1=4Ukrzot{lQ&(uhboi;HF(S_nD1 zEM^WBZ0U=U!J<@kIkzzl^^K+Ae8RM4-$rfOmrIzo?Axd<`*H}gX>p^}xU&|p<)K14 z?^wX9LeW+pS-|{TVpbRi+TJK2>H<2mtNh^wEU~3f%S-rg7JB)1hGY?xgCSCwTnb@Z zb8XqzW??BlEA&3N>9{S+Y9%b@-*}l_ZYAvN^f8Je&yNyqb&UGRBz%+6e+|~4^%>^E ztdzr;qgdE$M`REWFxBDRKfyR&` zSPqkLi!>L&;Wk89dhmQ!ZV@g7UIiWL>7LuC-khoMien$K>9VFJ#d&l19g1#$l= zfQ-2Epb`^EUZzf_di`fUPNAVGuCwtn$y$jEn({$MVPvbwEnv68!6OMgtU~AEWkg5; z9^#C@W!gaV2xuyPd*MTJ4kcej5A)##Y^PPohzddmT&VQ{N&%`nlKzCD*7LL)w_`CP z&1Z==!DQAWj5Z!zsBLe8BO=*uQV8(WsY#u6bC$$q2bo|wPHZM}B z;&_E z!LdU4h~{$TqbQDC7!UBA^Le%P6;cas1&rfrl|4CYp=(`lysmoz;ZERh&eOU;QB%1& zzR_ZpIR3e8Ppr^2w5hBE>bcsTLrg04vRuY@7gBX%3LUnDFz&vR%VK&6gJbd$PV=Lxp3x0X{_@rDuzO8AGVp>* z1J4R9HonE|lbO%9^bjlw6T!!sA1~W*;Ff5toFpf?0_5GO4Kn0R1W)3p+zU|ARA!(@ zTet$_Qf&_*v_mtw7?dQXkH;$lsr^clVz*PrsYcX?b6H|fA*N+N#HQTmDFYgJtmt~( zj$XiCXM1y+Mi^u8lZ5ze9{aGTkPzDrY)H4F23dy28K}eyQsQ0wn|P18SVo)>m9`wT9-W2?llWXE@lk0rv_iP~l3EBPht=UPfBZK* z`?%N%@Z_JH$M|?*n7(X5CQFYOVgsHBgQ7RNo-kHNRiG!a)$u|H!$u^Nm&p#s3!Si+ z@khLnDrNSRgG9y2qwq%uT-xApCI<(c)L@OXmq2t}?Kq1rmOSFpMh1 z)CzG4`-L#*oC?-Q#ZKn1yQx@zew)KggP=$q&0z`nZ#n?liX+&b_*$joD(ZH8n!~0K z5~emCTH0?jmScx6z4)y&lwBSqY~r8IVJjbkVwaJ_E$ za+qN-zPTKhIauhf+s@Vw7P@#iiN7nH$_EQ9q&05ln_rox>l>Q395)}KAC_2Kvw1@V zlmETBFb?QLF-nFOm&|3Gh9JR}bJ^V?LhIb-^3FLJQ9$9M^)eKI5Ap5!{l3@l_wc(K zBj-hojB0pO`E6iy(GB%!<+c-!KbDD-qqWnE;7J{$79~PTi%z-54v)W3T3T~_w>KEj zFm)3|G=w~lZxWptT1)-qc;M*Cg&x~6db08;=H483d?@T5w?Tgz0#V$jyyI3hlSQ-- zCGMO-Sm6ZGC{SqKF{rvYhna_A89jsq^r|X51WzUG6I9#uA1CQVWMW=D1b2qcboZxMd#=6G8%GyoGi&lP}L@Cx;0aVplwm zh~p3uTkZ8npeBMb);$%7Q?XfV`0uKT{Wyo+N)uxAUn6WkYZ4OpC4P|4ffJHdz-4su z^NNpI+&;q5uq)7@aXdr~kKknoC5YYV%G28O?AVl`-9Ae2gE?&daAAU(#!u>1U(O)| zW=Qc7<$q9dNDi}%5UjX$z7+5LePyt^pBf>I@ZpnZvz?=bB%66Q;&EJ0M`jbH$FFor)OgrtTc6Fih0%sMbS&_y8uc*l^FryR+5~8L? z_(LQl5?DEhMU4?`Lwu<~z~gn`SJA|-AA(&E%}i)4Tv2;@wwG|{~=7^_swK?{~_$*FV18;9}^N1zMF~o5y`z>HHeR))Q=C6(CYriK$XT?iTDdQPdE5;PpOT(yQ%K205$TwqL0sh+H;lM>LQ zP70|`veY`ExJqkH((2^UG`90O!Iql|TB@r%;6V+n3OtF=J>FRNaj_Z%BLO)#e=BY+rsm(GWuHe}_+PPZiM~PXz3DISqGgL|s%FNFY znyP(iqs)8)`v0jGjz7ni%oJ>yzLXh^37f%Vm)4wU-c5(|12SPtP405(ox7vW<%QBM$0I%RzxcM!nD6k>F7AFy0=EF z!;;H$aY3)C>RS>Nr_oIb>t><QUd?>sKvXP8B zB}U#YHPW<3VXe=0N25%%PMOGzTXlklH9 zgi_Z<9pnM{rUBUVmICsry!ZG%co6-Q-t_4Cub})rZB83&wVof;F!mv?_gMPVWITaI z`93_Ajh!nzrR%`<&lNhFEa2smTq-gT!und>5#kS%Zb;{%5;PfVe2*OVkKlN!^Y^+3vXc!Wi9{w?OzN{-~Zd;r~YM_Xhl@ z!s&_sC`|Q?Dhg*jBthYn(XhA~6HygRlp7W82RBM;6T_TmS=GxzWUdLc%Bf7~l~!#H z)SNIB!YT+w6+};0lWMma=@3p!YOvq&%}zKbx@gTlDri>}|{5ejw23LSki zXkG=sky?JyRpBACcPsBIC`W_1LL-v3l*KKDRyZb`O<5{fj5rB2x)dW1*M!9`Mu#t= z-*%k(6l~2)vC*rB!BYoE;$7_OQXz;HEf(4uv^Yl>L)K8Fi{4!5@uz5(%_5h;uHlo- z=A9NZSjiG0SGX_ry^|<)n}^F<`rVLnqzCu^RZR5!j#-A3a*=cIlx9y-?u0Q<1%5M# z<_zpULCM$U6(|=gPMYN2w@g^WH!I=b38CvcsD=}rmZ8}!bA>SSey~S2JGeraFRCQX z(P;~X5!%p`z$?7@pv3Q!|Ke}UQq7jeU~N|9b&l~gjsyN!F_9k zuvTySH52VLVqkB_XBg$MSPlQIZpXPywrR7F6!|s6=%^(vyL1@nj%l>v%T?NnSL${g z&vYB#6z=Nye><6B3o`b((~XS9>iq9G8#2}ODfg7Og+w2IvV(1Z7n%CWp=Rn@ru*c( z!g`%48vw~s`nAg2^>y8j$qx7OZ9=M!-#m_;*beK>%5mkxbHfeW&R>WS=!;7!vnesN5ap(;t6t2-&Mzi8yV0MZg z!w&x<3~LG}=14_pcx4oZ)ruIO;3i8)<1KaE#YAd_g75{S*_a9}0;i5VYWx!p#oDzpp33l}h` zI#Ys@hDKrKI?9=do5xe9#0ei*6zTW}P0$|ND1?*W2Z){) zGUwjvBt^^KUe$x3+bD}7TyAx&QkXmT2nb8ta6Mnk_m!2Bs@ot^yJDFJxfcX{)kfz< zTNDpNCddFbgfg=o0%1}bs{P)u9U2#S z#O?FKd)+8@ z_cUxUiz!{0)0K3!4Tbp%J+xA6DCCV|8E2sF&QUN^aU9CE0w+bi%XBMYD9imyMTHjc z#ebJclf|OS@-*VRj2afGVp$5$(Bhj)ycWgRDIV&ezRX3n%pV(7>tL=;s*ribYT=9~ zhHEu!y^0MdY>9@gRI$N?&C{?2DmD<<_02kYfX5yX-jt2|6+2OtBiX!P1+yuZB2CvK z<*1Q5k7C;q#z&4~M}HM8whz&vW>o1Fj}GhEy3y-u2UL&2?79f0acpEQTaeC-XN6eX z8hon>VLQbhrMT8~0Dor`Ig^-*CyizqXNBp(XF!(+6^(r7PoLJ~5HF1UXU+;eV#+-s zitjv*b=zT)8O2poohUIvQ>!Z?e3Te)A4>fV%KA$q+4A3n);)U2+#KgF9l8$P7rEvj z>9!%oPeZLyT68}O+FViG=4V%0>G@O zs4H~fMKdX8rn8fXWBLr?*(l6EK}$Y<;Bs5d*18Nv?0N4F)yY0rx?L%SeH$pwW^pM{&r*gI2?5 z@b?qaAq)d*84bQ9IFA9?3crG;B&(9iAa>+}5YR`V_#Rv-2Na8PV8i^vDbfWMZ~9QT z`UCu?Fg;QwNy!nabOiYbw)PR_JLxR;qR`97Pp%xnrd&k-*gldiq5toXWLqu@u~8=> z5jBe|#Pb1FzD~(iNO9kh3eR9s{xn^^6O+oP8$x#>jZ2v7^GC9=mjturx8dMuz!?xo zV!BhebBLB_T4}yFf~~wHWF(#gMtN82r8Gt!3O=wCN746J2s?KgJ>if}zKq{hVM zr5qP_LcvSBvwOb_o$c!yB~*)VkFdG;?Gd&JzZ)m?;}vYJ73TPc8t)*Kifr8ow&b#~ z!2T18>1LKrrVdQ_69`v|1S6jnR~nY$`?^*P=TNav;oDD2(5bO%y)KGg zaJYxlWB1??5COgEOTRjngE#AO?(6Us!PX-Enp!jt>NQX)l2B_MdJJN9SA<04n}_=4 zM(V2hcMh>ZSA|$OYsr*(=DI3$&3y=>lLm~F)7YwZr8{g!`B4-+Vd}S89(CV$lsw$~ zdwPOA1m8=bVJm!i<5G&33T!DfY!&lUumQm4mYa9ez}DZ7o2K*Oe1`MA2C?qf1S@|e zjg7e`^b9YXw61AQGDyNscj|3;v7kJ+yeSO>WzO;i{j9Do?A>cv#&94i=BChC2#+d&OeT4|!WboO&Q37*VUx(2z&8OGmJ?H!uU4 z)0pulyfp?7XHhq?5X1kmH-&JY?sCW}_z}oyO+fhVoH-UtD_GAgH+IFt+`+U`lufMHP0Z+0_o1 z%hq7=rS@0QuUDsWv|gB3U!0%!@BfsZ9nj5G?M%Y+~v zn@a5GxR=BYNSc`7ayD|SaGU0YVtQq0y#td&{pss9hC-_`rJWY3z#Ui?QXY>QcJi`(3e znZ=e-A0g0l;a42`&x!mPSr6S~CXNu_@ZokqK~@H#t*Okvl~`qaF9nu_Tk4HoJ+R(Y z;^0Ov58czLEU>jWtVy8_%(Co#;LX*UJ=0ozE*=gS*xW1vQrbs$VeL-31#M8HS${XvX~qsq^_1`|qcbgQpy`A_S#+ZUg zaWU^qcKf#%O*-F&NysmgO;V8Ue2p^E7xF1ST`*P*pOu7bPCv8PhyyY$Godi#C9#YS zVh5d_E$kpZ$&X87XFG_`!?h}-qi8lKfD!2}pCXquAJ9ZaTT(re*vgJ#CyXllJBpKa ze2tyOM2ijy_u8Pm#P95kMT>*L<(Fu2DyW8c!as~X`#Xz*FQ`z?R|b^X-CxIw%ok}- z>?L+VFzY3L>!SrHBX~wX@p~V=p)c-OZf$JC*Y;uANn+p7PD*93LS@fDWjmD04k_N- z7tgbZc!34XOFUI(g=Rt37AA7jtn`*k`ZK-JdrQbZinZP}MO${@{5zZ>C>}jTlT=FY z5ag|kz&Fumaf!0EC{Z^3gvk+f6qo48xI{EOGNUybTu8<;l0~!s09b+*olWf$3zEec z17>KlFz-ng6Fk4~CX1>3qCR9Hj$?CD#3!OCqP3!fvgFlq@IAfbJv@E56$vWJpz}pM zPa-Cn-npe1$%bb_xzpY78Ez*vz|O`D6#Mh8QpN^~rL9U5?D6ui*qCrZjY(=|-3t=`+{6>d+j8G6|dfZv`%)??U zROrHo#qm7vsbKdKiyF-)m{ibM6^KTS+V{THO6T|Sn;{D-5xAMeGYhNGPy z?!^WVN9)nE=ZA}70Y0)_HHt+!jP|X0aqRMNu?5>ZT$FNs?+;4kcI&{OE+x1xN|J`- z9Pxd4s)EBd*oeZ}4 zq>HVLMg&vmc`qJMGKg_a?t+BA|B3(V>g=k5z#+6Z+mbG>d%A6pW8UFk z>FG{;QjFIHh92lgBh;I%-%6uHg^pzy5i&%J4jbGVDB>MG*z|Fzf*-rHo#Vu7{FEN7 z*nti@p$9waAjPi-yXHViCG=opouZA;>*1c~6tN>5(4AFfiYXYm+h>WjS~7*+$;3aU zBs1nI@k2hXJ2Q?KxAS9T-FwE1=@S1{S8R@pas2HrxJq8U6}7l4GO$9ml~yv+N^>UTU`TOLXLk5`v71_q=H33uBmVjyQ&& z9>a3xh>3i53~p=}r|@fISkzoGC-r%7IQF9p>3FqF3dvFS8_?2I=3#p7;v&qkw7XCQTIGEMq}87@t5!Ym zB2(yjjStnVdP0ah_D^6H*p7EJ;}rg{!dGP|(nth83H(w1euY$wbdvSsPR#P67~Yzf z-&2FIaOUN$Uca|=Vq;$vN9tkQVB235&+^?nv$ZdYPqg-v`;)XN^SAI{?M&2xIa%t= z{O4hkD(=Lh=82KHJ|q$7wh&wF&5QU?r9o;?CBl-RJgKIkkYY^QieLS3lrrUz*7;N; zeL&~r)r)_wAbuorL}5LF=jm1a0`P}WTX!DE#f-QBjY{#H06)%oVpINyPV5wf!NFu^ z$Q9S}A9P~tbH%Pcy!=HpE6){eu~VZ-Ox1MI39OK%G87gR{{Avo)L*7D%SUo#U83x? z@5CZqVoam}Q9W2W&wK|_tbvX460<#b{>F41DhKpJm!X6s#|Y0M1#redQjWUO|b z-2J|yFxM9arMnAZWM`(|G-lmETr$~?MS5rP-;=(h8#CsKmNDg^r=s2v$W5!n5&Cq{ zdu(~%YU$Fdh&);2!GkVqrthaV)FCfO1LGvw_5K4|k6o`#XErZSG}~f9Px=22VGUIm zTrY2aXSN4)2@ynxfnOQ$u_YCb(-szB4Dz=1lIJZ|9?Ujc^XbI=^P%_^d!_wHCnfDv zA1&=IYTB9;x01Hv#624Mu1ZFl$;Nt%;Q-BI_!{DnnRaP3Tbqx;=|VKylP|`m|4cZB zN6*mcxKOu)@=f~#)I?X&u!$x}@|6R>j=a-M_ydN{hd@)gYJhUJjuUiLF4Llvxg_== z@zo|ibkO>V?^A^bj+LM;yL;8$*l4z-08_^HXjV-Bw?wm}1(5TNXm+^(bJ5CZW}YwR zJXRN_woQ`3TB?_MY%Q(?&sF8IXd6MrT@X%nRt4FKW+}q%7Wm3Hvv9r}ZRZ?htOZTg z3Y?I^8beXsF$XSYzt0z2wHiZWqi5X#$%b@YZx>GUVVf1IUmthG%a{r=RXx5ybed*) z%fb1`RhVZ*^rZ!&ZQvhZLj6aP5%+ZFL&m$Hcct3*62{?<-m^+VkmrzIeum_MQ#<-w zp$@W8K5ntz3!xqzLJ-L_K8j^56eG>=<2xLt8fx-%cXc>4aE!-SaEZct(DSg%ezH(p zV<4O>Vq+FzMlnS*%QDf-b}SP68abrv$d}~WD0X*|xV=j`7&`Ks$z}LYGDl#c1389c zF;Zs3wV_$*`rTPc0gx%Qc);pX_rDj5EvOLwSRz_Y|LXWxX&_1DQZa%g8M0J-#Ush7 zrI>koMv)}x#&9K3Nw!3>oMqys_BX+Ygt(6XBm^Z+LXa>XA&@vrentE(1a>o&AKA!; zV)GDWWcG6RUoL*4Yvv;_8pQ3b5;mCg^}5~%nN%o#WS-Qamc`W{kZMsZ;hT#1w~p*Y zA)4Bt_Uu+6q>XI93}vu8=xArzb9mAL-|QG*fL&<7J|ye}uu~1#Ho}eqD{sKwA?%=! zJRWHjKs-FZ#lBr7Hs?3AXJ=Q5QGu&LKxIVF^WKDd-?k&Otrl&jg}`4z1R84SiC$`E z228rEMRV>8#B?RBX6sb#%wga@cHn+G8lEU)G(=Ly^1U+l8Fa128Jk3W8fEM$!Ww04 z9AOO^Yo^@aI~E`*6fL50Bf4nI9Zp1JAXG+!$~c%X^r@eyl0kbC{}&=tDZt6!n<|Pb z%yF=}TtmW|lB%5+JO+(4@qY`1@H~J_LMTn4kq}KEAcUw1v5t5_1Adi+fH02j1E7sz zNfS=i@~My-9w}C+#D7Mz>1)Mjbw2EuwPKr~$?b5-Gp=eupDv+M%v#~YnlS`85pWY% z>!|^B36d}CkAT2O5Ky@vjf_#s{%+fF%sll?B??`k+M zjTw&k6|dW?@9F8*RqZ7rcuSFRMMMi>6&_i7IfZCZT@N}Ew1#MzM!VTZ?%j@AUWFV> z2rtlZy^kEzj-6WSXXbMw*@RcI_zWhVXybvA?C7gvWTFq{=Y3o~`w@rb99~W5xZZl= z;mIRP>NPAS*0#qL?qWh9B}DU0&q&qly`Vjtuue>hUHdl)o+IHGs@vy9_fWGd zR6(lRv6Jhd{JztU&HE>k--t}VF0SY2YTwh_v336xvlCi@FYU3s(~KMaBAnjTmrw9Q z5B6Aw5^s3nhhs>$NASJ9!$!8lz2V@S)DHKCbc2}G40KWTbYHe*85_hbA%uZJGZ@beg|qkfbpf(4o`lUM zY^R3pQ?Z$Z6>HdsDmIlcxFEUE+nrlfESs>E_FNTQr-I`N%+LrYsF;JWbPXG;VviG+ zs$p;*BVoo6mY`utDmId^7!8Y4v7v<7aJeC`!{vsos)sHxG9}`#8$?zt((cwC>MxZmx2f-AeqsCH z*T+sup;3K&Kv<*tc#p6~_3<`gjp}0)VU6nJ4Z<4L$E$=ju8&m&HmZ;1gf*&<#e_Ag zkNJc(s*ha48r4S*VU6o!7J-fG<2k|_)yFf0HL8yZz|{H}hhGi#(Mo4i2A0U-fEBHF zPs6}67*$03ptQwEUBxq=^rZwEjVJMhH5yN132QW-bSA9Pc+!EeM&n5YVU5NU3t^4N zla>TF8c%`=Yc!rTBdpPQVkE55c;ZV~qw$0z4C9G1xJ7kR2bp_Tt;7-=c8+gZ8=Q??3m8VcXc|6o;jufIk-kMB+?_K@mJT#H|-#oyg1eu-7xJ>Tk)#cPlD zP4H~Y=T(i5+=$O2RStfhm1Vz&ZTk|dmhfaP!h}WUW#8S{XIM@^!# zefI>nbrEKBAI#)VE^9r{>5k>kvAb986kpQWhJvaoE>)^9*lW0_Cs`iCw?BOw)$bGw zi`_*w%rLfomzcqiw6NM;VmaU1!pe7xktQ?f>3lD#F!U}ssaQ{1nExKpX7fQ9UHL-K zosgH^Z5;4dH#@N&w>OnLv|;IcuqGd8VQcq@$N8Yo*@RETe7@Y`zVL|{Bk)u9y3L2g zJYIhV9cTULVx*;gE3~8O+O4KJ>P@FMU>q&+OIg+DVw5oi-)JKB9u-Ymsj36tij6(2 zcvNW2u9*MI>>@CY*}lVIb_(C#%)U1(?Pb7m;7V_A*U;O)G}odWU?$``%hx_>XvYc$ zmru{$CD|)3ut`V6g2b;{!l?qcyXv3`I&cGQ67G2U!W&Ccu|wV%9zP(ueJxqk7vj^{ zs9yDjxR?JTl%;a-!f>UDdKJ|L+E-(^YGcc!P}a!{XuBzK=5#Q{9u+r;MmERHfR!rLo) zJSs82l>PX#7~}mNbV?k^$C=pJQ(`fnYhs39peG&)VX41}7x-l%EVe=%j|Nc6)>Xjf zvm=D=COe?)6MIHhm^CT4tWQygnK-1xnt<|0& z>){2Rgcl^nak`5-*xBj!xGH)uxs>g!gxz6s2s>3NS~X`uY&_!x^-?IS{#7uJ7=zWL zP8@uJ(P+xB5uI5jw$syn)JyQg2;{E^oHR=1fYVn&*b?xX+dm6Z4>;`(qV4OSwb!*9 zB|9TXP1c1|R2s8=XT)|Al5HG(YEnM?ghW@~^|W3U-X)3C#y zy(+eiZt?&&G?K4U*%VrfG&U7Y6*fkl#-^Y-n{W-riSy0a`fH-eG~^h{4>n$h>TuEw z-0G^*8@M$T`G`7U2-H;vW1rFERDkO@{qKmaM|6{|prDN>9o+9|gkFqqY5{&I6D;+=A*-j0 zZ@7}nj&-mLG~_GjdAL_G3c`AomU zHKS=~?^do&9`m~btD~PkGu;*AjJ_Jd!e+QCT1@o4h%yRimEpcY#$gbu6$HxM%y!-t zyV#yq=0N2Evsrk5oqJaOerjdFHa=jA#dki6`JVXn2<)%M(>_b#8T{$tCUhFl2J^x8 zZCOPfWt~{s&k!)r68>CizoZu2HliEg=jxXUovmGky{0&a+v~*dtTY`|ujAzl7s37Y zo|t3C>u0FsGUXXH&K1aGI|JXyY;!j1PjOI7d(FU5ejAZY;9JRAO}K62`8KldKX&%f zpW=a->nJ26_&T;cw41|oZ-3xh?3HcFbt~^|}5i(F~Am{IVyf1bDVc4#U%E#Ma^4lr(Uq+}2!A0Nxp^j{v`)%^nji~lRei$n!kFu!hhtSej@K7wcyOZ^j@Q>Fd+>CHf3BJ{wDF0a061UOGjb)$P7faF zB~WQM`Ed^pr>uHGOJn6nJUE=P>Tw)a8Lr`({$c}e_vs-&{N9@7(vwZfF7&b2knbON z$-d^cG#CveNhifcCN!aep+)gt^f`yEh5ULbp0&A4me|%8^RR=hsCzE9UMHE1(F$#F z@wTS8s$4RgZ1{GdIaV6gC1%B+bvxQLVV8AM4Bxy7v+$DHYy`~>n4gc(vIVXi9(%n{ z6PC_PgZcA*Y&|cTx(qpjYj~(7Kpo^Tl2hKCh4AF72!gMqNmjZKJU}B>1A7%Gxp?UV z{#`$|RxhRT8~oT=z4Qcz&SW3yvA~Xg>T8J((?F&BwDV)zeIzq~tqD8oBX!8_DR+4n zogzQb(<#d8I|Zt<1HzO}fewP2Qp3>rZ64g;3rFK`?ZHulpx0_#l1(05?JO!EwEciw zPk`E6w161d=)u)qr{ZY*J|0}{L@JKPUt6pRicVB7DBA2D53Y71l^$*Lnua&ekMoX@ zC|`o=AceH*DWCPkL^nePs4eGYNW#{Y|3t-%NcRChq1Q5GJ`#i21Tj;WH$5SCEz%f5VfQ9LD+ID%f&SdNfcS=1Z)Y)Agb&9m71kElP7^ zZ%EqsJtb9XfLHJ>Vf=>wl_kfLT-_1lHz_tQjOXDrhWoKilGJsey~ZctoANiWB-Oly zhLnZZvEFQb?pkJ|z9x^GxIS~Rz9y%tm7F<7U*m&WWz(w%`{gF-s~t-Wd#Sc^)AZF= zM?7m`l==<(_f~4*E&kfV(R#}ernGSHmWdXA)Pt)nS*!lO@@H(L5$!{g_jw4=a_d_h zn)ELA4G4zB$RBzL)Coo9fF}H&2lsBOXu?}OIGSpGgTwe;#Jc%OA-P@Tbshrm7K!nC zwFk$*UoQ#T{&EkFalanNc)du&Gpl?XaP*0M54}1cr~+fSev$BjG&QOdf*OGFdbTG5 zMv8igFXV;raeZaU&fHWyE3dJNrQF2arcy~AyrAUz#2cW}V zLoo+nr0*?{v$wdj0CiJeSN7g=)H~=KnGp}{8xaV5P~T|d!S5U8edHDzo_SJiXjqsP zniHN&4M?3vu6T4JKM$iueaP2?WAv{V7AjHQ+nPX)x>U6XZ`7r(dvJ8A+8Q3QfY^qU7)yO@fji&c7XwTr1Zy4a5%T-ayIRL5rUtH$k;JaR`JO9vVs6tW1l{w|vIZ z0}fHf_w1}LQ0m4HHL%zqG{I8_ctIJs=6ML@UbL@DG_Z9+lCAwWz!l8pDv!l)$3ecj z65F!Q!+bTE7HTRJI~^nq3=Hxkf~4vlM7T4l`a=Ut2$pQk@&vUL>d~<>x1=b&Hfjz) z$2wRWJ-rs%(F|a}k|s2yK@*xHu;O5;15V|AhFY;=8L7wMo{u#oed|YXyY*aioSJj> z^W_5N0<0JB1!IB5|88K*P0-4QA5^+<8M^Rxle9fcS(af@18u5IkF$0M(7ml#%y0qr zZAXCdSk!QsW+q@!!v%5Mh>pjirU+Aw1B;r|Sk!C==G-FSg35{OFD$axP`oYq`F&{{ z`^-7?>K0O>5!289F?bH}3mgy(l~Qr$f(;LqOk~iU7%KI_BFBz5oIghh$=!KVJzI($Hu+u95osoI)J-Xd{v;+ne z^p<50zRyb_bVj^*t_)+D`PSW^X!OoQ3G&Mx`h#BdnAUO$SB9$v-U;`S=XxR>_QLIb zNkf>6Mh&zD!Uxkg6dtMy`c9>94B(#dB>KkqOeKTx+~Pz6 zpcPTkQiKG2lVmt5zMF(1tfz{VIiifaoe+qyuE1t)>Y&UhjfLt+JiUZ!N8esTS?OC5 zDp!@d4FL^O6}O~sFQG#4-B_pqU^Hz};+ZS`>jg6cpP7{KK*97{9D2fBDUs30N$s0j zm-CXa+Jku&-3<@sCFma>%uCn{OtMJrd~|ZJE$�RI0<&eLYNiIB>C#I%fJ|Ed3rs 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

DXCut#RZjj>mnaUL?lq&o0edZ!}S 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 ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Emulation of a Boss CE-2 Chorus. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobDelay.ttl b/lv2/aarch64/ToobAmp.lv2/ToobDelay.ttl index 97573a7..d8e95a7 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobDelay.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobDelay.ttl @@ -41,7 +41,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ A straightforward no-frills digital delay. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobFlanger.ttl b/lv2/aarch64/ToobAmp.lv2/ToobFlanger.ttl index 7b2b30d..a4601a6 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobFlanger.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobFlanger.ttl @@ -41,7 +41,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Emulation of a Boss BF-2 Flanger, based on circuit analysis and simulation of the original. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobFlangerStereo.ttl b/lv2/aarch64/ToobAmp.lv2/ToobFlangerStereo.ttl index 5a85fdd..dcef7d7 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobFlangerStereo.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobFlangerStereo.ttl @@ -41,7 +41,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Digital emulation of a Boss BF-2 Flanger. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobFreeverb.ttl b/lv2/aarch64/ToobAmp.lv2/ToobFreeverb.ttl index 94a7c65..c19a1da 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobFreeverb.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobFreeverb.ttl @@ -41,7 +41,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Toob Freeverb is an Lv2 implementation of the famous Freeverb reverb effect. FreeVerb delivers a well-balanced reverb with very little tonal coloration. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobGraphicEq.ttl b/lv2/aarch64/ToobAmp.lv2/ToobGraphicEq.ttl index fcf298c..7581cc8 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobGraphicEq.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobGraphicEq.ttl @@ -41,7 +41,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ A 7 octave graphic equalizer, with frequencies chosen to be useful for EQ-ing guitar signals. """ ; diff --git a/lv2/aarch64/ToobAmp.lv2/ToobLooperFour.ttl b/lv2/aarch64/ToobAmp.lv2/ToobLooperFour.ttl index cb2c508..4cc44e8 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobLooperFour.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobLooperFour.ttl @@ -92,7 +92,7 @@ myprefix:output_group doap:license ; doap:maintainer ; lv2:minorVersion 1 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; ui:ui ; diff --git a/lv2/aarch64/ToobAmp.lv2/ToobLooperOne.ttl b/lv2/aarch64/ToobAmp.lv2/ToobLooperOne.ttl index 9efd0ca..e37f594 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobLooperOne.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobLooperOne.ttl @@ -78,7 +78,7 @@ myprefix:output_group doap:license ; doap:maintainer ; lv2:minorVersion 1 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; ui:ui ; diff --git a/lv2/aarch64/ToobAmp.lv2/ToobML.ttl b/lv2/aarch64/ToobAmp.lv2/ToobML.ttl index 5e6e3ee..de2a07a 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobML.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobML.ttl @@ -67,7 +67,7 @@ toobml:sagGroup doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ The TooB ML Amplifier plugin provides emulation of a variety of amplifiers and overdrive pedals that are implemented using neural-network-based machine learning models of real amplifiers. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobMix.ttl b/lv2/aarch64/ToobAmp.lv2/ToobMix.ttl index 2e397d4..aa0ae6a 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobMix.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobMix.ttl @@ -40,7 +40,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Remix a stereo input signal. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobNeuralAmpModeler.ttl b/lv2/aarch64/ToobAmp.lv2/ToobNeuralAmpModeler.ttl index 5355066..67ede49 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobNeuralAmpModeler.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobNeuralAmpModeler.ttl @@ -61,7 +61,7 @@ toobNam:eqGroup doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ A port of Steven Atkinson's Neural Amp Modeler to LV2. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobNoiseGate.ttl b/lv2/aarch64/ToobAmp.lv2/ToobNoiseGate.ttl index 932ca56..5672117 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobNoiseGate.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobNoiseGate.ttl @@ -54,7 +54,7 @@ noisegate:envelope_group doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ A noise gate is an audio processing tool that controls the volume of an audio signal by allowing it to pass through only when it exceeds a set threshold. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobPhaser.ttl b/lv2/aarch64/ToobAmp.lv2/ToobPhaser.ttl index 6963a38..3676f05 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobPhaser.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobPhaser.ttl @@ -40,7 +40,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ A loose emulation of an MXR® Phase 90 Phaser. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobPlayer.ttl b/lv2/aarch64/ToobAmp.lv2/ToobPlayer.ttl index 000489f..c11a17b 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobPlayer.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobPlayer.ttl @@ -60,7 +60,7 @@ toobPlayer:seek doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Play audio files. Audio files can optionally be loooped by pressing the "Set loop" button. diff --git a/lv2/aarch64/ToobAmp.lv2/ToobRecordMono.ttl b/lv2/aarch64/ToobAmp.lv2/ToobRecordMono.ttl index b127513..841fb12 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobRecordMono.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobRecordMono.ttl @@ -51,7 +51,7 @@ recordPrefix:audioFile doap:license ; doap:maintainer ; lv2:minorVersion 1 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; ui:ui ; diff --git a/lv2/aarch64/ToobAmp.lv2/ToobRecordStereo.ttl b/lv2/aarch64/ToobAmp.lv2/ToobRecordStereo.ttl index b466568..9669716 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobRecordStereo.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobRecordStereo.ttl @@ -88,7 +88,7 @@ myprefix:loop3_group doap:license ; doap:maintainer ; lv2:minorVersion 1 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; ui:ui ; diff --git a/lv2/aarch64/ToobAmp.lv2/ToobTuner.ttl b/lv2/aarch64/ToobAmp.lv2/ToobTuner.ttl index 90b5392..bcaf601 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobTuner.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobTuner.ttl @@ -40,7 +40,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ TooB Tuner is a chromatic guitar tuner. """ ; diff --git a/lv2/aarch64/ToobAmp.lv2/ToobVolume.ttl b/lv2/aarch64/ToobAmp.lv2/ToobVolume.ttl index d78713b..be47dd1 100644 --- a/lv2/aarch64/ToobAmp.lv2/ToobVolume.ttl +++ b/lv2/aarch64/ToobAmp.lv2/ToobVolume.ttl @@ -39,7 +39,7 @@ doap:license ; doap:maintainer ; lv2:minorVersion 0 ; - lv2:microVersion 63 ; + lv2:microVersion 64 ; rdfs:comment """ Volume control. diff --git a/src/AlsaDriver.cpp b/src/AlsaDriver.cpp index 5df7144..783ab4f 100644 --- a/src/AlsaDriver.cpp +++ b/src/AlsaDriver.cpp @@ -1484,7 +1484,7 @@ namespace pipedal #endif } - std::jthread *audioThread = nullptr; + std::unique_ptr audioThread; bool audioRunning; bool block = false; @@ -1518,32 +1518,36 @@ namespace pipedal } while (frames > 0); return framesRead; } + protected: void ReadMidiData(uint32_t audioFrame) { AlsaMidiMessage message; midiEventCount = 0; - while(alsaSequencer->ReadMessage(message,0)) + while (alsaSequencer->ReadMessage(message, 0)) { size_t messageSize = message.size; - if (messageSize == 0) + if (messageSize == 0) { continue; } - if (midiEventMemoryIndex + messageSize >= this->midiEventMemory.size()) { + if (midiEventMemoryIndex + messageSize >= this->midiEventMemory.size()) + { continue; } - if (midiEventCount >= this->midiEvents.size()) { - midiEvents.resize(midiEventCount*2); + if (midiEventCount >= this->midiEvents.size()) + { + midiEvents.resize(midiEventCount * 2); } - // for now, prevent META event messages from propagating. - if (message.data[0] == 0xFF && message.size > 1) { + // for now, prevent META event messages from propagating. + if (message.data[0] == 0xFF && message.size > 1) + { continue; } MidiEvent *pEvent = midiEvents.data() + midiEventCount++; pEvent->time = audioFrame; - pEvent->size = messageSize; + pEvent->size = messageSize; pEvent->buffer = midiEventMemory.data() + midiEventMemoryIndex; memcpy( @@ -1551,11 +1555,10 @@ namespace pipedal message.data, message.size); midiEventMemoryIndex += messageSize; - } } - private: + private: long WriteBuffer(snd_pcm_t *handle, uint8_t *buf, size_t frames) { long framesRead; @@ -1759,7 +1762,7 @@ namespace pipedal } } - audioThread = new std::jthread([this]() + audioThread = std::make_unique([this]() { AudioThread(); }); } @@ -1773,8 +1776,7 @@ namespace pipedal terminateAudio(true); if (audioThread) { - this->audioThread->join(); - this->audioThread = 0; + this->audioThread = 0; // jthread joins. } Lv2Log::debug("Audio thread joined."); } @@ -1789,9 +1791,6 @@ namespace pipedal AlsaSequencer::ptr alsaSequencer; public: - - - virtual void SetAlsaSequencer(AlsaSequencer::ptr alsaSequencer) override { this->alsaSequencer = alsaSequencer; @@ -1822,7 +1821,7 @@ namespace pipedal { for (size_t i = 0; i < buffer.size(); ++i) { - // delete[] buffer[i]; + delete[] buffer[i]; buffer[i] = 0; } buffer.clear(); @@ -1887,6 +1886,51 @@ namespace pipedal snd_pcm_t *captureHandle = nullptr; snd_pcm_hw_params_t *playbackHwParams = nullptr; snd_pcm_hw_params_t *captureHwParams = nullptr; + + Finally ff_playbackHandle{ + [&playbackHandle]() + { + if (playbackHandle) + { + int rc = snd_pcm_close(playbackHandle); + if (rc < 0) + { + throw std::runtime_error("snd_pcm_close failed."); + } + playbackHandle = nullptr; + } + }}; + Finally ff_captureHandle{ + [&captureHandle]() + { + if (captureHandle) + { + int rc = snd_pcm_close(captureHandle); + if (rc < 0) + { + throw std::runtime_error("snd_pcm_close failed."); + } + + captureHandle = nullptr; + } + }}; + Finally ff_playbackHwParams{ + [&playbackHwParams]() + { + if (playbackHwParams) + { + snd_pcm_hw_params_free(playbackHwParams); + } + }}; + Finally ff_captureHwParams{ + [&captureHwParams]() + { + if (captureHwParams) + { + snd_pcm_hw_params_free(captureHwParams); + } + }}; + std::string alsaDeviceName = jackServerSettings.GetAlsaInputDevice(); bool result = false; @@ -2001,28 +2045,6 @@ namespace pipedal result = false; throw; } - if (playbackHwParams) - { - snd_pcm_hw_params_free(playbackHwParams); - playbackHwParams = nullptr; - } - - if (captureHwParams) - { - snd_pcm_hw_params_free(captureHwParams); - captureHwParams = nullptr; - } - - if (playbackHandle) - { - snd_pcm_close(playbackHandle); - playbackHandle = nullptr; - } - if (captureHandle) - { - snd_pcm_close(captureHandle); - captureHandle = nullptr; - } return result; } @@ -2176,4 +2198,9 @@ namespace pipedal } #endif } + + void FreeAlsaGlobals() + { + snd_config_update_free_global(); // to get a clean Valgrind report. + } } // namespace diff --git a/src/AlsaDriver.hpp b/src/AlsaDriver.hpp index d9a6aa2..c579813 100644 --- a/src/AlsaDriver.hpp +++ b/src/AlsaDriver.hpp @@ -40,5 +40,7 @@ namespace pipedal { // test only. void AlsaFormatEncodeDecodeTest(AudioDriverHost*driverHost); void MidiDecoderTest(); + + void FreeAlsaGlobals(); // for valgrind. Free the Alsa configuration cache. } diff --git a/src/AudioHost.cpp b/src/AudioHost.cpp index ebc387c..3cdb7cc 100644 --- a/src/AudioHost.cpp +++ b/src/AudioHost.cpp @@ -1511,8 +1511,10 @@ public: if (property != nullptr && value != nullptr && property->type == uris.atom_URID) { LV2_URID propertyUrid = ((LV2_Atom_URID *)property)->body; - this->pNotifyCallbacks->OnPatchSetReply(instanceId, propertyUrid, value); - // this->pNotifyCallbacks->OnNotifyMaybeLv2StateChanged(instanceId); + if (this->pNotifyCallbacks) + { + this->pNotifyCallbacks->OnPatchSetReply(instanceId, propertyUrid, value); + } } } } diff --git a/src/PiPedalModel.cpp b/src/PiPedalModel.cpp index 5049cb9..d79b286 100644 --- a/src/PiPedalModel.cpp +++ b/src/PiPedalModel.cpp @@ -2239,7 +2239,10 @@ void PiPedalModel::OnPatchSetReply(uint64_t instanceId, LV2_URID patchSetPropert } } } - audioHost->SetListenForAtomOutput(atomOutputListeners.size() != 0); + if (audioHost) + { + audioHost->SetListenForAtomOutput(atomOutputListeners.size() != 0); + } } void PiPedalModel::OnNotifyPathPatchPropertyReceived( diff --git a/src/PluginHost.cpp b/src/PluginHost.cpp index 4b09185..5a796cb 100644 --- a/src/PluginHost.cpp +++ b/src/PluginHost.cpp @@ -828,7 +828,10 @@ Lv2PluginInfo::Lv2PluginInfo(PluginHost *lv2Host, LilvWorld *pWorld, const LilvP std::string bundleUri = bundleUriNode.AsUri(); - std::string bundlePath = lilv_file_uri_parse(bundleUri.c_str(), nullptr); + char *lilvBundlePath = lilv_file_uri_parse(bundleUri.c_str(), nullptr); + std::string bundlePath = lilvBundlePath; + lilv_free(lilvBundlePath); + if (bundlePath.length() == 0) throw std::logic_error("Bundle uri is not a file uri."); @@ -1655,9 +1658,9 @@ Lv2PortGroup::Lv2PortGroup(PluginHost *lv2Host, const std::string &groupUri) this->uri_ = groupUri; AutoLilvNode uri = lilv_new_uri(pWorld, groupUri.c_str()); - LilvNode *symbolNode = lilv_world_get(pWorld, uri, lv2Host->lilvUris->lv2core__symbol, nullptr); + AutoLilvNode symbolNode = lilv_world_get(pWorld, uri, lv2Host->lilvUris->lv2core__symbol, nullptr); symbol_ = nodeAsString(symbolNode); - LilvNode *nameNode = lilv_world_get(pWorld, uri, lv2Host->lilvUris->lv2core__name, nullptr); + AutoLilvNode nameNode = lilv_world_get(pWorld, uri, lv2Host->lilvUris->lv2core__name, nullptr); name_ = nodeAsString(nameNode); } diff --git a/src/WebServer.cpp b/src/WebServer.cpp index e159704..4a86c9a 100644 --- a/src/WebServer.cpp +++ b/src/WebServer.cpp @@ -39,6 +39,7 @@ #include "ofstream_synced.hpp" #include "ModTemplateGenerator.hpp" + #include #include "WebServer.hpp" @@ -685,7 +686,7 @@ namespace pipedal int threads = 1; size_t maxUploadSize = 512 * 1024 * 1024; - std::thread *pBgThread = nullptr; + std::unique_ptr pBgThread; std::recursive_mutex io_mutex; boost::asio::io_context *pIoContext = nullptr; @@ -1417,7 +1418,7 @@ namespace pipedal throw std::runtime_error("Bad state."); } this->signalOnDone = signalOnDone; - this->pBgThread = new std::thread(ThreadProc, this); + this->pBgThread = std::make_unique(ThreadProc, this); } virtual void DisplayIpAddresses() override; diff --git a/src/main.cpp b/src/main.cpp index 3e38c95..99c823c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -41,6 +41,7 @@ #include "HtmlHelper.hpp" #include #include +#include "AlsaDriver.hpp" #include #include @@ -422,6 +423,8 @@ int main(int argc, char *argv[]) } Lv2Log::info("Shutdown complete."); + FreeAlsaGlobals(); + if (systemd) { sd_notify(0, "STOPPING=1"); diff --git a/valgrind.sh b/valgrind.sh new file mode 100755 index 0000000..58d1723 --- /dev/null +++ b/valgrind.sh @@ -0,0 +1 @@ +valgrind --leak-check=full --log-file=vg.output ./build/src/pipedald /etc/pipedal/config ./vite/dist -port 0.0.0.0:8080 -log-level debug diff --git a/vg.output b/vg.output new file mode 100644 index 0000000..ae1253a --- /dev/null +++ b/vg.output @@ -0,0 +1,146 @@ +==5249== Memcheck, a memory error detector +==5249== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==5249== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info +==5249== Command: ./build/src/pipedald /etc/pipedal/config ./vite/dist -port 0.0.0.0:8080 -log-level debug +==5249== Parent PID: 5248 +==5249== +==5249== +==5249== HEAP SUMMARY: +==5249== in use at exit: 88,737 bytes in 474 blocks +==5249== total heap usage: 662,523 allocs, 662,049 frees, 52,720,309 bytes allocated +==5249== +==5249== 22 bytes in 1 blocks are definitely lost in loss record 11 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x61DC32F: ??? +==5249== by 0x61BFFC3: ??? +==5249== by 0x61C01DB: ??? +==5249== by 0x61BF9D7: ??? +==5249== by 0x61C0267: ??? +==5249== by 0x61C0677: ??? +==5249== by 0x61C0C1B: ??? +==5249== by 0x61C0C47: ??? +==5249== by 0x5F143DB: ??? +==5249== by 0x5F14613: ??? +==5249== by 0x6046B87: ??? +==5249== +==5249== 56 bytes in 1 blocks are definitely lost in loss record 45 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x6233FC7: ??? +==5249== by 0x6232503: ??? +==5249== by 0x6233197: ??? +==5249== by 0x6233343: ??? +==5249== by 0x6233AB7: ??? +==5249== by 0x5F14453: ??? +==5249== by 0x5F14613: ??? +==5249== by 0x6046B87: ??? +==5249== by 0x5EFD7B7: ??? +==5249== by 0x5EFE143: ??? +==5249== by 0x60467A7: ??? +==5249== +==5249== 88 bytes in 1 blocks are definitely lost in loss record 52 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x625EF8B: ??? +==5249== by 0x61CD1E7: ??? +==5249== by 0x61CD3AF: ??? +==5249== by 0x61CD46B: ??? +==5249== by 0x5F1C0E7: ??? +==5249== by 0x5F0A637: ??? +==5249== by 0x5F143AB: ??? +==5249== by 0x5F14613: ??? +==5249== by 0x6046B87: ??? +==5249== by 0x5EFD7B7: ??? +==5249== by 0x5EFE143: ??? +==5249== +==5249== 3,352 (80 direct, 3,272 indirect) bytes in 1 blocks are definitely lost in loss record 89 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x6235507: ??? +==5249== by 0x61BFFEB: ??? +==5249== by 0x61C01DB: ??? +==5249== by 0x61BF9D7: ??? +==5249== by 0x61C0267: ??? +==5249== by 0x61C0677: ??? +==5249== by 0x61C0C1B: ??? +==5249== by 0x61C0C47: ??? +==5249== by 0x5F143DB: ??? +==5249== by 0x5F14613: ??? +==5249== by 0x6046B87: ??? +==5249== +==5249== 3,709 (80 direct, 3,629 indirect) bytes in 1 blocks are definitely lost in loss record 91 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x6235507: ??? +==5249== by 0x626268B: ??? +==5249== by 0x604751B: ??? +==5249== by 0x624C53B: ??? +==5249== by 0x6046AA7: ??? +==5249== by 0x6046C17: ??? +==5249== by 0x5EFD7B7: ??? +==5249== by 0x5EFE143: ??? +==5249== by 0x60467A7: ??? +==5249== by 0x1B727F: CollatorImpl::CollatorImpl(std::shared_ptr, char const*) (Locale.cpp:385) +==5249== by 0x1B7717: LocaleImpl::GetCollator() (Locale.cpp:444) +==5249== +==5249== 3,950 (56 direct, 3,894 indirect) bytes in 1 blocks are definitely lost in loss record 92 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x625EF8B: ??? +==5249== by 0x624BE7B: ??? +==5249== by 0x60460BF: ??? +==5249== by 0x6046C0B: ??? +==5249== by 0x5EFD7B7: ??? +==5249== by 0x5EFE143: ??? +==5249== by 0x60467A7: ??? +==5249== by 0x1B727F: CollatorImpl::CollatorImpl(std::shared_ptr, char const*) (Locale.cpp:385) +==5249== by 0x1B7717: LocaleImpl::GetCollator() (Locale.cpp:444) +==5249== by 0x156B67: main (main.cpp:303) +==5249== +==5249== 4,264 bytes in 1 blocks are definitely lost in loss record 99 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x625EFDF: ??? +==5249== by 0x61C063F: ??? +==5249== by 0x61C0C1B: ??? +==5249== by 0x61C0C47: ??? +==5249== by 0x5F143DB: ??? +==5249== by 0x5F14613: ??? +==5249== by 0x6046B87: ??? +==5249== by 0x5EFD7B7: ??? +==5249== by 0x5EFE143: ??? +==5249== by 0x60467A7: ??? +==5249== by 0x1B727F: CollatorImpl::CollatorImpl(std::shared_ptr, char const*) (Locale.cpp:385) +==5249== +==5249== 5,804 (256 direct, 5,548 indirect) bytes in 1 blocks are definitely lost in loss record 100 of 102 +==5249== at 0x48850C8: malloc (vg_replace_malloc.c:381) +==5249== by 0x625EF8B: ??? +==5249== by 0x5F143CF: ??? +==5249== by 0x5F14613: ??? +==5249== by 0x6046B87: ??? +==5249== by 0x5EFD7B7: ??? +==5249== by 0x5EFE143: ??? +==5249== by 0x60467A7: ??? +==5249== by 0x1B727F: CollatorImpl::CollatorImpl(std::shared_ptr, char const*) (Locale.cpp:385) +==5249== by 0x1B7717: LocaleImpl::GetCollator() (Locale.cpp:444) +==5249== by 0x156B67: main (main.cpp:303) +==5249== +==5249== 7,733 bytes in 276 blocks are definitely lost in loss record 101 of 102 +==5249== at 0x488A1C4: realloc (vg_replace_malloc.c:1437) +==5249== by 0x5912A2B: serd_chunk_sink (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16) +==5249== by 0x5912A87: serd_chunk_sink_finish (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16) +==5249== by 0x590DA67: serd_file_uri_parse (in /usr/lib/aarch64-linux-gnu/libserd-0.so.0.30.16) +==5249== by 0x470DE3: pipedal::Lv2PluginInfo::Lv2PluginInfo(pipedal::PluginHost*, LilvWorldImpl*, LilvPluginImpl const*) (PluginHost.cpp:831) +==5249== by 0x49D8F7: void std::_Construct(pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (stl_construct.h:119) +==5249== by 0x49A61F: void std::allocator_traits >::construct(std::allocator&, pipedal::Lv2PluginInfo*, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (alloc_traits.h:635) +==5249== by 0x496C5F: std::_Sp_counted_ptr_inplace, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace(std::allocator, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:604) +==5249== by 0x48F12B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(pipedal::Lv2PluginInfo*&, std::_Sp_alloc_shared_tag >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:971) +==5249== by 0x488A3B: std::__shared_ptr::__shared_ptr, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr_base.h:1712) +==5249== by 0x482803: std::shared_ptr::shared_ptr, pipedal::PluginHost*, LilvWorldImpl*&, LilvPluginImpl const*&>(std::_Sp_alloc_shared_tag >, pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:464) +==5249== by 0x47E363: std::shared_ptr std::make_shared(pipedal::PluginHost*&&, LilvWorldImpl*&, LilvPluginImpl const*&) (shared_ptr.h:1010) +==5249== +==5249== LEAK SUMMARY: +==5249== definitely lost: 12,635 bytes in 284 blocks +==5249== indirectly lost: 16,343 bytes in 30 blocks +==5249== possibly lost: 0 bytes in 0 blocks +==5249== still reachable: 59,759 bytes in 160 blocks +==5249== suppressed: 0 bytes in 0 blocks +==5249== Reachable blocks (those to which a pointer was found) are not shown. +==5249== To see them, rerun with: --leak-check=full --show-leak-kinds=all +==5249== +==5249== For lists of detected and suppressed errors, rerun with: -s +==5249== ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0) From 43e067fb6ff03ec4455cb7edb03d2cc38076597f Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sat, 19 Jul 2025 22:07:21 -0400 Subject: [PATCH 11/18] Do not strip symbols in debug makepackage --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9878b1f..6aba14d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,7 +102,11 @@ set(CPACK_PACKAGING_INSTALL_PREFIX /usr) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) -set (CPACK_STRIP_FILES true) +if (CMAKE_BUILD_TYPE MATCHES Debug) + set (CPACK_STRIP_FILES false) +else() + set (CPACK_STRIP_FILES true) +endif() set(CPACK_DEBIAN_PACKAGE_SIGN_ALGORITHM "detached") set(CPACK_DEBIAN_PACKAGE_SIGN_TYPE "origin") From 8bee485c9ff4efbef985375f238c4ff237cd0591 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sun, 20 Jul 2025 11:52:26 -0400 Subject: [PATCH 12/18] Disable traces of experimental MIDI UI. --- PiPedalCommon/src/include/json.hpp | 2 +- src/Pedalboard.cpp | 1 + src/Pedalboard.hpp | 24 ++++++++++++------------ todo.txt | 3 +++ vite/src/pipedal/MidiChannelBinding.tsx | 5 +++++ vite/src/pipedal/PedalboardView.tsx | 3 ++- vite/src/pipedal/PluginControlView.tsx | 6 ++++-- 7 files changed, 28 insertions(+), 16 deletions(-) diff --git a/PiPedalCommon/src/include/json.hpp b/PiPedalCommon/src/include/json.hpp index aa193aa..def138f 100644 --- a/PiPedalCommon/src/include/json.hpp +++ b/PiPedalCommon/src/include/json.hpp @@ -607,7 +607,7 @@ namespace pipedal if (!obj) { write_raw("null"); } else { - write(obj.get()); + write(obj.value()); } } diff --git a/src/Pedalboard.cpp b/src/Pedalboard.cpp index 6093736..a6f1119 100644 --- a/src/Pedalboard.cpp +++ b/src/Pedalboard.cpp @@ -520,6 +520,7 @@ JSON_MAP_BEGIN(PedalboardItem) JSON_MAP_REFERENCE_CONDITIONAL(PedalboardItem,topChain,IsPedalboardSplitItem) JSON_MAP_REFERENCE_CONDITIONAL(PedalboardItem,bottomChain,&IsPedalboardSplitItem) JSON_MAP_REFERENCE(PedalboardItem,midiBindings) + JSON_MAP_REFERENCE(PedalboardItem,midiChannelBinding) JSON_MAP_REFERENCE(PedalboardItem,stateUpdateCount) JSON_MAP_REFERENCE(PedalboardItem,lv2State) JSON_MAP_REFERENCE(PedalboardItem,lilvPresetUri) diff --git a/src/Pedalboard.hpp b/src/Pedalboard.hpp index cb65855..f5d0ab8 100644 --- a/src/Pedalboard.hpp +++ b/src/Pedalboard.hpp @@ -81,7 +81,7 @@ public: }; -class PedalboardItem: public JsonMemberWritable { +class PedalboardItem { public: using PropertyMap = std::map; int64_t instanceId_ = 0; @@ -148,17 +148,17 @@ public: void AddResetsForMissingProperties(Snapshot&snapshot, size_t*index) const; - virtual void write_members(json_writer&writer) const { - writer.write_member("instanceId",instanceId_); - writer.write_member("uri",uri_); - writer.write_member("pluginName",pluginName_); - writer.write_member("isEnabled",isEnabled_); - if (isSplit()) - { - writer.write_member("topChain",topChain_); - writer.write_member("bottomChain",bottomChain_); - } - } + // virtual void write_members(json_writer&writer) const { + // writer.write_member("instanceId",instanceId_); + // writer.write_member("uri",uri_); + // writer.write_member("pluginName",pluginName_); + // writer.write_member("isEnabled",isEnabled_); + // if (isSplit()) + // { + // writer.write_member("topChain",topChain_); + // writer.write_member("bottomChain",bottomChain_); + // } + // } DECLARE_JSON_MAP(PedalboardItem); }; diff --git a/todo.txt b/todo.txt index 5776346..95ebe0b 100644 --- a/todo.txt +++ b/todo.txt @@ -39,3 +39,6 @@ pcm.pipedal_aux_in { } } + + +[{\"message\":\"updateCurrentPedalboard\"},{\"clientId\":6,\"pedalboard\":{\"name\":\"Test\",\"input_volume_db\":0,\"output_volume_db\":0,\"items\":[{\"instanceId\":51,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":50,\"title\":\"\",\"isEnabled\":true,\"uri\":\"http://calf.sourceforge.net/plugins/Gate\",\"pluginName\":\"Calf Gate\",\"controlValues\":[{\"key\":\"bypass\",\"value\":0},{\"key\":\"level_in\",\"value\":1},{\"key\":\"meter_in\",\"value\":0},{\"key\":\"meter_out\",\"value\":0},{\"key\":\"clip_in\",\"value\":0},{\"key\":\"clip_out\",\"value\":0},{\"key\":\"range\",\"value\":0.0612500012},{\"key\":\"threshold\",\"value\":0.125},{\"key\":\"ratio\",\"value\":2},{\"key\":\"attack\",\"value\":20},{\"key\":\"release\",\"value\":250},{\"key\":\"makeup\",\"value\":1},{\"key\":\"knee\",\"value\":2.82842994},{\"key\":\"detection\",\"value\":0},{\"key\":\"stereo_link\",\"value\":0},{\"key\":\"gating\",\"value\":0.03125}],\"midiBindings\":[],\"midiChannelBinding\":{\"deviceSelection\":0,\"midiDevices\":[],\"channel\":-1,\"acceptProgramChanges\":true,\"acceptCommonMessages\":true},\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":46,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":48,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":47,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":1,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{\"http://two-play.com/plugins/toob-ml#modelFile\":\"{\\\"otype_\\\": \\\"Path\\\",\\\"value\\\": \\\"/usr/lib/lv2/ToobAmp.lv2/models/tones/MesaBoogieMk2b_Crunch.json\\\"}\"}},{\"instanceId\":31,\"title\":\"\",\"isEnabled\":true,\"uri\":\"http://two-play.com/plugins/toob-freeverb\",\"pluginName\":\"TooB Freeverb\",\"controlValues\":[{\"key\":\"dryWet\",\"value\":0.653543293},{\"key\":\"roomSize\",\"value\":0.625},{\"key\":\"damping\",\"value\":0.574999988}],\"midiBindings\":[{\"symbol\":\"dryWet\",\"bindingType\":2,\"note\":72,\"control\":23,\"minControlValue\":0,\"maxControlValue\":127,\"minValue\":0,\"maxValue\":1,\"rotaryScale\":1,\"linearControlType\":0,\"switchControlType\":0}],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}}],\"nextInstanceId\":51,\"snapshots\":[],\"selectedSnapshot\":-1}}] \ No newline at end of file diff --git a/vite/src/pipedal/MidiChannelBinding.tsx b/vite/src/pipedal/MidiChannelBinding.tsx index 76feeeb..06dab83 100644 --- a/vite/src/pipedal/MidiChannelBinding.tsx +++ b/vite/src/pipedal/MidiChannelBinding.tsx @@ -24,6 +24,11 @@ export enum MidiDeviceSelection { DeviceList = 2 } +// This feature is not yet completely implemented. +export const midiChannelBindingControlFeatureEnabled: boolean = false; // set to true to enable the midi channel binding control in the plugin control view. + + + export default class MidiChannelBinding { deserialize(input: any) : MidiChannelBinding { this.deviceSelection = input.deviceSelection; diff --git a/vite/src/pipedal/PedalboardView.tsx b/vite/src/pipedal/PedalboardView.tsx index 4b25517..7b3bfcd 100644 --- a/vite/src/pipedal/PedalboardView.tsx +++ b/vite/src/pipedal/PedalboardView.tsx @@ -43,6 +43,7 @@ import { } from './Pedalboard'; import MidiIcon from './svg/ic_midi.svg?react'; +import { midiChannelBindingControlFeatureEnabled } from './MidiChannelBinding'; const START_CONTROL = Pedalboard.START_CONTROL; @@ -995,7 +996,7 @@ withStyles( const classes = withStyles.getClasses(this.props); return (

{ e.preventDefault(); }}> - {hasMidiConnector && ( + {hasMidiConnector && midiChannelBindingControlFeatureEnabled && (
diff --git a/vite/src/pipedal/PluginControlView.tsx b/vite/src/pipedal/PluginControlView.tsx index 073fd86..76d483f 100644 --- a/vite/src/pipedal/PluginControlView.tsx +++ b/vite/src/pipedal/PluginControlView.tsx @@ -27,6 +27,8 @@ import AutoZoom from './AutoZoom'; import ModGuiHost from './ModGuiHost'; +import {midiChannelBindingControlFeatureEnabled} from './MidiChannelBinding'; + import { withStyles } from "tss-react/mui"; import { PiPedalModel, PiPedalModelFactory } from './PiPedalModel'; import { UiPlugin, UiControl, UiFileProperty, UiFrequencyPlot, ScalePoint } from './Lv2Plugin'; @@ -762,7 +764,7 @@ const PluginControlView = makeIoPluginInfo("Output", Pedalboard.END_PEDALBOARD_ITEM_URI); midiBindingControl(pedalboardItem: PedalboardItem): ReactNode { - if (!pedalboardItem.midiChannelBinding) { + if ((!pedalboardItem.midiChannelBinding) || (midiChannelBindingControlFeatureEnabled === false)) { return false; } return ( @@ -890,7 +892,7 @@ const PluginControlView = pedalboardItem.midiChannelBinding = MidiChannelBinding.CreateMissingValue(); } - if (pedalboardItem.midiChannelBinding) { + if (pedalboardItem.midiChannelBinding && midiChannelBindingControlFeatureEnabled) { nodes.push(this.midiBindingControl(pedalboardItem)); } return ( From 200719af58916e96f07b7e018a3abb6f38364bab Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sun, 20 Jul 2025 15:53:49 -0400 Subject: [PATCH 13/18] MOD UI Docs. --- .vscode/settings.json | 3 +- README.md | 4 + debugDocs.sh | 9 + docs/Documentation.md | 3 + docs/Gemfile | 2 + docs/Gemfile.lock | 8 +- docs/ModUiSupport.md | 35 ++++ docs/WhichLv2PluginsAreSupported.md | 2 +- docs/_includes/pageIconL.html | 3 - docs/favicon.ico | Bin 0 -> 410598 bytes docs/favicon.svg | 264 ++++++++++++++++++++++++++++ docs/img/moduiThumb.jpg | Bin 0 -> 24189 bytes docs/img/selectUi.png | Bin 0 -> 12534 bytes docs/img/zam-modui.jpg | Bin 0 -> 94109 bytes docs/img/zam-pp-ui.png | Bin 0 -> 55906 bytes 15 files changed, 325 insertions(+), 8 deletions(-) create mode 100755 debugDocs.sh create mode 100644 docs/ModUiSupport.md create mode 100644 docs/favicon.ico create mode 100644 docs/favicon.svg create mode 100644 docs/img/moduiThumb.jpg create mode 100644 docs/img/selectUi.png create mode 100644 docs/img/zam-modui.jpg create mode 100644 docs/img/zam-pp-ui.png diff --git a/.vscode/settings.json b/.vscode/settings.json index 429b7a3..a0747af 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -134,6 +134,7 @@ "midiclip", "midisong", "mlmodel", + "modui", "MOTU", "Netplan", "Pedalboard", @@ -161,7 +162,7 @@ "cSpell.ignoreWords": [ "nammodel" ], - "cSpell.enabled": false, + "cSpell.enabled": true, // Disable all automatic completion suggestions - only show when Ctrl+Space is pressed "editor.quickSuggestions": { diff --git a/README.md b/README.md index e1dfbb7..63b793b 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,12 @@ https://github.com/user-attachments/assets/9a9fd0c6-78fc-4284-8b44-6a1929c00cc6 ### [Optimizing Audio Latency](https://rerdavies.github.io/pipedal/AudioLatency.html) ### [Command-Line Configuration of PiPedal](https://rerdavies.github.io/pipedal/CommandLine.html) ### [Changing the Web Server Port](https://rerdavies.github.io/pipedal/ChangingTheWebServerPort.html) + +%nbsp; + ### [Using LV2 Audio Plugins](https://rerdavies.github.io/pipedal/UsingLv2Plugins.md) ### [Which LV2 Plugins does PiPedal support?](https://rerdavies.github.io/pipedal/WhichLv2PluginsAreSupported.html) +### [Support for LV2 Plugins with MOD User Interfaces](https://rerdavies.github.io/pipedal/ModUiSupport.html)    diff --git a/debugDocs.sh b/debugDocs.sh new file mode 100755 index 0000000..2261a47 --- /dev/null +++ b/debugDocs.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Run local jeckyl-hosted sevever for GitHub documentation page. +# See https://jekyllrb.com/docs/installation/ for instructions on how to isntall jeckyll locally. +# Then +# cd docs +# bundle install +# +cd docs +bundle exec jekyll serve --host \ No newline at end of file diff --git a/docs/Documentation.md b/docs/Documentation.md index 7cbb9fd..7703e50 100644 --- a/docs/Documentation.md +++ b/docs/Documentation.md @@ -16,8 +16,11 @@ #### [Optimizing Audio Latency](AudioLatency.md) #### [Command-Line Configuration of PiPedal](CommandLine.md) #### [Changing the Web Server Port](ChangingTheWebServerPort.md) + +  #### [Using LV2 Audio Plugins](UsingLv2Plugins.md) #### [Which LV2 Plugins does PiPedal support?](WhichLv2PluginsAreSupported.md) +#### [LV2 Plugins with MOD User Interfaces](ModUiSupport.md)   diff --git a/docs/Gemfile b/docs/Gemfile index 8c717b7..2fc6a89 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -31,3 +31,5 @@ gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] # Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem # do not have a Java counterpart. gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] + +gem "webrick", "~> 1.9" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 4b10e71..7b3f5fa 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -205,14 +205,14 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) + mini_portile2 (2.8.9) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.19.0) - nokogiri (1.18.8-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.8-x86_64-linux-gnu) + nokogiri (1.18.8) + mini_portile2 (~> 2.8.2) racc (~> 1.4) octokit (4.25.1) faraday (>= 1, < 3) @@ -249,6 +249,7 @@ GEM unf_ext unf_ext (0.0.8.2) unicode-display_width (1.8.0) + webrick (1.9.1) PLATFORMS aarch64-linux @@ -262,6 +263,7 @@ DEPENDENCIES tzinfo (~> 1.2) tzinfo-data wdm (~> 0.1.1) + webrick (~> 1.9) BUNDLED WITH 2.4.19 diff --git a/docs/ModUiSupport.md b/docs/ModUiSupport.md new file mode 100644 index 0000000..993b4f9 --- /dev/null +++ b/docs/ModUiSupport.md @@ -0,0 +1,35 @@ +--- +page_icon: img/moduiThumb.jpg +icon_width: 120px +--- +## Support for LV2 Plugins with MOD User Interfaces + +{% include pageIconL.html %} + +Some LV2 plugins (currently a minority of plugins) provide custom plugin user interfaces based on [MOD Audio's](https://mod.audio/desktop/) +[ModUi framework](https://wiki.mod.audio/wiki/MOD_Web_GUI_Framework). When using such a plugin, you can choose whether to use the MOD Web GUI Framework user interface (the MOD UI) or the default PiPedal user interface. For the most part, the same functionality is available in both interfaces. + +Plugins that are distributed via Linux distributions usually do not implement MOD user interfaces; but all (or almost all) of the plugins that are available from the [PatchStorage website](https://patchstorage.com/platform/lv2-plugins/) do implement MOD user interfaces. Many plugins that are available from GitHub or other sources also implement MOD user interfaces. Often you can find updated versions of a plugin that is published by a distro on PatchStorage which does provide a MOD UI. + +Here's an example of a MOD UI for the ZAM Eq2 plugin: + +ZAM Eq2 MOD UI + + +And the PiPedal UI for the same plugin: + +ZAM Eq2 PiPedal UI + +Which UI you use is entirely up to you. MOD UIs tend to be a bit unfriendly for small-format devices like phones, but they do look great in a desktop browser. Sometimes the MOD UI will make better use of available screen space; sometimes the Pipedal UI will look better. It really depends on the plugin and your personal preferences. In this particular case, the MOD UI is more space efficient, but that is not always true. + +To select which user interface to use, tap on the UI selection button in the toolbar for the plugin. If the plugin does not provide a MOD UI, the button will be disabled. + +MOD UI selection button + +Support for MOD UIs in PiPedal is still experimental, so you may encounter some issues. PiPedal does not yet support all of the features of the MOD UI framework, not because it can't, but because we haven't been able to locate examples of plugins that use those features, which makes it difficult to test. If you encounter any issues, please report them on PiPedal's [GitHub Issues page](https://github.com/rerdavies/pipedal/issues), and we will do our best to provide quick fixes. + +  + + +-------- +[<< Which Plugins are Supported?](WhichLv2PluginsAreSupported.md) | [Up](Documentation.md) | [BuildingPiPedal from Source >>](BuildingPiPedalFromSource.md) diff --git a/docs/WhichLv2PluginsAreSupported.md b/docs/WhichLv2PluginsAreSupported.md index 6e3cf9a..4a5adad 100644 --- a/docs/WhichLv2PluginsAreSupported.md +++ b/docs/WhichLv2PluginsAreSupported.md @@ -14,4 +14,4 @@ If you install a new LV2 plugin, PiPedal will detect the change and make it avai PiPedal does not currently allow plugins to provide custom user interfaces; it displays controls that are declared by the LV2 plugin without customization. In practice, this means that LV2 plugins with simple sets of controls work well, but those with complex sets of controls can be difficult to use. However, we would be pleased to collaborate with developers who need more than the basic set of controls. This is a feature set that Pipedal needs to address, so we would be happy to collaborate with other developers on this. Please contact rerdavies at gmail.com for further details. -------- -[<< Using LV2 Audio Plugins](UsingLv2Plugins.md) | [Up](Documentation.md) | [BuildingPiPedal from Source >>](BuildingPiPedalFromSource.md) +[<< Using LV2 Audio Plugins](UsingLv2Plugins.md) | [Up](Documentation.md) | [MOD UI Support >>](ModUiSupport.md) diff --git a/docs/_includes/pageIconL.html b/docs/_includes/pageIconL.html index a15ccce..5a3a026 100644 --- a/docs/_includes/pageIconL.html +++ b/docs/_includes/pageIconL.html @@ -1,7 +1,4 @@
-
-

Generated by DALL-E 2

-
diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cc7e70b7e3e31a8814e872b15cf16ad6ca57f60d GIT binary patch literal 410598 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%0A6dKK7yR!Ef2WS< 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 bxEydf;Bvs_fXe}w11<+#4!9iH1`hl`V{)sP literal 0 HcmV?d00001 diff --git a/docs/favicon.svg b/docs/favicon.svg new file mode 100644 index 0000000..4ab2da1 --- /dev/null +++ b/docs/favicon.svg @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/img/moduiThumb.jpg b/docs/img/moduiThumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a6ad8c47b2833ada7fc68c70c6a70734e7cca8ba GIT binary patch literal 24189 zcmeFYWmFwOvo^Z%;O_43?hYZidvN!Sd(hzS8r%u)gy8P(0fJj_hr7uu=d5p?^WAlS z-?!Hu=ApZ)rn`wy4XM%19blax~#rJ{^d;q z;rGM<68J9jUw3I4c_k7yCRP?Eb}kSn3mYdN3pXDd3kfSbA1enRD>sN5?Aw3o@-E|T z3t`gI#l?}2nc3c%$;i~f*o?`*;Anf62WMX6HLSk%YVP!8!cHZ7a zMq*_uNT$gt&m!+AZf0rq(FZPD&;$>sPYf2_8L?Yn9=V9k)XXau=;$dfN@66{R zNcLAa9|*r^Gn0}0C2_G4B+~+^E$#p`BjI4;U}9kena_=l3?u_+YR;!3A@xrQp#KEP z{;8_FyE~IRJCg&@f|-?}l^}S}H_`v7{QILpHRO|UFmZiV0F*}Eh@QwI|(Q@(#dUK1WuUKUP99(FTcMh*^k zGe#aRPA*0s6J8^BV{Q&^6LzD2$&s;lb}_OyF?*K-lFVcU62f81&SuWb#lgsJ#>L6V zVaCeBXl%sE#%RLE$-!yN%FSlR&h{^UMW7X^8yVUDcYWUFn1bY(b8vBUv-7etnsc#m zGjgzSa)2~4Hf3ZtX5nS$;pOGzGB+V3F*V_nasb*Hf!e{!&d9=y+1k;}f{f(dUVNfT zGJ<4mOf3KWSIO4M#T-N{NG4}x@9Oc-Ts12@GgTL(cgwMIbF#CrvvP5AvvP6pa&Z5X zLc(F9Dr&L4z_}1{~m1rD3b^EX;UK?BMBoHGZ5Rq$DZ21 z#vUUJ2OkSaFHl|iCCIk`EF8M#%A8!&>J zk&Wg5v;i|nf9Ch0_>ZbE|DUz|TlU|E?Z3!DzTh4H+qDRh{3rd#0{^kVe=P7H3;f3d z|FOXT|19ud!HJnYXr<#03O(Mo!E0p1#SN5H6s2V3BtelG0092Y*2K;kQUn07vv&ci zNQ;qZY3q={9D-sq3;-$s4gfGRads3{Qj&WQiT>wwyYM&G0?abL%le;b{?}YYQ&12B z3f4$K6e1>$Ko<};1Ys_B7sq#;2ErJi1)C`dSAsAD5TqaoFTLj*{{x@AV~fA|JxBy# z0M%5)L3MkN4oNKj8#exL*u)ZO2cqEs(NLJ$*@NVRYyAV8zGI(vY-j5V((P}0k0ue! z?A294cM8x&0FVaA0OSEm01|*Pz!hKxum!jP7(sV?P>wS|1ynBfzwqPzie%e<5U2k`6~c`v+QUDH2V7- z2+&_}b5OW`SponcY6Af1Qvd**?mz4XDtj*n6f6P&Y9L$5jROGb82|v41xU8u|5ESw znE&5)`@hos(|&KO0C4~WIQaVylpsMrs1Hz3kdRPtFfh;`5a19H;Njrm5s}bP5Rp)k z;NelQP*Bk^FflO^kg;*FFmTW?FfrbRfI)zGAfaHPpkOf&;Sn+ZKc}}I0O|)o51;`8 z3>5&53I>4+_SOfg3;?9r`#Abn0x1X$1`Y%G@LmcAcrW~K#gI_o5YS)%m=A9&00an7 zF$x3rxaChr8W2pA=(g?PL)l|{*_TjL#*Q3qg|K2Nv@^e4 zn^aP?@|Vj~KSq^*q)ccmi?6b0Kn-E^h^arfTtk??&q<5iyCm`aljWT)pV2A(i0Ioq z>EyD=gwxP>N+}-1*eM%A!~bP&t$}?C{Vd{-A3Wv6+G}iVqfc4d#$?umOPz2PiNnP8 zwTPr`bXB5`hl370j1S{fwJ6dtQEb*A7bdpnd{p4?kw%4>tvDxt@z|{l;wjYTAX+!! zMvEUxKl#MeSiEsjO zZSm!H4C+BvwGz#yKYZ@|7MRNO^)s<9!4nRDX_|CXxJ4$a$w#p2HIq~-@GMi2dAKoO zd3%+mU+y^e@Cz>K91Ms};va@vFWoFZH3b()S{9OTm{7%7bP*4=X)eKM#c z54WJ0o{$XJywA5O&!{~Fn)}_2c0D59QoSmnB(O02O zp}W=-=Z$lxGquL$7OafECDY%jQbn!G6Rw@LCO7T@e$M@$UZ_F>gxySPitoqT1nGyl zffxZwOFq5%M$NO!i_7Po=O!D2ojH%VD{VycNHzi*`-Y7L&M)HdpW)rDu=n+hz8{#L zK+Uidwo_krNiXO%PouI@*o<**;&$bVT?yQ^pLlQVcWz2GK&1L&@0)+SCC6K+;Ug-G zE`V)0@Qg|YTY6dM4cy|5SvyTEs1y zKh?CsN43nT+pl@jJ+h@n@qc8M`7-PoQ&X{x)e%~iT$OB|tRmXD-^dl!`v!2|IIlgo z__3H1;#MA1*Po(fWgk=4s4ub{&Kg+Jg(755$3_8HT{z*kj7@0R=kt8ghsZ0FiK zg_$)yr=fo9l2pwRCn0kc<7KgFW`&ifSmjqnlL!@j9MyHkWj2M$vzwVd{Q;Q<0ij8c zFJ2E8auVSqqb?X}`dM4^mWuW9-3PUA+?C z(^54Hp#=o{Ee%k$0lMJxT|Y(Zfe^e&EnN<|;%BBMBJD~Ch5W^UUu79_!c+V@iiC0y z;t1WL(>3wj_5m6uDQWsOW8RG;HBb9}IJZ{97&SLkj}(lfx4W;uUvQu5CaD{I!!%B$ zW^)J|;GC#E(TqdEXB}`I;4e0wYBr~@TMs={aoBL2@nxY21_mn_9NLT7L@IwVL9+;E zsQU0TZAM-vJ9X55M(8(9Ot2>WcrA(3P({|ViJ3{(XKzlG8RCG(UGB>bxBg=#fI~Az z8^Ix1B0ZMl4l^crDk-gGPe|@sF{&5Ci||XWe4VaKpln(;PK|HpIjq0VLr$y?tbKaK z5os=f54LZ=aaVOUlZ^HL#{4|hFuUlqpOQ6X9_^U6C~ho-+xFV}Q^sBe*>sG<^hM>h zzBvx^Xk&#jUMPKkE29O-y)&bLoIe-@1UMu#_}{tk-P=O~pwQ4!G1y7jpfSl<-QZ&1LqOOqUGq=ZinJ|DK3lGV z4o<MmO=#5HPR{ubtk+gbGD92TJ1=Kz&2=6FBaJj%9+JEbd4eiV z3EW6iiFKapBBA=o!t5|#HnlGCJW@9Jk1`C=SJx*?Vtkj3Q8<0RM#yiOP^;g>ohCB1 z1INkAh7XRlo_|dJDp5-3Z1h}PNI%`0@-j72TMlf^T3YHq)jrg~H?6u(S-SeZta+BN z2ff6bT*X3y^wY%fVOxTp(WqBD_y{PglPBgDp)dzD8;6TU=b$2|V65gvx6BmLB-@KS zcxpXX*U>Z?BO1v$REvWu{*+O5Qi(uCXih~&S@;1`*7^*iRaQmOPe*%im?9Tb@48tJ zb>6+Ks=SQi$O2#Y&nC0e%5E%+$I(+df0FkQZAm8mP(=ACukGXVhh=!vRyjR}u*d|) zq{P+6NnCU}Y$pm57(E%x1(|kpK4D2K+R(ecrOU4|U2P42@V|{gPBghs4|6S@DCBm0 zl@l3L64^IRpG;O?y=+9{7j^%vQGmC$-cFC+B=>sdJ~I)GCMBVwAy9B4{iAMSTuAot zyOhVtLh`oQCywlFVXn^4uuk;_U;Wh4DAtazRxe&PBD(bhzzf8_B00Xh3FGtg_a0IAejRQ@1xHkTijmW=!c(v@b%;Q8f1oBRZefcsEOLrBp z2UeM*vn8%1W0Hlrik<<=EPjOz{tErEPcPyR#7Hvk^lkihow;LNw3Fqm zEUkXoqzKpH&X)_bN37^$}1F&eDWDiLg z$jE5c8>oltS${a()SNiwai7A`$*6lt=%g1dMcZhJj7O8-yAPOd;{Zczu<@<0-;Kq6 zy1wFE1f&QwL1ueqtq+(@%^8>9BShB#EcZ9)>M5q$p-+2}1B1~fZHuH1zY}+0mp5?s z5-1hzJa;`bpUW3w8nljOB*LNXf?MdRNfc(Vx{p3LLUQfaFGjAgK@lLirl4AO9JgHiyBvg2-s0el;!+3S&t_ZSQy>_vP2xZbk{q&3L|d-6j~m>89-`9KKx$e z?@{&Yv1mDWsnRVYYpmr2w+Yw*Hha0>tf+#c(n!bq1U9_XFvuHry4LWEE>8^i4c_E~ zjA6rFT0mDw(<4&cE8A?*7i1MTto-5OHq}Iv$~$RXu58{B=WH@(Q;R}5x&5aj)W_Ph zH-JXW^@V*mVe2SsRyGiym7rvHmRoUamd`?Nbr#yNhOV{6%6j=oYvP-suzq>)Rjm6B zaTLOYUDj%X2rrj9F1IEwH_$F?pIwm*&RM>k+#td0(r#evQVt2rWy2f(PtXn2@JEK- zO2qiP9_a(Luf^l_%}~y~AI1ZPgME)?z$#7X(VB2QsqOnhk}Y^+#3@QziGM=)dE}AS z;pq<3qK-OW*ALi)^Mnx`XZz#c{t8v=kfBq1PC(V);tS=pd5$VAzd#V|?8u_!oHjGX@Ze^4|a3^qEXGaN)Wcpuh^ zO>sB)0Q*^z`b;q51uR%lv0Tw({|L%kS0iPGE>@ly6pRQD81x+gyUI(tiWvzFJ-+m%(!MHFF414pBDehK!JJ(g;7uYm4Eh1ebw=aK?CL5U0 z?<~Xa(%q1}s{G)OdD*rwUd9>;yXUCIn_F$u{i$`M)j{>huqe}yHNydJLQjt-vDrDy zPW+tmTr@fEo6n=?wBVh(_$@px#%+n*@QkmreK=oHscE8?MudBv%LJ#TbOVtW3mH4B zz3Yji#$9HD{#rur?(-zw4)%A8WUs)RGfKZg@jWspANr2sHH4TISso(#8|~L@nw3T3 zfX}g&qg#vTiyxP6zh49+w?_IUA2MB9c9xW4t1{c&+I_|SIsa9r*RH%%eIM2ONS^+j zrM#VLD#EM-Jyq)0x>4Iaus%mPVf>ogHOa&~w!hK`A>(xmn>sG*va>t+0v~;#mv%>+ zez`IEF=X(!wgFyW^O&R@!gt&w0=$dI!V>+uHvm`AfY%q%yspaXjFW+t9y3*SyXvm#l~27$ zfk1lexw1v=J{EKWdm~;~?(iARwjbrL$$Nw@RuOI+Ar@ugY*Y#5ZcL&2d(+YbUcr`i zBSXI1ngi=LOJ-$b0$Z%~O?#yLvL3F<)%mtm<8{Gmc>H4>B-rVC{S(Dec5OFlycO}< z+VQb=3T{Y$wyVM_EIbVh04`{&*x}R7XVf3+&-7)Dxe^(Gry9i0=$D#2r}kT1ik5Ex zJLW4ZgQy$gU|(6wx_%O$VoV38^BE(SD!9tBtlG^L^MFZ85(cDtq%B{39W#?gyYky) zvt@DXMEodS_rA(@a@jZqa@AI(`mbucqd5KQ=Jq`88d;KDA!&ZDiYhwu8X*?#{;mG$ z$@i1Wu@@tosc!XTAmftL*48TIBat>7)o*J1_nQd_XwT<6u1Gtf5I?D&6*{Ay^zP8XTzVcQ8?4XmfkSq_Q z(eW|Q5fmhBz`ojz40!oXK$j{xND?(jQvGF378J&6g)9U7in&J9j7*HSt|fc0AMyD% zxeh}24s^&Wef?tv;ncD{W(b=3(!z}P9!#=o%np+ZS%V+Cac#;ZJ!ONr~G8ZiY8*lYTIFI32j3f%&yuE zI@_YQwgC#Mi&f%2dXHD+pWZ}6KONb{lFyfIRnaZPNxdR>HmsixFJ7NFd(4GC(vL*z zl3%B&Eo(rbb5+Zm$^E=6_saaU$mMX%COtvDlT+}Fwnt80*jHueS9|(tNwaYKL%Eln zsh92C7=L$7$=wC@s%To8e0*6-WCg!#7B=qih6N!WR+@!WxmRKpX5X|L1V|7wNYEP~ zR?___#Y0tTKr>W|Gwb&~SSd%>2SsP?r=0DsH7p3kgW9?zxe8sD z6Kxei%L*0AWzNbpVuu!4%8y(#~*@G$npr1BeJFjec=Vt_6a zfB%D|Ao={f$W!Di8y1voXedSrffa)t=OKpL(&m$JsVzQa32%_S5q4Nr?A)hnf^A43 zs+G!!&d^&K=hw?06*ZdZ)Z&RaQONM{g=fw4#n1NB`?OGDIl-7HaPL`1F z=vf~gAjo0r-8!Q3nBid&nB zrZyXZQ*u|oYW+E#qYDHvPhX_^T5@r;^(W#y(vQGi*W`iX%-(P;uAO zd42J+&i5nX=k(+Uxspp90Ualu&nI?e=mEQ3PS~@W#N_BRI}bQH8H0q|e+W1Q^Z#UV zzOp)A%+_`5AoW0Hh}6)<>^W3C``;3TIbIzXm5w)eNYDv*O*>u?%QNKtHUE{np z{tUZtmL$9zOuu`-QDilkjAh}HTxDf&ExOapy=D$Ga$JavOz*UCsOpeNY1JkhV?r`h z6m;09%5;#JwplBQU9$J3zqs*B=_z4oLQHa)r@@f;5MhdtVD-~%;UZH`TX&zG0VzIX z`a`7Pd~R#ur)Jz=bww-OxJf$uD^y%)-{!)T_bS-l0H`_Zu5;Zw40|-Ec!y(D&Inj8 z$%sm>0T{mWCTr;5(2jA#U>Y!XY9gaQy~ro~<%V4(@cq@ zX?$drnemn7myQ{{BN~L?P&uvd0Ii7_Pyz1|@q0l0&zSiA9Vlo`M9K<WR-WV%sE$5W6~>fk5UTo_io;V`q9-}wqLw&Hv2nu_nP57q zH>zW|SSru5M#B}>L1RoU$cvPB4FwHIuN2&A@<7nFJC}h~F%^~Wai)ZDukX8LM5@$J#%90eUhTmt`sJe8^ z+Z+$=F}#5#(;A<)U9u@tIHR?K)g(zZ&Xr`~tP9bDn0J&$ouf@= zIVx(oPXg}(d=b9N z?aE-m(c;DekG1<6rS$2HSi006Gp))Ds@+3L~`dk4^&*C370^M{4$qYxBZ$lt-?I%CmJe}(6jQCN6V9&}46Tf^9G(qQ7I zQNt48U?QZlg(5B+$)_55!dTI=&0kH@El)Au#(-p(WXBf@@ev4#FE-Ul=CsFyqQ*?Q zwRZKXp3BpxcZI*K|2{mV2rS;7MhyzIWyt)&)<)uqu_Se*jH5>rgi|Lho0MY%?XRW_ zj2u?yy%^6Ye-$gKT9lO6PODYzn$<+1%pbgN7DDE|pp)G#FY@e6wyE6xsqdlsBbB-p6LQbdXtS!udl{ziebq04^n;xp_ zTI;UOdBTy9LLg_bW&>R$-qd z0sIK>LIkjROMlzrBn>{hCA5e?#+$~@sDEsa%Pd(bSWOmAsI=r(XG>eok0Gi@Xr<%+ z&8dn?4_8$z$PlNo$Lp9jTGUorhH6>hV!trbCe>n$4fY1mCoU`xDEEe6`xI-cE}XE< zDaf4?GIQKtY5*-|$)z-Vy%JXII_s3f0GIo9>9#;1FtC?BbtJMZTcfc??W1lIHH5Q{PJ)KAZ(oKV2`;Rye)l7SOx#s|Hkmu2+Un?_E#?Ol&W=f=0;7q& za?eP4+Cu?B8%nnPqG4M?lGN(Dln#en;MRv;87B>w@5^u&!ZQ{Ko=_@|gIxW?RejpT zm1U9}LHPDA8%Am>t_F@>M91rjz51kW?#Q0@ls?!x3kFbqTERTdO?A)CiT8?1TE&iT zoZMdc}cD0rsAX@pO?3dX} zV4J{6Ojss-@%kinW9WpypEiq%>wH+)NrZ3GfcqhA*Q zC$&02=bxIb3f$8YQv*juY1!bRzt_HHDA23aidJAolwujFj16tLNLAebknK!{R&5tc zhu=2qdB8-?>!Y}xf51={H=U%U8hy-PN1SzgfumMCO}4@JO%?$hjzq=n!iVD*e;e4X zi?13r1I=$DD4_Wb92^P;4hpmz`M&7~n%__%K+_wUsIrk0BsyC_d~G*5yO@eGFfecW z4-^WC^A?790*6V^MSfk+KVJev3xhi@hQa|FtB-YJhfQ_3`YLp`eyCYX&OLE`=a}-S zs28Rjk8(=}EdhZ1u)&m-49jXeaQ-E~$2RuUPLfufUnGBoVNF|TG)}ON_aYxzN29g| zn2bEA%WvhQl&O>?@*OoTtKd^R8^K>d(AkYX=)>sNK-px-y6<7`_6Hw@s76?96xtSl zhIY(5amF&)*5UCkLKK>6#4OaSVJn>PS2GD zn_EE0_*$ZSUf=1QoI5s=7df)8*DasZXhLyAlTUPpCpd})yP-I5H3R8d5e+eydsoJO zuHsaJ(>G*r7$S8##7sM+x9RAMg;XZ;oq81SbV46`?(WmpcN@ie!6B}%G&bM4+i}*=Cmc7{#P$sekL`~s@nUD94D(qT3=;%R;xt-2 zPF1555v-?69m3-_hRQGZJa(4hV=HPFJpAR!A?5R7Zu1R2XcA4CX z{}nx4QhD@gF6JK0vqEhCM5nN4GgN_2wnB^6tc!iWELGx5pq6UJ{#8mJdJg-w7NX3i zSE9NC5t0T0T@zp#rP8UFA{3VKxrtLl zDGn=^YVilFz)ykQov~=?%9S?ZH;A3X)deF*(CzfsfvGBX=8tpPu|^s~Q*Qv3dc)GD z5^8>}6Mjr{4R>DCL6i!unH|e7e2b}oc|K{Nuven$j~8rGP3X|5>7V+^qdA~=Gpx9V z(XBSL3()B}Up{3)9^p_m%w_E%knBN>M~SO7WE1oRMVI6C+@@lGz*lE^Hb}*EG+gdT zdXllSXK^cbPQ*5L4L(w^9dJI_&Q&O8%74g^y!>CRTpXs&@bQjT&~+xIaS>KUl2HaN3s3?X}I-M5cId3JEpw z6Vvs|!FFK)u9OWL!qj{}@H|}Tc2t%%hSah%8NW15U)1+hep^7v^aCTbSE7C3v7hw; zWVWd(r3XGRPQbMoayE zD4$_iw}jUIh?oBgcmt>!$0(6Wc_j<4E-rMT+$YN_aCw9jeqQu%GQ^x~dsgKsmp5?{ zHywmRSslPR5t*}-wd;jyJ8AwVE}O?;YT>a!-R|86Q-iojWVYTxNMbk z$#2NPq+gcQa&rEZSmdjdNtnVhL7QM8Y7B4<>GN#EUFCWH4E{mAOb?$uR{*WzFpSbm zt*pQ_&0Fd?txh0;s=%MR?T;N%=7v~LG?lHKwA<>q))s%P)_IPSZaEz~c^_==TfL&b z_}Pt)oV#76Zo}F8<^=_UCeEGKaXx(|7w1Hbb>;NH(0=^0H1Dskc?a97y$Y?zl9v`9 zPyKu%d|Og#tAz^vBSU?NxF?UyeaM~Lx_u>Lg7UC8h)GQx(qp}Q4;*~d$)f^1x;k#CS)FD1`6YfHp$X33QcUFVb7 z&Sw!E8D(08o#E{;b<#%t`72`~Cw@f8YHhj2tRLI{I;%`xN~^nH&4SwGXW1b^W;eg% zDSfhcNvj#PtPrX73C&LkumpddV|jt)GWl7qy;v zdQsOJcsVt*-vGA_yo`Lh!>?GWG{uuH$e6noZQs$AOMn z3ssf*J3{P>NQ`HZV|boU-{~VU!bx@-JX?4gX^1*qAwo+NX*6UiR5_ z6JGkV)>XVGk63aq<9uzf-!gRePWn&BzBxSJcX|WsgWJ+5cjVD6!7Xl_=?nTTBHDv5 z)L+4CQ=KgJQ7?($h0`Ca^bmBTX(A6rF81Sk4I}xK|+ZxIjdvAX|); zQsv!=r8!dmNZ$wm7===M8hlWEntw2E`lF9oaoPXViN2VxR%cSBJG;mbPspZF8me&H zk1RtR*D28jc3hXWuM}x!CD*0pV1MxeiDt55yC&@j&QIoN?a~VhSjjf9Mh8h(nJRA` zU|cU)F1Ia#AHg=|xKMC8Z0s+I%LLuMR+5eNWMtWIu<8)ODN--N&F(%-=yy3=Ty4w! zVW!_ivj%z8aOFE0CkO3y#2TB*St`(Q6!*cO_VrN8U$uqCRVyHo!#`P&+Ahlb(~#?S zW@hAg6)v5;D|b`4kkTyAi-x1WW6+h#=5uf*5&0!rZNG5DhjJg}z_M=QS@gh6i9b@= zXL~yZJPciAiw(TB@vuFa>vFbM!JCY#&neN;++gu?%-&gU30y@%AWSO5twYczNt3@i`jNndqy6<;wgBw4#P3v< zl5Hyp#I1H22Z+LD*Lfc~&Y`-mGG2C-r35;zPA{n=%e-hq)kt$5cVk1;TOs)M)kD!f ztxu+ht7Btj-N?2Q01m(tvtTh6S9oqp-cDQlBzEMsq0(`En&)o!SC$CZQk&~B-dr)G z`*rwnsgT9I5xQ+>VYXyW$KExx6VCt)4VnA?Pi;Q*drD!Bl^%UXl2dCZ1#Z5*XFFLN zIMY}yc0-?F;_X&;wlWgLfZqf(yXj^=i$&gETuh->UcRzaD{%*C2~S`4V_YFqy17VM{UC|?{e1WWK3dHlNjs5t22x?<#xYvGc?<+IkVpMw^ z{KU0B`1A $5%i$)zJHm=C#d#*>evbSo1BYNQ4~g)r1a!z7_R9bv1f>UxKGwD2yi zKcAzER&`zxuTe^#NG=^>V;fpW6B?-eLCDKnxvw>Vt{5xTw|0~fF5-MRS$cNpfz^H3fh!z)Kor0ZsAlVEZ_MiALz6|L){1eyEImcnW1C^$!3QzQdsb%=!|ULk@0@aNqb6o6IF%NU$mIgluph{l5_eyPTeO+UN0|2={Yh3UifZR zZDmB6UOMF0!HKg+Y-;{P@SX!^cjA?P_v*uviWn!|+lUnKbuY<8KOJJ+4B8JHJL+B9 zg?Zn0`h7+)r)qteik?)BOD0O#xWO}97gFcQMM+NWRDxl^PCz~PskMHrLTj2j9yecq zX%>j^^PJGXOv<&eS+G{n|D%8^{2d+H+&4zuZNCM7d#cToKIcrvaT0kblS6%dvis9l zwmqt!O9VxbJaEX0$4VcAET})rS;{7)>rbi#qyw9EK}I?rYw|C1YRpLe_9WQj+hhRe z(??35LOk;Zuy*PF$jMRfTpZV3eqoDmRl}%OkX6vJ0t>sU|QnHwm=o}Nxi$E`;oll$zE|t3C3)wCo;CG<;Ddj!( z-vFd)RF#WizXlG-lV8Ah@iMMVzT^5f)6K)*_mCm_Qz)VF!#|;M{rYezLO*NAaGqP5 z=EWuO(kH^4@l_9PP;sL0Xg5YnLDRl{n=Gc~x{x@%V;^%bDO$=QwDBSBwo_iH&Ys4?f zM`Emck?M##7h<4LB(j7qwEAL|etR{7r6et+Qn@obrBxNg>oKA5J}T17Mo#7+gP^iO zH-xc_&SiI@SbqLkb)g7q1quGp^Tt`kjv#CaA~$tw0d-j_G^+*x?%4GdxkPCcyV+_G zLZk!9ev6s_BGhR)72a6gybQE^!eqrWuI-GV*|>sW3FFAyW~SF|Kc|WegVJ4(gYfG< z?6IMd;@RI)N;PUZC3r%}pYJXw={8SO62=lLzSPN2(z>M7JYzbML%GY-y7T!BK=}e+ z=O`;zkqX`APy8IepaBm6ozdma0`DHsEcL5Af;02hOGL` zi@G+SZiN?5tz`+R!|MO$k><1~*+ ztah%&nYy1>z3QmoFG)KQn7Lk?-68FjIKb}m=Nov6llW6W} zCl*}W71wrY>9WOH2_YbY0%rTf+T@ekWhDVpWp;2cY4)O#2yk1BonkAx4>2YS1a3Yo zBI=^M94{McL}JBWxeXZz1AJX#OvU=MxoB23YcL)FVyBcZ3z`GOi&=+&2eQmzOE#)I z;}5b{ww>C#B;aSjKM|T^b+5%b22y_Y9d?gjEjl-b4>AW4a;fV4kt>@cwM z+Zl`%ma+3!nmuKj2tohdtw#Ya1>T)4QF%QWpwMQitwr3;DiV=XH?DNy+j5=?RgCirM=X7zvbDVPrL3-EkahZMybK ztn1Pdy+&E)k717aUwj`#mVKGls`ME@Qm?GmB>~QYDcYSwzGQS4|C8t zRobNC1fr9-vQ&3t(Sibi20R&AiL@O%YE~AY_440OEB=0;f`Xy=Vedvo{e;=)yJRbA z*O)ORiu*YGU?}V9IQ!yU4t7p?DBU51#+2PoiF6W`dWjp!Qb-^6KrH~d494X=Fl8=#rN?6{jM#vda| zo0-!sbRzz%R=I8GE&2E2HbXMv`Fzs;GQGMYYq)D>9YuI1fYu$tc4yjX6H| zz{q?qss$zx0uv_koqvUd;sfLvl+PKt`+pC5;5?zWQCBt*ro@LsT=qh+eidR%3*t@P zMIJkYHiy3W;MZer@(@QDb(x8#Lq=aKw^ASdh<;xX_RH0@gGUOn6(*E;b_N>lz~8%R zukuPkn49eGN`{zXu?v#^8dp$tEn(ZAg|zwX*V-2zKhwx%t5U|A^(ELEd{3GTre;*Yxt;V-vD(428xgJE~ZiLWKF0`Pag{swX^~+*D3cQcf?bC;G~)A-`*dryKltMoA94esc&Oz^`D1~uv+EQP z1g~WJ!Mx&kF)%Z};$MJuXS@jcG%+OXMNQ-5U6QefR(j4>(C3*6K4+ezyA)BrUExCl zR<>KYNx~m<+C$vO!n1T;_tBZoGTs1bSNw5E)FuJGhs#6AM>@l|uav8}K%=ML>!7N1 zyamus7K44HNy5ONK^!g88b;hG-HKdCNScSV?IgL;QSR?3z90S3sw+$%^{_kVPwm=P z=i{C1MxBrdP+42xH4w*ilw;R|zk9l%G+8(gTyBU`0=iA#0KlCyG@MI+R2Y{UFN03* z8gr5hTxi=X+^YHrXU6_mNI{{*0vRi?H4z{AoIr{`4C_d7BBFqjn%gapRF<*%(8PzJO`cs>OJ)GgaU)Hr+1qOZ`s*v|rw$U*W-g z_Zqq$vcN9Dp`ErLir0kR07rJ=!(n8jQI4&R;zkVJsCS7$4{7SpWw$B6a{FATv+fng z+rQjW2nQ$a2^zWVoAutNwxX(R!*KlelZEl`U{!ggstFdrjTLSv*4eGkQFrUT!hbz& zsTC%ELjOXPC6_6kz`G(WFY`f<#-TCNQQOfsul{k7^~TVsYAa~Lu&>GA{|-3r$K?7n zCZJu-enA~{0sTi8A(z*Pk3x%OZG&J>#C4Djnrd)G)S-0`=^=%E#$PZPA>tJMo|L}_ zUrchAHtsk&;oi0&lozjHPkMD8L$vRg2}+0mhx}_g6OY zc_g)ey8n9H_hT(6fKeA|0@?2*G3%}cClEQm*QL$kD0fSbZ`*INnV7HevnOj2#E8=) z3+^uou*l`Or?2gM@Q~BOLrTaAeh}etxs!{N3Vp=ZCBsJOqLmI`7)FsjcZ`VITC+pS z&75=C7S>z3(f70cuI%~p2Dm)PP--`JnEvTEl`ZwB1=p=kvxohjy8AY&dTEudhaif% zNj1gi+`O&ZOKSB|7`wa2>Atzu8{W)_2Pwm-|*VergwwC0qiBOPJWfhu6&kqRS~)(Iu_Or@T`a9j32(M z|G-dpIf~%3d@)3k%X;;Lp!dEgXz5syeRqr8?CXs{5Cd`iR7aeD(%^$}&Vt$HG;y4S z!_lYFW-)P2aS+%iGnR%@LXX+X}^htEuEjWxo<*+x2Rw{6R%MAgXbpAD1;5A zrkS*P6Yk?T%@*|P-T;OtFq`>9zV*yEb}_`Pg{M2rsk2&7yAZYIj+v(#(I=Wrt;2g` z9=~0vFG`wLUGBdc{tVb0s`0kd9DjkY;QO6RJ)m@IUP*^Y;c-zTg*F?XcLmLy-gG>F z6{t4rONq`C8)=wp?x3DC8TqK8jiTg66O%hR%NAt#+etsr6}K~&g~07elPvdRT%VS{ zZiWO*+|hkZ!16NkS1@Fg-V3|fm)}N9da=YCS90T2ki6NX;=lJpJ%9uN3RoAvP-LRGb4pxef1%*MH2k5`|ctaJ1jYPkCobH~jG zZxrtB`TKwt@q2M+ik1Xqy;yPjCsKbL!yyCM3N-Pe?jV9!(wV#Z<3wmt>7PHXEIx6M zqNj+V*(Xjj-X2k+{rP_aYY~+0puNOWJ%Pex6iVHBaq}K_;7?S{HjCA{^dwz`0^!)y zJ7BQ_{{RiNcPq|iwls)vn!`0exDQM7CgksEjN)d$QVt?KwVShiqpWT2e}d#$YjP}8 zR0lMf(Ecq>Ka2mw045Lt0RRF50s;a90RaI4000015da}EK~Z6GfsvuH!O`&H5b^)o z00;pA00BP`c1XdgJM?q6##5=q+eyH2@8>7BR)jx;`o)|@(tO+cF-Huc~n)>Q*$vs8Fs4x`=S+WjZ%CYU3`q&`8PCya5ABhkR|{{VA~0@0vCybZ*k7?B!b)7gSY z(bD5YHQW|gf^A!NxEBP>8|?xieFJ*nMhh4Rl~dx!(ZL{4$Bz{ddKJA~Rj0GBy~*%6 zxH4i``QL-v$r$>ieV7Y^oBpW}<0fa00jswrkhzr$I}@Iq{{R;n%}>^9qy^*UL-mZ+ z-5=u`=?q7xEkj!SrwBftzHVCYR|yc?Y5(FV*=m>MU0O02^sE-C{A} zEdFRPYpOLmc24!d1|cV&p`^aJk08UuPBC;+^0bCMke&>B z34y=-gtw>-7>mhl@jwxi+rP$61d_`86~ahg$(qy7AH1kbky{=C?_MD=p1v$cqztRU zt9XO*83afq?f|{P2G^51OQL9fU-gZ#Trxic`DLD+*!#W+z`8UaVoYFFbiefXf1#c_>dt&*v|i;TSTe^0Phm@P0FjASjl{V`euN z#Ul97)9k|TMu*UB@SeCr$3S}m_lI$mW)b``26`s(K*0^&BnUguoaTk69V9;0^0+6D zJg0_WQWMiCj0Rq+MU`ZuJL^t!L8`@xKulSn{xA(SZZ|7-wB%_mGx!0eJ3ry>*(2b7l6#VGGo?F4{LX$99ap$bNHVi>0TwMn`hEQhh=D$45=nA2&XxxU6JUii9fhXcrb?;^nDc_ULnLhp|KVD&3P@~}`3kGw*r z3MmZ~zBT6*4X9+hTnsh}>*&lmk;h(DMZSP0LRkGgZ6f*O*0+~~paPPUVGa^LlWY79 z0m_I3(H>to){+G2&jsPC^OfhO)O60DmJBsBXnYC%2M6A3q4V}2pIOVaKn&pyX{ViY zfg&sykAABYIpJss;RFGlTpe7R;CBB2y*u5rP# zY#{}!MCVga4mK3m4={ZIG`#Bu z1w~K+WmP@K!@>})hqNzzQ->3-#gZFSdpT8ivlL^=k-U7BH0zz>izhyq8|Pe|n54Iz z_nbIl2RjHKWy{5m)kE|D0B^k2I>OOA{{UtYrnIMaw#U8-r@1T8PsF@Uy8*P$2zVQT&(FGxBxVOxZih63{JF;O<$!Nsa+(lC{CX&|A(~oJ>lc>0U4zbqpT}Kp%v~a*iT0 zS{i}cY3xW5S|J4#-i~Y*wS-v8TWUuy2~LU2lD{Xg5J~_k&iu@N4$W2G??ZSb4GlbG z)U=Ks4z}&-K62>-iqp?#I@nTa?0&e+BuBhn@Q%Tw?{xd~m2<&Z;7QnmJ#iy7sY?h1 zIF0jD+4^Xkx)IQ)MY;#E8G#CwO{+Muxw?7FxC&sWcvn5UN6tT^0te2ASu&eu#0-=iKjVZAHWNKN_`(@4FD$LAHKuc^0!Zr6B;igtcY%Ccku;Kt=T0pV zFB5oFMejyY6kElt284E#tBavFgs9@*4eta;75)DJtRri%I2zA+O>i^~6$Lc-Yj{=H zAHv68Pw;0n>-tacAW}uq1g{P8=hno7Rpip>RR9PFya0fzG4ISd1spyw%T|e|vvD_P z$VJWD>fs``mc}c@<34W(ioObJ7j47Po^bjZct{x>Rw*@zLuTSg@-0c)7NS65xs9HTug5%6^=rhh+}J`2pTbpP_-# zD7>6i-t%?mB_q90(>^W#0Eh1f6^dX$dKNGyBq1tzdH^Z7QhZC(Kd&EUKaDTZPaw+h+zNN2z zHyF-eykhuV-T({^6!VAcmV{|yhl73#sfKphr$vulb%q%&9wg9W{pdV_v54RMU0%E;l48i5LX$*UOHm z0Pe%bN6x&N$>!`KLav*!?e1Ztlp+D8c@77_XVh`}abvt8UjgsHBDxyn4WjQ4JvQy` zURMGH_5L%J;aolL*Y*DZaV4$6$}2_hTIa?*q0ylS1*p*FBI1Zn+2Ay~JId2y%0(fu z)4iL7>ng~UDkg*MhcgE(q7YpG?DgvnvVG@;!U=1GKH0%P7=ZVR-M?!FLs?WB7f#S; zV##pa8H89Ow}BJ4PHa#lv~oj`2g>B|62UnA{P&jgn23_+fc!Jys&2OhQ|y>#z4k7hO!9bh*pt^5A~8M}h8u3itkdMNA2-_9Qd z&IJDew+@$*SPfQ?)&m#o7m>^lH}{V8IdO%8Q}`*l7JX_3L7b;o*n`h(QXvh9ZKEiw zR;ln{1rnNuqpb@&xEgON)P=2wH?MhhkOG0r8T`JoAxeT5hllShqogI1=9rM!kQJw# zMo}z_(qW2t*-Z0si?soX){(iOJf`-F3t5ZiHQEWJQ>JO6m5PZVEgF_`8koev2Y`j! zmO1(6>AV#-jE*!Qw<*T*?kk^yiSJtXGjZ)mgFxs9)$c9jU-`*v;qoxL!%)K7f$|6K zG15>BG9hR>dfxFCNJyE3Y{w2p6QvXcT-p)o`3efPh^SZTRn; z5BV4(foj9P$js#gq(^SvS6_n{Pq)j^yp;*o+Qd+XfY?ObC{B#rhzpwIjqi@!CO0=; zAMSoIc}4#KFYg^kBbKzi51zTlIv|f(BZk+quK7*>0OxsO*}d@q&OyTO>N^93`TOwo zg*XF}4npmWH^w*|H()IhWreRiGT`eWgpd?5;iGoyG@DGCpoo=rz`K3i=TOcSnD+kI zY2^x<6};%@jeIj&LZFxzvg=(}8gU1y(YKyk<02Z2(KkoFXRIq+Op>FwL0(n2tPKQi z9506{qg=^x6WxqU3cjoHl4v&NIEIq)Y%rPN5&!@^LdDjXj7zJ5sCWXS80ph^Y0x}S z{V|C1(mqT5;MZzV0-AJ-LpXq|q}7KG1JGi0{Qz^Wv*E;k@y#{(r~a^7u@Y7%gb6!6 z;ywaRxV#m$4e>l<+vVxZLxHzP09NoI9RLj-0uecGwTfyDA#0m7Xd%_hBwF2!k*zG2 z2IgEQx+yn(O{i|pFj%m68zLO9TDPnc`Rxen$%ARzuJDmnU}^U{A93GV3d-J5;S_Cs zRzq0;1hg+AU7^49=8p|w8?)U3^G@b$J993D6qP=!;7kq5(`1S8KdfA3MgpN#cNSDn zL5__=kQ5KI;IBC;tqJ$Vgxmws;gu;#)M8PXaHXIHyTjukIWTI@f_aJlvv93g<`8Iu zsSWQITpb`G=wA8OTl8O24esCxebH9h9Zx1t;z1U?@86zshMu&kVmf~x?lgxnx4!4g zjy+=_@|%+AH2Msr{{R~TIyb@iFpEl5R8HMr9&(Ddq@VfkI6%-K@Pqil8DnP8wEW}2 zPAK1IWGP*>zc7p&w50SG`0$TxAf7-UF`Gkm1vRt7uCirxDxl7f7`)&K+Rxx%In)dd z>7kHQkMicMIU4-G);Z=T2!@=)KMy&mLC%Bn=8AnGuc2I3(&~lzBM0_|WDIEQhQR0u z(9_H>=N&+t5P#v;4A&na_PO_nKnJk>F(6tmFVADF2hvs;fl#s>^^YwgW^nH#W8w;e~LDW{McpKez_mhH_ z3#6ZzMB64 z2lI*zzl@vq>HBl_e!qdvZhS-e7$dpgSMYx<6Sdv{0HN`Ox|d3A6sC^5+|3G7Cr4+!KJh73*_;+zLNsvc`^2Ce zfQG0;SP{)E1X@$r-g&&@2&o;L8`F{RC7x7+KCjj_dvGBw*x9EAz^UkS!UN7ae6y$O zFvt?>a0d7z`^LDIjiK)ukU#_D7pA|wEG&5wH$muQVo!5((LObeR0S1rUNaIDGW)pa zmC}CtVPsdfZ;G$i4YiFzt3p5pdv%HeY5|>fvH6xlR%&gXNPcjTXQ@|e2qxy-&>TqV zzbpH|16#W>+N#?Aj@*w9kl)MvOCO1wL$lRrtijT6*ED~VYp?g8aLqVI51r?N9aY# z!bfu7qedf!=x>--8eJ>EIPdy_FSrdlR6N12y3(ojv-vVEY}S|FIma_V$@N*+_UU@S zAjAa>JXw=q5!NJow(ncl#&Pm3m!~-|#|Q{O*Z%;@o6Fnz#UfT?DGPjO=MFG7177jX z$WRZ~aBoes<(VduUP;Bn@t+*E6PzSuizX=5B~22JnBZaD34J3z1+e=!mk%i1duhbF Kw8o*@-2d6*_A2TC literal 0 HcmV?d00001 diff --git a/docs/img/selectUi.png b/docs/img/selectUi.png new file mode 100644 index 0000000000000000000000000000000000000000..07d05922d2f95f2d71bf1a27ea237edfe1336daf GIT binary patch literal 12534 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

GAeLF;_%7F5&%J0_anQzOO`USwwBQsC*? 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 literal 0 HcmV?d00001 diff --git a/docs/img/zam-pp-ui.png b/docs/img/zam-pp-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..7d7fe3f71666e7f875e03c9ad9e783c3bfa4b5fe GIT binary patch literal 55906 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 SS>Y!yNJ+?v7d+Sf{9gdN2^=c` literal 0 HcmV?d00001 From d3b97ba724e0731a76099d91dded81a74bac5340 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sun, 20 Jul 2025 20:46:14 -0400 Subject: [PATCH 14/18] Vu Meter Display Optimization --- .vscode/settings.json | 3 +- todo.txt | 12 +- vite/src/pipedal/MainPage.tsx | 7 +- vite/src/pipedal/ModGuiHost.tsx | 1 - vite/src/pipedal/VuMeter.tsx | 213 ++++++++++++++++++-------------- 5 files changed, 127 insertions(+), 109 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a0747af..d58ac81 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -115,6 +115,7 @@ "Chowdhury", "Chowdhury's", "discursus", + "distro", "distros", "dpkg", "flac", @@ -162,7 +163,7 @@ "cSpell.ignoreWords": [ "nammodel" ], - "cSpell.enabled": true, + "cSpell.enabled": false, // Disable all automatic completion suggestions - only show when Ctrl+Space is pressed "editor.quickSuggestions": { diff --git a/todo.txt b/todo.txt index 95ebe0b..e4a646c 100644 --- a/todo.txt +++ b/todo.txt @@ -1,19 +1,12 @@ Crash-proofing: do not reload pedalboard if the previous run crashed before normal shutdown. -Persist and reconnect IP addresses in client. -Zeroconv crash assert. /var/pipedal/audio_uploads/ReverbImpulseFiles/ - -Investigate if ((keyCode == KeyEvent.KEYCODE_BACK)) - MOD ir uses some scheme to limit the minimum buffer size, which is not implemented in Pipedal. - +wa Vu Meters, move rendering to background images, in order to reduce layout overhead. check reload after change of LV2 plugins. -Remove FullScreenIME in PluginControlView.tsx - Exactly one underrun per seek in Toob Player @@ -21,6 +14,7 @@ check filetime conversion in gcc 12.2! (missing c++ 20 time conversion functions AudioFiles.cpp fileTimeToInt64 +json "skip" code doesn't work with complex objects (MidiChannelBinding specifically). - pipewire aux in? @@ -40,5 +34,3 @@ pcm.pipedal_aux_in { } - -[{\"message\":\"updateCurrentPedalboard\"},{\"clientId\":6,\"pedalboard\":{\"name\":\"Test\",\"input_volume_db\":0,\"output_volume_db\":0,\"items\":[{\"instanceId\":51,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":50,\"title\":\"\",\"isEnabled\":true,\"uri\":\"http://calf.sourceforge.net/plugins/Gate\",\"pluginName\":\"Calf Gate\",\"controlValues\":[{\"key\":\"bypass\",\"value\":0},{\"key\":\"level_in\",\"value\":1},{\"key\":\"meter_in\",\"value\":0},{\"key\":\"meter_out\",\"value\":0},{\"key\":\"clip_in\",\"value\":0},{\"key\":\"clip_out\",\"value\":0},{\"key\":\"range\",\"value\":0.0612500012},{\"key\":\"threshold\",\"value\":0.125},{\"key\":\"ratio\",\"value\":2},{\"key\":\"attack\",\"value\":20},{\"key\":\"release\",\"value\":250},{\"key\":\"makeup\",\"value\":1},{\"key\":\"knee\",\"value\":2.82842994},{\"key\":\"detection\",\"value\":0},{\"key\":\"stereo_link\",\"value\":0},{\"key\":\"gating\",\"value\":0.03125}],\"midiBindings\":[],\"midiChannelBinding\":{\"deviceSelection\":0,\"midiDevices\":[],\"channel\":-1,\"acceptProgramChanges\":true,\"acceptCommonMessages\":true},\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":46,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":48,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":47,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":1,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{\"http://two-play.com/plugins/toob-ml#modelFile\":\"{\\\"otype_\\\": \\\"Path\\\",\\\"value\\\": \\\"/usr/lib/lv2/ToobAmp.lv2/models/tones/MesaBoogieMk2b_Crunch.json\\\"}\"}},{\"instanceId\":31,\"title\":\"\",\"isEnabled\":true,\"uri\":\"http://two-play.com/plugins/toob-freeverb\",\"pluginName\":\"TooB Freeverb\",\"controlValues\":[{\"key\":\"dryWet\",\"value\":0.653543293},{\"key\":\"roomSize\",\"value\":0.625},{\"key\":\"damping\",\"value\":0.574999988}],\"midiBindings\":[{\"symbol\":\"dryWet\",\"bindingType\":2,\"note\":72,\"control\":23,\"minControlValue\":0,\"maxControlValue\":127,\"minValue\":0,\"maxValue\":1,\"rotaryScale\":1,\"linearControlType\":0,\"switchControlType\":0}],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}}],\"nextInstanceId\":51,\"snapshots\":[],\"selectedSnapshot\":-1}}] \ No newline at end of file diff --git a/vite/src/pipedal/MainPage.tsx b/vite/src/pipedal/MainPage.tsx index a1ea987..e7ba524 100644 --- a/vite/src/pipedal/MainPage.tsx +++ b/vite/src/pipedal/MainPage.tsx @@ -255,8 +255,11 @@ export const MainPage = // selectedItem = value.getFirstSelectableItem(); // } let selectedItem = value.selectedPlugin; - if (selectedItem === -1 || !value.hasItem(selectedItem)) { - selectedItem = value.getFirstSelectableItem(); + if (selectedItem !== -2 && selectedItem !== -3) // start and end nodes. + { + if (selectedItem === -1 || !value.hasItem(selectedItem)) { + selectedItem = value.getFirstSelectableItem(); + } } this.setState({ pedalboard: value, diff --git a/vite/src/pipedal/ModGuiHost.tsx b/vite/src/pipedal/ModGuiHost.tsx index 11bbcff..cd58a2a 100644 --- a/vite/src/pipedal/ModGuiHost.tsx +++ b/vite/src/pipedal/ModGuiHost.tsx @@ -399,7 +399,6 @@ class CustomSelectPathControl implements ModGuiControl { } let valueElement = this.getValueElement(); if (valueElement) { - /// xxx: update the display value. if (this.pathValue === null || this.pathValue === "") { valueElement.textContent = "No file selected"; return; diff --git a/vite/src/pipedal/VuMeter.tsx b/vite/src/pipedal/VuMeter.tsx index c77fbe0..ebcd333 100644 --- a/vite/src/pipedal/VuMeter.tsx +++ b/vite/src/pipedal/VuMeter.tsx @@ -95,7 +95,9 @@ class TelltaleState { } const LEFT_X = BORDER_THICKNESS; -const RIGHT_X = BORDER_THICKNESS + + CHANNEL_WIDTH + BORDER_THICKNESS; +const RIGHT_X = BORDER_THICKNESS + CHANNEL_WIDTH + BORDER_THICKNESS; +const TOP_Y = BORDER_THICKNESS; +const VU_BAR_HEIGHT = DISPLAY_HEIGHT-2*BORDER_THICKNESS; const styles = (theme: Theme) => ({ frame: css({ @@ -119,15 +121,16 @@ const styles = (theme: Theme) => ({ overflow: "hidden", }), monoTextFrame: css({ - display: "flex",flexFlow: "column nowrap", alignItems: "center", textAlign: "center" + display: "flex",flexFlow: "column nowrap", alignItems: "center", textAlign: "center", overflow: "clip", }), stereoTextFrame: css({ - display: "flex",flexFlow: "column nowrap", alignItems: "center", textAlign: "center" + display: "flex",flexFlow: "column nowrap", alignItems: "center", textAlign: "center",overflow: "clip", }), vuTextFrame: css({ color: theme.palette.text.secondary, - display: "table-cell", + display: "div", position: "relative", + overflow: "clip", marginTop: 4, textAlign: "center", width: 20, height: 16, @@ -135,73 +138,60 @@ const styles = (theme: Theme) => ({ justifyContent: "center", alignItems: "center" }), - redFrameL: css({ + frameL: css({ position: "absolute", - top: "100%", + top: TOP_Y , left: LEFT_X, width: CHANNEL_WIDTH, - height: DISPLAY_HEIGHT - 2, - background: "#F00" + height: VU_BAR_HEIGHT, + overflow: "clip" }), - yellowFrameL: css({ - top: "100%", - left: LEFT_X, + frameR: css({ + position: "absolute", + overflow: "clip", + top: TOP_Y, + left: RIGHT_X, width: CHANNEL_WIDTH, - position: "absolute", - height: DISPLAY_HEIGHT - 2, - background: "#CC0" + height: VU_BAR_HEIGHT, }), - greenFrameL: css({ - top: "100%", - left: LEFT_X, + yellowBar: css({ + top: 0, + left: 0, width: CHANNEL_WIDTH, + height: VU_BAR_HEIGHT, position: "absolute", - height: DISPLAY_HEIGHT - 2, - background: "#0C2" + background: "#CC0", + transform: "translateY(" + VU_BAR_HEIGHT + "px)" }), - indicatorL: css({ + greenBar: css({ + top: 0, + left: 0, + width: CHANNEL_WIDTH, + height: VU_BAR_HEIGHT, position: "absolute", - left: LEFT_X, + background: "#0C2", + transform: "translateY(" + VU_BAR_HEIGHT + "px)" + }), + redBar: css({ + top: 0, + left: 0, + width: CHANNEL_WIDTH, + height: VU_BAR_HEIGHT, + position: "absolute", + background: "#F00", + transform: "translateY(" + VU_BAR_HEIGHT + "px)" + }), + indicatorBar: css({ + position: "absolute", + left: 0, width: CHANNEL_WIDTH, height: TELLTALE_HEIGHT + "px", - top: "100%", - background: "#F00" + top: 0, + background: "#F00", + transform: "translateY(" + VU_BAR_HEIGHT + "px)" + }), - redFrameR: css({ - position: "absolute", - top: "100%", - left: RIGHT_X, - width: CHANNEL_WIDTH, - height: DISPLAY_HEIGHT - 2, - background: "#F00" - }), - yellowFrameR: css({ - top: "100%", - left: RIGHT_X, - width: CHANNEL_WIDTH, - position: "absolute", - height: DISPLAY_HEIGHT - 2, - background: "#CC0" - }), - greenFrameR: css({ - top: "100%", - left: RIGHT_X, - width: CHANNEL_WIDTH, - position: "absolute", - height: DISPLAY_HEIGHT - 2, - background: "#0C2" - }), - indicatorR: css({ - position: "absolute", - left: RIGHT_X, - width: CHANNEL_WIDTH, - height: TELLTALE_HEIGHT + "px", - top: "100%", - background: "#F00" - - }) - }); @@ -261,10 +251,12 @@ export const VuMeter = telltaleStateR: TelltaleState = new TelltaleState(); vuInfo?: VuUpdateInfo; - requesttedStereoState: boolean = false; + requestedStereoState: boolean = false; + private currentDisplayValue: string | null = null; updateText(telltaleDb: number) { + if (this.textRef.current) { let displayValue: string; if (telltaleDb <= MIN_DB) @@ -288,16 +280,39 @@ export const VuMeter = } } } - this.textRef.current.innerText = displayValue; + + if (this.currentDisplayValue !== displayValue) + { + this.currentDisplayValue = displayValue; + this.textRef.current.innerText = displayValue; + } } } + private currentVuInfo: VuUpdateInfo | null = null; + + private animationFrameHandle: number | null = null; onVuChanged(vuInfo: VuUpdateInfo): void { + this.currentVuInfo = vuInfo; + if (this.animationFrameHandle == null) + { + this.animationFrameHandle = window.requestAnimationFrame(() => { + this.animationFrameHandle = null; + this.animateVuUpdate(); + }); + } + } + private animateVuUpdate() : void + { let value: number; let valueR: number; - - this.vuInfo = vuInfo; - + let vuInfo = this.currentVuInfo; + if (!vuInfo) { + return; // no vu info. + } + if (!this.divRef.current) { // unmounted? + return; + } let isStereo: boolean; @@ -312,34 +327,37 @@ export const VuMeter = } if (this.state.isStereo !== isStereo) { - if (isStereo !== this.requesttedStereoState) // guard against overrunning the layout engine. + if (isStereo !== this.requestedStereoState) // guard against overrunning the layout engine. { - this.requesttedStereoState = isStereo; + this.requestedStereoState = isStereo; this.setState({ isStereo: isStereo }); - return; // we can't procede without stereo layout. + return; // we can't proceed without stereo layout. } } let childNodes = this.divRef.current!.childNodes; + let leftFrameChildNodes = childNodes[0].childNodes; + let vuData: VuChannelData = { value: value, - redDiv: childNodes[0] as HTMLDivElement, - yellowDiv: childNodes[1] as HTMLDivElement, - greenDiv: childNodes[2] as HTMLDivElement, - telltaleDiv: childNodes[3] as HTMLDivElement + redDiv: leftFrameChildNodes[0] as HTMLDivElement, + yellowDiv: leftFrameChildNodes[1] as HTMLDivElement, + greenDiv: leftFrameChildNodes[2] as HTMLDivElement, + telltaleDiv: leftFrameChildNodes[3] as HTMLDivElement }; this.updateChannel(vuData,this.telltaleStateL); if (this.state.isStereo) { + let rightFrameChildren = childNodes[1].childNodes; vuData = { value: valueR, - redDiv: childNodes[4] as HTMLDivElement, - yellowDiv: childNodes[5] as HTMLDivElement, - greenDiv: childNodes[6] as HTMLDivElement, - telltaleDiv: childNodes[7] as HTMLDivElement + redDiv: rightFrameChildren[0] as HTMLDivElement, + yellowDiv: rightFrameChildren[1] as HTMLDivElement, + greenDiv: rightFrameChildren[2] as HTMLDivElement, + telltaleDiv: rightFrameChildren[3] as HTMLDivElement }; this.updateChannel(vuData, this.telltaleStateR); } @@ -367,17 +385,17 @@ export const VuMeter = let INVISIBLE_Y = INTERIOR_DISPLAY_HEIGHT + "px"; if (y >= this.yYellow) { // green only. - vuData.greenDiv.style.top = y + "px"; - vuData.yellowDiv.style.top = INVISIBLE_Y; - vuData.redDiv.style.top = INVISIBLE_Y; + vuData.greenDiv.style.transform = `translateY(${y}px)`; + vuData.yellowDiv.style.transform = `translateY(${INVISIBLE_Y})`; + vuData.redDiv.style.transform = `translateY(${INVISIBLE_Y})`; } else { - vuData.greenDiv.style.top = this.yYellow + "px"; + vuData.greenDiv.style.transform = `translateY(${this.yYellow}px)`; if (y >= this.yZero) { - vuData.yellowDiv.style.top = y + "px"; - vuData.redDiv.style.top = INVISIBLE_Y; + vuData.yellowDiv.style.transform = `translateY(${y}px)`; + vuData.redDiv.style.transform = `translateY(${INVISIBLE_Y})`; } else { - vuData.yellowDiv.style.top = this.yZero + "px"; - vuData.redDiv.style.top = y + "px"; + vuData.yellowDiv.style.transform = `translateY(${this.yZero}px)`; + vuData.redDiv.style.transform = `translateY(${y}px)`; } } let dbTelltale = telltaleState.getTelltaleHoldValue(db); @@ -399,7 +417,7 @@ export const VuMeter = yTelltale = INTERIOR_DISPLAY_HEIGHT; } } - vuData.telltaleDiv.style.top = yTelltale + "px"; + vuData.telltaleDiv.style.transform = `translateY(${yTelltale}px)`; } @@ -467,23 +485,28 @@ export const VuMeter = if (!this.state.isStereo) { return (

-
-
-
-
+
+
+
+
+
+
); } else { return (
-
-
-
-
- -
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
); From d768883a9b6231421c7f2ca6cbaa53d667a850df Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Mon, 21 Jul 2025 01:10:52 -0400 Subject: [PATCH 15/18] v1,4,68 versioning and relese notes. --- CMakeLists.txt | 4 ++-- README.md | 4 ++-- docs/Installing.md | 10 +++++----- docs/ReleaseNotes.md | 33 +++++++++++++++++++++++++++++++++ docs/download.md | 8 ++++---- 5 files changed, 46 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6aba14d..9864b62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,13 @@ cmake_minimum_required(VERSION 3.16.0) project(pipedal - VERSION 1.4.78 + VERSION 1.4.79 DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi" HOMEPAGE_URL "https://rerdavies.github.io/pipedal" ) EXECUTE_PROCESS( COMMAND dpkg --print-architecture COMMAND tr -d '\n' OUTPUT_VARIABLE DEBIAN_ARCHITECTURE ) -set (DISPLAY_VERSION "PiPedal v1.4.78-Experimental") +set (DISPLAY_VERSION "PiPedal v1.4.79-Beta") set (PACKAGE_ARCHITECTURE ${DEBIAN_ARCHITECTURE}) set (CMAKE_INSTALL_PREFIX "/usr/") diff --git a/README.md b/README.md index 63b793b..4645e27 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,11 @@ -Download: v1.4.78 +Download: v1.4.79 Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal). Documentation: [https://rerdavies.github.io/pipedal/Documentation.html](https://rerdavies.github.io/pipedal/Documentation.html). -#### NEW version 1.4.78 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. New Phaser and Graphic Equalizer plugins. +#### NEW version 1.4.79 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. New Phaser and Graphic Equalizer plugins.   diff --git a/docs/Installing.md b/docs/Installing.md index 4e9660a..f8935b8 100644 --- a/docs/Installing.md +++ b/docs/Installing.md @@ -13,18 +13,18 @@ page_icon: img/Install4.jpg Download the most recent Debian (.deb) package for your platform: -- [Raspberry Pi OS bookworm (aarch64) v1.4.78](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) -- [Ubuntu 24.x (aarch64) v1.4.78](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) -- [Ubuntu 24.x (amd64) v1.4.78](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_amd64.deb) +- [Raspberry Pi OS bookworm (aarch64) v1.4.79](https://github.com/rerdavies/pipedal/releases/download/v1.4.79/pipedal_1.4.79_arm64.deb) +- [Ubuntu 24.x (aarch64) v1.4.79](https://github.com/rerdavies/pipedal/releases/download/v1.4.79/pipedal_1.4.79_arm64.deb) +- [Ubuntu 24.x (amd64) v1.4.79](https://github.com/rerdavies/pipedal/releases/download/v1.4.79/pipedal_1.4.79_amd64.deb) -Version 1.4.78 has been tested on Raspberry Pi OS bookworm, Ubuntu 24.04 (amd64), and Ubuntu 24.10 (aarch64). Download the appropriate package for your platform, and install using the following procedure: +Version 1.4.79 has been tested on Raspberry Pi OS bookworm, Ubuntu 24.04 (amd64), and Ubuntu 24.10 (aarch64). Download the appropriate package for your platform, and install using the following procedure: ``` sudo apt update sudo apt upgrade cd ~/Downloads - sudo apt-get install ./pipedal_1.4.78_arm64.deb + sudo apt-get install ./pipedal_1.4.79_arm64.deb ``` You MUST use `apt-get`. `apt` will not install downloaded packages; and `dpkg -i` will not install dependencies. diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 221bee3..c1c857a 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,4 +1,37 @@ # Release Notes +## Pipedal 1.4.79 Beta +The Big Feature: + +- Support for custom MOD User Interfaces for plugins that prove a MOD UI. See the [MOD UI documentation page](https://rerdavies.github.io/pipedal/ModUiSupport.html) for details on how to use MOD User Interfaces with PiPedal. This feature is experimental. If you experience problems with plugins that have MOD user interfaces, please report them on the [PiPedal GitHub Issues page](https://github.com/rerdavies/pipedal/issues). + +New in this relase: + +- PiPedal remembers which plugin you were viewing when you reload a preset. +- Keep Screen On setting in the PiPedal Remote Client (requires updated Android client). +- Lock Screen Orientation setting in the PiPedal Remote Client (requires updated Android client). + +If you are using the Android PiPedal remote app, you should make sure it has upgraded to the latest version. The new Remote app has been fully rolled out and is now available in the Google Play Store. It should update automatically, but you can check by opening the App Info for PiPedal Remote. If an "Update" button is displayed, click it to upgrade to the current version right away. If you have received the update already, you should notice differences in the App startup procedure (notably an animated splash screen). + +The PiPedal Remote Android app has been updated to provide the following new features: + +- new Keep Screen On settings. +- new Lock Screen Orientation setting. +- Edit controls are automatically repositioned above the Keyboard IME when it opens. +- The Zoomed Control feature (large controls in landscape mode on phones) has been removed. Improved scrolling provides a better solution to the problem of controls being obscured by the keyboard IME. +- Support for Android 16 Edge-to-Edge display. +- Reduced display flickering while connecting. +- Complete support for Night Mode (the Android UI now follows the PiPedal Theme setting). +- Shiny new graphics on the opening screen in support of Android 16's Edge-to-Edge display feature (but you can see it in other versions of Android as well). + + +Bug Fixes: + +- The "Listen for Message" buttons in the MIDI Bindings dialog now ignore CC0 (Bank Select), and CC32-63 (CC LSB) MIDI message, since CC0 is used to control preset selection. +- Fixed errors loading plugins with MIDI Event ports. +- Changing volume control on low-resolution displays breaks web page. +- MIDI binding for bypass controls have been restored after having been accidentally disabled in v1.4.77. + + ## PiPedal 1.4.77 Beta New TooB Player plugin; improvements to MIDI input handling; and a slew of fit-and finish diff --git a/docs/download.md b/docs/download.md index 3f64b2d..8e8b412 100644 --- a/docs/download.md +++ b/docs/download.md @@ -4,9 +4,9 @@ Download the most recent Debian (.deb) package for your platform: -- [Raspberry Pi OS bookworm (aarch64) v1.4.78 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) -- [Ubuntu 24.x (aarch64) v1.4.78 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_arm64.deb) -- [Ubuntu 24.x (amd64) v1.4.78 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.78/pipedal_1.4.78_amd64.deb) +- [Raspberry Pi OS bookworm (aarch64) v1.4.79 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.79/pipedal_1.4.79_arm64.deb) +- [Ubuntu 24.x (aarch64) v1.4.79 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.79/pipedal_1.4.79_arm64.deb) +- [Ubuntu 24.x (amd64) v1.4.79 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.79/pipedal_1.4.79_amd64.deb) Install the package by running @@ -14,7 +14,7 @@ Install the package by running ``` sudo apt update cd ~/Downloads - sudo apt-get install ./pipedal_1.4.78_arm64.deb + sudo apt-get install ./pipedal_1.4.79_arm64.deb ``` You MUST use `apt-get` to install the package. `apt install` will NOT install the package correctly. The message about missing permissions given by `apt-get` is expected, and can be safely ignored. From f6ac684d978a112f82415b7c809c205dd2087896 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Mon, 21 Jul 2025 02:06:22 -0400 Subject: [PATCH 16/18] toobamp_1.1.64_amd64 --- ....63_amd64.deb => toobamp_1.1.64_amd64.deb} | Bin 10797200 -> 10797766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename lv2/x86_64/{toobamp_1.1.63_amd64.deb => toobamp_1.1.64_amd64.deb} (57%) diff --git a/lv2/x86_64/toobamp_1.1.63_amd64.deb b/lv2/x86_64/toobamp_1.1.64_amd64.deb similarity index 57% rename from lv2/x86_64/toobamp_1.1.63_amd64.deb rename to lv2/x86_64/toobamp_1.1.64_amd64.deb index 54866027efc2d245c7a9c6906a96df2e8ba9c53a..91d5362ae9e13f5cf12e72f6f4ae78478e469a0c 100644 GIT binary patch delta 10675916 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 zή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

s5Fsk}?(!E5*6x+G`#% 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 *sM=&4e+5HEkOi~ds^!COG3RYU``)rKWg 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

Lqo}C6}=jHv|E3s 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