From 801966e8d89d413a149a291d56a6c93de8a0c5f5 Mon Sep 17 00:00:00 2001 From: michalcourson Date: Sun, 1 Mar 2026 10:23:54 -0500 Subject: [PATCH] fix duplicate sockets, fix dll build error --- audio-service/metadata.json | 130 +--- electron-ui/assets/icon.png | Bin 1425 -> 2100 bytes electron-ui/assets/tray_icon2.png | Bin 0 -> 3257 bytes electron-ui/package-lock.json | 574 +++++++++++++++++- electron-ui/package.json | 1 + electron-ui/src/main/main.ts | 4 +- electron-ui/src/renderer/App.tsx | 25 +- .../ClipTrimDotNet/Images/app_icon.psd | Bin 101062 -> 109048 bytes 8 files changed, 588 insertions(+), 146 deletions(-) create mode 100644 electron-ui/assets/tray_icon2.png diff --git a/audio-service/metadata.json b/audio-service/metadata.json index 32a4f2d..a3b73cf 100644 --- a/audio-service/metadata.json +++ b/audio-service/metadata.json @@ -4,32 +4,8 @@ "id": 0, "clips": [ { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_195932.wav", - "name": "Clip 20260226_195932", - "playbackType": "playOverlap", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_165611.wav", - "name": "Clip 20260228_165611", - "playbackType": "playStop", - "volume": 1.0 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_165646.wav", - "name": "Clip 20260228_165646", - "playbackType": "playStop", - "volume": 1.0 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_190355.wav", - "name": "Clip 20260228_190355", - "playbackType": "playStop", - "volume": 1.0 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_190357.wav", - "name": "Clip 20260228_190357", + "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_210924.wav", + "name": "Clip 20260228_210924", "playbackType": "playStop", "volume": 1.0 } @@ -38,109 +14,11 @@ { "name": "Test", "id": 1, - "clips": [ - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_183812.wav", - "name": "Clip 20260226_183812", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_183607.wav", - "name": "Clip 20260226_183607", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_183822.wav", - "name": "Clip 20260226_183822", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_184028.wav", - "name": "Clip 20260226_184028", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_184030.wav", - "name": "Clip 20260226_184030", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_184032.wav", - "name": "Clip 20260226_184032", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_184037.wav", - "name": "Clip 20260226_184037", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_184040.wav", - "name": "Clip 20260226_184040", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_184041.wav", - "name": "Clip 20260226_184041", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260226_184042.wav", - "name": "Clip 20260226_184042", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_092721.wav", - "name": "Clip 20260228_092721", - "playbackType": "playStop", - "volume": 1, - "startTime": 6.438382145377559, - "endTime": 14.277258292166426 - } - ] + "clips": [] }, { "name": "New", "id": 2, - "clips": [ - { - "endTime": 30, - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260220_193822.wav", - "name": "Pee pee\npoo poo", - "playbackType": "playOverlap", - "startTime": 27.64044943820222, - "volume": 0.31 - }, - { - "endTime": 30, - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260220_200442.wav", - "name": "Test", - "playbackType": "playOverlap", - "startTime": 26.14685314685314, - "volume": 0.64 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_085116.wav", - "name": "pp", - "playbackType": "playStop", - "volume": 1 - }, - { - "filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260228_120955.wav", - "name": "nose", - "playbackType": "playStop", - "volume": 1 - } - ] + "clips": [] } ] \ No newline at end of file diff --git a/electron-ui/assets/icon.png b/electron-ui/assets/icon.png index 2ba9a15f7f22bc98299d2649961462517c1f38a0..ab1df6d1d9006ca5ccad087f70e3f03a825e3770 100644 GIT binary patch literal 2100 zcma)8dpHvc8{bUkGPPW)N$w|()QVD!A#=YwCrMaY;LRl2Mij0MEIg?EHSM6jlYttNW|vYM1x; z+-lGE{Z8oWb@M15Kd5d)Q!F<2sa5f@L+Rxv=#w9o?5JdcmnVK(nvHJUzvyoDB9LO% z7By5|*6B6EnW$sl>_J>D;ttGJ|jjKh_d`7 zIf=UDWQxvJ$LnFp_}g8*YQ=bzyn=I1VRpJFa09>R7w|}wfexvbRm)l$!_#33FP*SN znIFyTm-0$!L!J+W0T&|4s}TGO%aW$>ephFmzCFd%8;1mkR4}HLH2Zq#cXg_LjX)3P z$)lYoM~#g2fDbTJG1G`aod!K%9<%|UzSD;!?NzHd^(3QjO!k#6az1W}E}XWhwL zG^BNB$u_>-9=xmY5Y8Mv+IwVm&v16O@18K`<3~#=CLcnyL&csjzy7rDnD{ylycn;+ z-lyHRCQCDX%tI3obu^Eh^2O-DKVZWRFBGeCZuC)7J`GC1mFq8TN#VK0Ki7DHTD&g8 zIl8k&(YdBD=bi$IcBCwQhAwW>C7RcaS|}EF{5#HU9&bbQzxa`SFPfwu8$2vjPB}Jc z1QN#Pvi8eD5?|RODn_~PmilHdg*fsD2kB&aM}sPNA&oZe9SDSuEh+1v#myV zdcfoD+U5z1S2M30mBbZq%kkxmAQcf0bFjldfJflge_P?s%^jTyiaq^op_K)lL|iQY zvSN&dgtk7&tvB^vU+wm2Jj2A7RW^uP=gaDbI3X=VF!qfi;Vn#c+`AE*;Tus8 zp)nb*g5ubMUa(ofYlHtf=(D8g^ZXBp~SAh+$JRFU4C!zLkf|Iiat zr+zPjJWW9FIy0za*$tIIB)h0~S%1c{K4xpwCmwn+7!uMxIgtJ;U~ot;AYUMQeYVDZ zv!GQ#hp%1Jy|yO-$YqTP`y@E8flO0`6P+vqU9Vc-&QRl|2{ObJP%E3xoz@7O{WN>k z&WCXN&ae~EdX{bz)JjsH2}|Zk{5FlqPHyct0U2tArMfDGZwTClRpuj5jF~jnXeXrV zNw2T|w#?>}2&U7V=C4LjH}Tin?960d7b!*!kz*12`_bE5ZIC+0-RLW47H1dNmeyR$ z6L5ISodSy)@I0J}>)#KYMfQxZ&sT?~6TzeI!;Ce2|4M4R7(@wifh1{um8og3SB29mb=N-Rbi1 z@#h!C7RDFlMX)FNK^`Kx&G+|(acn#L_1wK{QBU^X#|K zh#7y%bK`d}zgu-FufpobA!9iQ4z7wBF=_7Wt@n(vM0DvXENqaqapIbzc~qNa1WYx3 z98(vdJldZ^?vQAxPCQk#sd#&Dh08(MbQ0OJW`Dx1IGB-H3~tuhq=(*U{xP=le%0n# zM!@79nag);?Bm=_7$pN;E{a|T2IQ*O#sO4o!d1=b?)18%sH$tW%K$)^ORZ*=NxZ2R}|R1Na=UT4@E=bCR~BiZMD!! znkqdGIal~7^Ytka!2eR1@GU9jd z9VrZ~nts=^(7f$RQj%E;q^8FRlm}HQl-HGN%l`r2Wv*mi3m*@CY9@UH04@%msOGbm Ge)|t;uIIx5 literal 1425 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" }, @@ -5580,6 +5578,564 @@ "node": ">=10" } }, + "node_modules/@tailwindcss/cli": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.2.1.tgz", + "integrity": "sha512-b7MGn51IA80oSG+7fuAgzfQ+7pZBgjzbqwmiv6NO7/+a1sev32cGqnwhscT7h0EcAvMa9r7gjRylqOH8Xhc4DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.5.1", + "@tailwindcss/node": "4.2.1", + "@tailwindcss/oxide": "4.2.1", + "enhanced-resolve": "^5.19.0", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "tailwindcss": "4.2.1" + }, + "bin": { + "tailwindcss": "dist/index.mjs" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/node": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz", + "integrity": "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.31.1", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.1" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.1.tgz", + "integrity": "sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.1", + "@tailwindcss/oxide-darwin-arm64": "4.2.1", + "@tailwindcss/oxide-darwin-x64": "4.2.1", + "@tailwindcss/oxide-freebsd-x64": "4.2.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.1", + "@tailwindcss/oxide-linux-x64-musl": "4.2.1", + "@tailwindcss/oxide-wasm32-wasi": "4.2.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.1" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.1.tgz", + "integrity": "sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.1.tgz", + "integrity": "sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.1.tgz", + "integrity": "sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.1.tgz", + "integrity": "sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.1.tgz", + "integrity": "sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.1.tgz", + "integrity": "sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.1.tgz", + "integrity": "sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.1.tgz", + "integrity": "sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.1.tgz", + "integrity": "sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.1.tgz", + "integrity": "sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.1.tgz", + "integrity": "sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.1.tgz", + "integrity": "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/cli/node_modules/enhanced-resolve": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", + "integrity": "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz", + "integrity": "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.31.1", + "lightningcss-darwin-arm64": "1.31.1", + "lightningcss-darwin-x64": "1.31.1", + "lightningcss-freebsd-x64": "1.31.1", + "lightningcss-linux-arm-gnueabihf": "1.31.1", + "lightningcss-linux-arm64-gnu": "1.31.1", + "lightningcss-linux-arm64-musl": "1.31.1", + "lightningcss-linux-x64-gnu": "1.31.1", + "lightningcss-linux-x64-musl": "1.31.1", + "lightningcss-win32-arm64-msvc": "1.31.1", + "lightningcss-win32-x64-msvc": "1.31.1" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-android-arm64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz", + "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-darwin-arm64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz", + "integrity": "sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-darwin-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz", + "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-freebsd-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz", + "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz", + "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz", + "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz", + "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz", + "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-linux-x64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz", + "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz", + "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", + "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli/node_modules/tailwindcss": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz", + "integrity": "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==", + "dev": true, + "license": "MIT" + }, "node_modules/@tailwindcss/node": { "version": "4.1.18", "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", @@ -18543,6 +19099,16 @@ "node": ">=10" } }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", diff --git a/electron-ui/package.json b/electron-ui/package.json index 87f3f59..813fa6d 100644 --- a/electron-ui/package.json +++ b/electron-ui/package.json @@ -111,6 +111,7 @@ "@electron/rebuild": "^3.7.1", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@svgr/webpack": "^8.1.0", + "@tailwindcss/cli": "^4.2.1", "@teamsupercell/typings-for-css-modules-loader": "^2.5.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", diff --git a/electron-ui/src/main/main.ts b/electron-ui/src/main/main.ts index ae14dde..0c15cbc 100644 --- a/electron-ui/src/main/main.ts +++ b/electron-ui/src/main/main.ts @@ -160,7 +160,9 @@ app.on('window-all-closed', () => { app .whenReady() .then(() => { - pythonManager.start(); + if (app.isPackaged) { + pythonManager.start(); + } createWindow(); app.on('activate', () => { // On macOS it's common to re-create a window in the app when the diff --git a/electron-ui/src/renderer/App.tsx b/electron-ui/src/renderer/App.tsx index 504c5d7..2c33af6 100644 --- a/electron-ui/src/renderer/App.tsx +++ b/electron-ui/src/renderer/App.tsx @@ -28,15 +28,14 @@ function MainPage() { const [newCollectionOpen, setNewCollectionOpen] = useState(false); const [newCollectionName, setNewCollectionName] = useState(''); const navigate = useNavigate(); - const [socket, setSocket] = useState(null); useEffect(() => {}, []); useEffect(() => { + let newSocket: any = null; const initializeSocket = async () => { const baseUrl = await getBaseUrl(); - const newSocket = io(baseUrl); - setSocket(newSocket); + newSocket = io(baseUrl); newSocket.on('connect', () => { console.log('Connected to WebSocket server'); }); @@ -56,18 +55,14 @@ function MainPage() { }); }; initializeSocket(); - // const fetchMetadata = async () => { - // try { - // const response = await apiFetch('meta'); - // const data = await response.json(); - // dispatch({ type: 'metadata/setAllData', payload: data }); - // } catch (error) { - // console.error('Error fetching metadata:', error); - // } - // }; - // fetchMetadata(); - // const intervalId = setInterval(fetchMetadata, 5000); - // return () => clearInterval(intervalId); + return () => { + if (newSocket) { + newSocket.off('connect'); + newSocket.off('full_data'); + newSocket.off('new_clip'); + newSocket.disconnect(); + } + }; }, [dispatch]); useEffect(() => { diff --git a/stream_deck_plugin/ClipTrimDotNet/Images/app_icon.psd b/stream_deck_plugin/ClipTrimDotNet/Images/app_icon.psd index 425f9eb7d2382287c5e90621ca5bae7facb572c7..a647e64197cd8c55068ab1c3fb5905871fb91ce9 100644 GIT binary patch literal 109048 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 literal 101062 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 O6=ezlQwcje6aW8#UzA+{