diff --git a/audio-service/metadata.json b/audio-service/metadata.json
index e83672c..fc20b69 100644
--- a/audio-service/metadata.json
+++ b/audio-service/metadata.json
@@ -16,7 +16,7 @@
{
"endTime": 30,
"filename": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\audio-service\\recordings\\audio_capture_20260220_193822.wav",
- "name": "Pee pee poo poo",
+ "name": "Pee pee\npoo poo",
"playbackType": "playStop",
"startTime": 27.756510985786615,
"volume": 1
diff --git a/audio-service/src/routes/__pycache__/recording.cpython-313.pyc b/audio-service/src/routes/__pycache__/recording.cpython-313.pyc
index 6206238..3083285 100644
Binary files a/audio-service/src/routes/__pycache__/recording.cpython-313.pyc and b/audio-service/src/routes/__pycache__/recording.cpython-313.pyc differ
diff --git a/audio-service/src/routes/recording.py b/audio-service/src/routes/recording.py
index 0922a20..e5254b0 100644
--- a/audio-service/src/routes/recording.py
+++ b/audio-service/src/routes/recording.py
@@ -40,5 +40,14 @@ def recording_delete():
try:
os.remove(filename)
return jsonify({'status': 'success'})
+ except Exception as e:
+ return jsonify({'status': 'error', 'message': str(e)}), 400
+
+@recording_bp.route('/playback/start', methods=['POST'])
+def playback_start():
+ print('HTTP: Starting audio playback')
+ try:
+ # os.remove(filename)
+ return jsonify({'status': 'success'})
except Exception as e:
return jsonify({'status': 'error', 'message': str(e)}), 400
\ No newline at end of file
diff --git a/electron-ui/src/renderer/components/AudioTrimer.tsx b/electron-ui/src/renderer/components/AudioTrimer.tsx
index 81487af..749da50 100644
--- a/electron-ui/src/renderer/components/AudioTrimer.tsx
+++ b/electron-ui/src/renderer/components/AudioTrimer.tsx
@@ -294,18 +294,15 @@ export default function AudioTrimmer({
>
Edit Clip Name
- setNameInput(e.target.value)}
- onKeyDown={(e) => {
- if (e.key === 'Enter') handleDialogSave();
- }}
+ rows={3}
onFocus={(event) => event.target.select()}
aria-label="Edit clip name"
+ style={{ minHeight: '3em' }}
/>
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/CodeChunks.db b/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/CodeChunks.db
index f9b7b51..ebee10c 100644
Binary files a/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/CodeChunks.db and b/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/CodeChunks.db differ
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/SemanticSymbols.db b/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/SemanticSymbols.db
index c61eb71..ab6d60a 100644
Binary files a/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/SemanticSymbols.db and b/stream_deck_plugin/.vs/ClipTrimDotNet/CopilotIndices/17.14.1431.25910/SemanticSymbols.db differ
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/21295af7-5d3b-4d32-9833-a3f5ca60df10.vsidx b/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/21295af7-5d3b-4d32-9833-a3f5ca60df10.vsidx
deleted file mode 100644
index 5e80e32..0000000
Binary files a/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/21295af7-5d3b-4d32-9833-a3f5ca60df10.vsidx and /dev/null differ
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/298d1b91-00fc-43f4-b254-bc10321ae63d.vsidx b/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/298d1b91-00fc-43f4-b254-bc10321ae63d.vsidx
deleted file mode 100644
index 84bccf8..0000000
Binary files a/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/298d1b91-00fc-43f4-b254-bc10321ae63d.vsidx and /dev/null differ
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/5ba82e2c-dcf4-4055-a830-639383c8c842.vsidx b/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/5ba82e2c-dcf4-4055-a830-639383c8c842.vsidx
new file mode 100644
index 0000000..380d8a3
Binary files /dev/null and b/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/5ba82e2c-dcf4-4055-a830-639383c8c842.vsidx differ
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/f41a6896-d9b5-4af7-8dec-d0296008b1ac.vsidx b/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/f41a6896-d9b5-4af7-8dec-d0296008b1ac.vsidx
new file mode 100644
index 0000000..ca74531
Binary files /dev/null and b/stream_deck_plugin/.vs/ClipTrimDotNet/FileContentIndex/f41a6896-d9b5-4af7-8dec-d0296008b1ac.vsidx differ
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/v17/.suo b/stream_deck_plugin/.vs/ClipTrimDotNet/v17/.suo
index 8c8c5a5..50450e1 100644
Binary files a/stream_deck_plugin/.vs/ClipTrimDotNet/v17/.suo and b/stream_deck_plugin/.vs/ClipTrimDotNet/v17/.suo differ
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.backup.json b/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.backup.json
index 41e7b31..9548652 100644
--- a/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.backup.json
+++ b/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.backup.json
@@ -1,65 +1,22 @@
{
"Version": 1,
- "WorkspaceRootPath": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\",
+ "WorkspaceRootPath": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\profileswitcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\profileswitcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\client\\cliptrimclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\client\\cliptrimclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\wavplayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\wavplayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\player.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\player.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\player.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\source\\repos\\cliptrimdotnet\\cliptrimdotnet\\manifest.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\manifest.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\profileswitcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\profileswitcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\package.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\package.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\globalsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\globalsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|ClipTrimDotNet||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\packages.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\packages.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\basetest.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\basetest.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\properties\\assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\properties\\assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\propertyinspector\\file_player.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\propertyinspector\\file_player.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\propertyinspector\\profile_swticher.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\propertyinspector\\profile_swticher.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\cliptrimdotnet\\!!readme!!.txt||{8B382828-6202-11D1-8870-0000F87579D2}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\!!readme!!.txt||{8B382828-6202-11D1-8870-0000F87579D2}"
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\client\\collectionmetadata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\client\\collectionmetadata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -69,199 +26,67 @@
"DocumentGroups": [
{
"DockedWidth": 297,
- "SelectedChildIndex": 3,
+ "SelectedChildIndex": 2,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{57d563b6-44a5-47df-85be-f4199ad6b651}"
},
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "ProfileSwitcher.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ProfileSwitcher.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\ProfileSwitcher.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ProfileSwitcher.cs",
+ "RelativeToolTip": "ClipTrimDotNet\\ProfileSwitcher.cs",
+ "ViewState": "AgIAAFkAAAAAAAAAAAAlwG8AAABKAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-21T15:06:24.045Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "ClipTrimClient.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "RelativeToolTip": "ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "ViewState": "AgIAAEgAAAAAAAAAAAAuwGMAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-21T15:03:49.814Z",
+ "EditorCaption": ""
+ },
{
"$type": "Document",
"DocumentIndex": 3,
- "Title": "manifest.json",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\manifest.json",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\manifest.json",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\manifest.json",
- "RelativeToolTip": "ClipTrimDotNet\\manifest.json",
- "ViewState": "AgIAAA8AAAAAAAAAAAAAABUAAAARAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
- "WhenOpened": "2025-01-07T22:25:36.017Z",
+ "Title": "CollectionMetaData.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "RelativeToolTip": "ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-21T15:03:47.862Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "Player.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Player.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\Player.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Player.cs*",
+ "RelativeToolTip": "ClipTrimDotNet\\Player.cs*",
+ "ViewState": "AgIAAHIAAAAAAAAAAAA3wIYAAABMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-21T15:00:23.762Z",
"EditorCaption": ""
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "ProfileSwitcher.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\ProfileSwitcher.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\ProfileSwitcher.cs",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\ProfileSwitcher.cs",
- "RelativeToolTip": "ClipTrimDotNet\\ProfileSwitcher.cs",
- "ViewState": "AgIAAHMAAAAAAAAAAAAAAHMAAABhAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-07T22:30:21.707Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "Player.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\Player.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\Player.cs",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\Player.cs",
- "RelativeToolTip": "ClipTrimDotNet\\Player.cs",
- "ViewState": "AgIAAGYAAAAAAAAAAAAYwIEAAAAiAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-07T22:30:17.917Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 5,
- "Title": "GlobalSettings.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\GlobalSettings.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\GlobalSettings.cs",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\GlobalSettings.cs",
- "RelativeToolTip": "ClipTrimDotNet\\GlobalSettings.cs",
- "ViewState": "AQIAAEcAAAAAAAAAAAAAwGQAAAANAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T00:01:58.381Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "package.json",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\package.json",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\package.json",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\package.json",
- "RelativeToolTip": "ClipTrimDotNet\\package.json",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
- "WhenOpened": "2025-01-08T02:08:12.8Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "WavPlayer.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\WavPlayer.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\WavPlayer.cs",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\WavPlayer.cs",
- "RelativeToolTip": "ClipTrimDotNet\\WavPlayer.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T01:15:28.724Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "Program.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\Program.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\Program.cs",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\Program.cs",
- "RelativeToolTip": "ClipTrimDotNet\\Program.cs",
- "ViewState": "AQIAAAMAAAAAAAAAAAAAAA4AAABlAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-07T23:57:50.996Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 11,
- "Title": "file_player.html",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "RelativeToolTip": "ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAACYAAAAQAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
- "WhenOpened": "2025-01-07T22:27:38.985Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 12,
- "Title": "profile_swticher.html",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "RelativeToolTip": "ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAABwAAAAxAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
- "WhenOpened": "2025-01-07T22:28:04.751Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 8,
- "Title": "packages.config",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\packages.config",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\packages.config",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\packages.config",
- "RelativeToolTip": "ClipTrimDotNet\\packages.config",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
- "WhenOpened": "2025-01-08T21:38:49.029Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "ClipTrimDotNet",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "RelativeToolTip": "ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-08T00:06:38.575Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 9,
- "Title": "BaseTest.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\BaseTest.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\BaseTest.cs",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\BaseTest.cs",
- "RelativeToolTip": "ClipTrimDotNet\\BaseTest.cs",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T00:39:45.341Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
- "Title": "App.config",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\App.config",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\App.config",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\App.config",
- "RelativeToolTip": "ClipTrimDotNet\\App.config",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
- "WhenOpened": "2025-01-08T00:13:00.841Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
- "Title": "AssemblyInfo.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "RelativeToolTip": "ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T00:12:33.926Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 14,
- "Title": "!!README!!.txt",
- "DocumentMoniker": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\!!README!!.txt",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\!!README!!.txt",
- "ToolTip": "C:\\Users\\mickl\\source\\repos\\ClipTrimDotNet\\ClipTrimDotNet\\!!README!!.txt",
- "RelativeToolTip": "ClipTrimDotNet\\!!README!!.txt",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|",
- "WhenOpened": "2025-01-07T22:31:00.77Z"
}
]
}
diff --git a/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.json b/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.json
index 6ab4293..58111fe 100644
--- a/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.json
+++ b/stream_deck_plugin/.vs/ClipTrimDotNet/v17/DocumentLayout.json
@@ -2,64 +2,25 @@
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\",
"Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\wavplayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\wavplayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\player.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\player.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
{
"AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\profileswitcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\profileswitcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\wavplayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\wavplayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\client\\cliptrimclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\client\\cliptrimclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\player.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\player.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\manifest.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\manifest.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\package.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\package.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\globalsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\globalsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|ClipTrimDotNet||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\packages.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\packages.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\basetest.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\basetest.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\properties\\assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\properties\\assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\propertyinspector\\file_player.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\propertyinspector\\file_player.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\propertyinspector\\profile_swticher.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\propertyinspector\\profile_swticher.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\cliptrimdotnet\\!!readme!!.txt||{8B382828-6202-11D1-8870-0000F87579D2}",
- "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\!!readme!!.txt||{8B382828-6202-11D1-8870-0000F87579D2}"
+ "AbsoluteMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|c:\\users\\mickl\\desktop\\cliptrim-ui\\cliptrimapp\\stream_deck_plugin\\cliptrimdotnet\\client\\collectionmetadata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{4635D874-69C0-4010-BE46-77EF92EB1553}|ClipTrimDotNet\\ClipTrimDotNet.csproj|solutionrelative:cliptrimdotnet\\client\\collectionmetadata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -69,199 +30,80 @@
"DocumentGroups": [
{
"DockedWidth": 297,
- "SelectedChildIndex": 4,
+ "SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{57d563b6-44a5-47df-85be-f4199ad6b651}"
},
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "manifest.json",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\manifest.json",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\manifest.json",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\manifest.json",
- "RelativeToolTip": "ClipTrimDotNet\\manifest.json",
- "ViewState": "AgIAAA8AAAAAAAAAAAAAABUAAAARAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
- "WhenOpened": "2025-01-07T22:25:36.017Z"
- },
{
"$type": "Document",
"DocumentIndex": 0,
- "Title": "ProfileSwitcher.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ProfileSwitcher.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\ProfileSwitcher.cs",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ProfileSwitcher.cs",
- "RelativeToolTip": "ClipTrimDotNet\\ProfileSwitcher.cs",
- "ViewState": "AgIAAFcAAAAAAAAAAAAgwF8AAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-07T22:30:21.707Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "Player.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Player.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\Player.cs",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Player.cs",
- "RelativeToolTip": "ClipTrimDotNet\\Player.cs",
- "ViewState": "AgIAAGYAAAAAAAAAAAAYwIEAAAAiAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-07T22:30:17.917Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 5,
- "Title": "GlobalSettings.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\GlobalSettings.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\GlobalSettings.cs",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\GlobalSettings.cs",
- "RelativeToolTip": "ClipTrimDotNet\\GlobalSettings.cs",
- "ViewState": "AQIAAEcAAAAAAAAAAAAAwGQAAAANAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T00:01:58.381Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "package.json",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\package.json",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\package.json",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\package.json",
- "RelativeToolTip": "ClipTrimDotNet\\package.json",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
- "WhenOpened": "2025-01-08T02:08:12.8Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
"Title": "WavPlayer.cs",
"DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\WavPlayer.cs",
"RelativeDocumentMoniker": "ClipTrimDotNet\\WavPlayer.cs",
"ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\WavPlayer.cs",
"RelativeToolTip": "ClipTrimDotNet\\WavPlayer.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAA==",
+ "ViewState": "AgIAALYAAAAAAAAAAAAAALsAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T01:15:28.724Z"
+ "WhenOpened": "2026-02-21T15:16:26.477Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 6,
- "Title": "Program.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Program.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\Program.cs",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Program.cs",
- "RelativeToolTip": "ClipTrimDotNet\\Program.cs",
- "ViewState": "AQIAAAMAAAAAAAAAAAAAAA4AAABlAAAA",
+ "DocumentIndex": 2,
+ "Title": "ProfileSwitcher.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ProfileSwitcher.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\ProfileSwitcher.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ProfileSwitcher.cs",
+ "RelativeToolTip": "ClipTrimDotNet\\ProfileSwitcher.cs",
+ "ViewState": "AgIAAG8AAAAAAAAAAAAWwG8AAABKAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-07T23:57:50.996Z"
+ "WhenOpened": "2026-02-21T15:06:24.045Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 11,
- "Title": "file_player.html",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "RelativeToolTip": "ClipTrimDotNet\\PropertyInspector\\file_player.html",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAACYAAAAQAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
- "WhenOpened": "2025-01-07T22:27:38.985Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 12,
- "Title": "profile_swticher.html",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "RelativeToolTip": "ClipTrimDotNet\\PropertyInspector\\profile_swticher.html",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAABwAAAAxAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
- "WhenOpened": "2025-01-07T22:28:04.751Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 8,
- "Title": "packages.config",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\packages.config",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\packages.config",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\packages.config",
- "RelativeToolTip": "ClipTrimDotNet\\packages.config",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
- "WhenOpened": "2025-01-08T21:38:49.029Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "ClipTrimDotNet",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "RelativeToolTip": "ClipTrimDotNet\\ClipTrimDotNet.csproj",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-08T00:06:38.575Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 9,
- "Title": "BaseTest.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\BaseTest.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\BaseTest.cs",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\BaseTest.cs",
- "RelativeToolTip": "ClipTrimDotNet\\BaseTest.cs",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ "DocumentIndex": 3,
+ "Title": "ClipTrimClient.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "RelativeToolTip": "ClipTrimDotNet\\Client\\ClipTrimClient.cs",
+ "ViewState": "AgIAAEgAAAAAAAAAAAAuwGIAAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T00:39:45.341Z"
+ "WhenOpened": "2026-02-21T15:03:49.814Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 13,
- "Title": "App.config",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\App.config",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\App.config",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\App.config",
- "RelativeToolTip": "ClipTrimDotNet\\App.config",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
- "WhenOpened": "2025-01-08T00:13:00.841Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
- "Title": "AssemblyInfo.cs",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "RelativeToolTip": "ClipTrimDotNet\\Properties\\AssemblyInfo.cs",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ "DocumentIndex": 4,
+ "Title": "CollectionMetaData.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "RelativeToolTip": "ClipTrimDotNet\\Client\\CollectionMetaData.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-08T00:12:33.926Z"
+ "WhenOpened": "2026-02-21T15:03:47.862Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 14,
- "Title": "!!README!!.txt",
- "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\!!README!!.txt",
- "RelativeDocumentMoniker": "ClipTrimDotNet\\!!README!!.txt",
- "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\!!README!!.txt",
- "RelativeToolTip": "ClipTrimDotNet\\!!README!!.txt",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAAAAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|",
- "WhenOpened": "2025-01-07T22:31:00.77Z"
+ "DocumentIndex": 1,
+ "Title": "Player.cs",
+ "DocumentMoniker": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Player.cs",
+ "RelativeDocumentMoniker": "ClipTrimDotNet\\Player.cs",
+ "ToolTip": "C:\\Users\\mickl\\Desktop\\cliptrim-ui\\ClipTrimApp\\stream_deck_plugin\\ClipTrimDotNet\\Player.cs",
+ "RelativeToolTip": "ClipTrimDotNet\\Player.cs",
+ "ViewState": "AgIAAHoAAAAAAAAAAAAswIwAAAAbAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-21T15:00:23.762Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
}
]
}
diff --git a/stream_deck_plugin/ClipTrimDotNet/Client/ClipMetadata.cs b/stream_deck_plugin/ClipTrimDotNet/Client/ClipMetadata.cs
new file mode 100644
index 0000000..36f6643
--- /dev/null
+++ b/stream_deck_plugin/ClipTrimDotNet/Client/ClipMetadata.cs
@@ -0,0 +1,42 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ClipTrimDotNet.Client
+{
+ public enum PlaybackType
+ {
+ playStop,
+ playOverlap
+ }
+ public class ClipMetadata
+ {
+ [JsonProperty(PropertyName = "filename")]
+ public string Filename { get; set; }
+
+
+ [JsonProperty(PropertyName = "name")]
+ public string Name { get; set; }
+
+
+ [JsonProperty(PropertyName = "volume")]
+ public double Volume { get; set; } = 1.0;
+
+
+ [JsonProperty(PropertyName = "startTime")]
+ public double StartTime { get; set; } = 0.0;
+
+
+ [JsonProperty(PropertyName = "endTime")]
+ public double EndTime { get; set; } = 0.0;
+
+
+ [JsonProperty(PropertyName = "playbackType")]
+ [JsonConverter(typeof(StringEnumConverter))]
+ public PlaybackType PlaybackType { get; set; } = PlaybackType.playStop;
+ }
+}
diff --git a/stream_deck_plugin/ClipTrimDotNet/Client/ClipTrimClient.cs b/stream_deck_plugin/ClipTrimDotNet/Client/ClipTrimClient.cs
new file mode 100644
index 0000000..b369dc0
--- /dev/null
+++ b/stream_deck_plugin/ClipTrimDotNet/Client/ClipTrimClient.cs
@@ -0,0 +1,110 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+namespace ClipTrimDotNet.Client
+{
+ public class ClipTrimClient
+ {
+ private static ClipTrimClient? instance;
+ public static ClipTrimClient Instance
+ {
+ get
+ {
+ if (instance == null)
+ {
+ instance = new ClipTrimClient();
+ }
+ return instance;
+ }
+ }
+
+ private HttpClient httpClient;
+
+ public ClipTrimClient()
+ {
+ httpClient = new HttpClient()
+ {
+ BaseAddress = new Uri("http://localhost:5010/"),
+ Timeout = TimeSpan.FromSeconds(10)
+ };
+ Task.Run(ShortPoll);
+ }
+
+ public async Task ShortPoll()
+ {
+ while (true)
+ {
+ await GetMetadata();
+ await Task.Delay(TimeSpan.FromSeconds(5)); await Task.Delay(TimeSpan.FromSeconds(5));
+
+ }
+ }
+
+ public List Collections { get; private set; } = new List();
+ public CollectionMetaData? SelectedCollection { get; private set; }
+ public int PageIndex { get; private set; } = 0;
+ private async Task GetMetadata()
+ {
+ try
+ {
+ var response = await httpClient.GetAsync("meta");
+ if (response.IsSuccessStatusCode)
+ {
+ var json = await response.Content.ReadAsStringAsync();
+ dynamic collections = JsonConvert.DeserializeObject(json);
+ collections = collections.collections;
+ Collections = JsonConvert.DeserializeObject>(collections.ToString());
+ }
+ }
+ catch (Exception ex)
+ {
+ //Logger.Instance.LogMessage(TracingLevel.INFO, $"Error pinging ClipTrim API: {ex.Message}");
+ return;
+ }
+
+ }
+
+ public List GetCollectionNames()
+ {
+ //await GetMetadata();
+ return Collections.Select(x => x.Name).ToList();
+ }
+
+ public void SetSelectedCollectionByName(string name)
+ {
+ var collection = Collections.FirstOrDefault(x => x.Name == name);
+ if (collection != null)
+ {
+ SelectedCollection = collection;
+ PageIndex = 0;
+ }
+ }
+
+ public ClipMetadata? GetClipByPagedIndex(int index)
+ {
+ if (SelectedCollection == null) return null;
+ int clipIndex = PageIndex * 10 + index;
+ if (clipIndex >= 0 && clipIndex < SelectedCollection.Clips.Count)
+ {
+ return SelectedCollection.Clips[clipIndex];
+ }
+ return null;
+ }
+
+ public async void PlayClip(ClipMetadata? metadata)
+ {
+ if (metadata == null) return;
+
+ var response = await httpClient.PostAsync("playback/start", new StringContent(JsonConvert.SerializeObject(metadata), Encoding.UTF8, "application/json"));
+ if (!response.IsSuccessStatusCode)
+ {
+ //Logger.Instance.LogMessage(TracingLevel.INFO, $"Error playing clip: {response.ReasonPhrase}");
+ }
+ }
+ }
+}
diff --git a/stream_deck_plugin/ClipTrimDotNet/Client/CollectionMetaData.cs b/stream_deck_plugin/ClipTrimDotNet/Client/CollectionMetaData.cs
new file mode 100644
index 0000000..f2769b7
--- /dev/null
+++ b/stream_deck_plugin/ClipTrimDotNet/Client/CollectionMetaData.cs
@@ -0,0 +1,23 @@
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ClipTrimDotNet.Client
+{
+ public class CollectionMetaData
+ {
+ [JsonProperty(PropertyName = "name")]
+ public string Name { get; set; }
+
+
+ [JsonProperty(PropertyName = "clips")]
+ public List Clips { get; set; } = new List();
+
+
+ [JsonProperty(PropertyName = "id")]
+ public int Id { get; set; }
+ }
+}
diff --git a/stream_deck_plugin/ClipTrimDotNet/ClipTrimDotNet.csproj b/stream_deck_plugin/ClipTrimDotNet/ClipTrimDotNet.csproj
index d485dce..29f0f39 100644
--- a/stream_deck_plugin/ClipTrimDotNet/ClipTrimDotNet.csproj
+++ b/stream_deck_plugin/ClipTrimDotNet/ClipTrimDotNet.csproj
@@ -13,6 +13,7 @@
512
true
true
+ enable
@@ -63,20 +64,20 @@
..\packages\NAudio.WinMM.2.2.1\lib\netstandard2.0\NAudio.WinMM.dll
- ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll
+ ..\packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll
-
- ..\packages\NLog.5.2.8\lib\net46\NLog.dll
+
+ ..\packages\NLog.6.0.5\lib\net46\NLog.dll
-
- ..\packages\StreamDeck-Tools.6.2.0\lib\netstandard2.0\StreamDeckTools.dll
+
+ ..\packages\StreamDeck-Tools.6.3.2\lib\netstandard2.0\StreamDeckTools.dll
-
- ..\packages\System.Drawing.Common.8.0.1\lib\net462\System.Drawing.Common.dll
+
+ ..\packages\System.Drawing.Common.9.0.10\lib\net462\System.Drawing.Common.dll
@@ -97,6 +98,9 @@
+
+
+
@@ -150,8 +154,7 @@
- npm run stop
-timeout /t 1 /nobreak
+ npm run stop
npm run start
diff --git a/stream_deck_plugin/ClipTrimDotNet/Player.cs b/stream_deck_plugin/ClipTrimDotNet/Player.cs
index bec8efc..3c83e9b 100644
--- a/stream_deck_plugin/ClipTrimDotNet/Player.cs
+++ b/stream_deck_plugin/ClipTrimDotNet/Player.cs
@@ -1,5 +1,6 @@
using BarRaider.SdTools;
using BarRaider.SdTools.Wrappers;
+using ClipTrimDotNet.Client;
using NAudio.CoreAudioApi.Interfaces;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -18,9 +19,8 @@ namespace ClipTrimDotNet
public class Player : KeypadBase
{
- private TitleParameters? titleParameters = null;
- private string userTitle;
- private static int counter = 0;
+ private ClipMetadata? metadata;
+ private KeyCoordinates coordinates;
private class PluginSettings
{
public static PluginSettings CreateDefaultSettings()
@@ -62,6 +62,7 @@ namespace ClipTrimDotNet
{
this.settings = payload.Settings.ToObject();
}
+ this.coordinates = payload.Coordinates;
GlobalSettingsManager.Instance.RequestGlobalSettings();
CheckFile();
}
@@ -71,34 +72,43 @@ namespace ClipTrimDotNet
Tools.AutoPopulateSettings(GlobalSettings.Instance, e.Settings);
}
+ public int GetIndex()
+ {
+ return Math.Max((coordinates.Row - 1) * 5 + coordinates.Column, 0);
+ }
+
private async void CheckFile()
{
- if (settings == null || GlobalSettings.Instance.BasePath == null || GlobalSettings.Instance.ProfileName ==null) return;
+ //if (settings == null || GlobalSettings.Instance.ProfileName ==null) return;
+ metadata = ClipTrimClient.Instance.GetClipByPagedIndex(GetIndex());
+ await Connection.SetTitleAsync($"{metadata?.Name ?? ""}");
+
+ return;
- var files = Directory.GetFiles(Path.Combine(Path.GetDirectoryName(GlobalSettings.Instance.BasePath), GlobalSettings.Instance.ProfileName), "*.wav", SearchOption.TopDirectoryOnly)
- .OrderBy(file => File.GetCreationTime(file))
- .ToArray();
- int? i = this.settings.Index;
- string new_path = "";
- if (i != null && i >= 0 && i < files.Length)
- {
- new_path = files[i ?? 0];
- }
+ //var files = Directory.GetFiles(Path.Combine(Path.GetDirectoryName(GlobalSettings.Instance.BasePath), GlobalSettings.Instance.ProfileName), "*.wav", SearchOption.TopDirectoryOnly)
+ // .OrderBy(file => File.GetCreationTime(file))
+ // .ToArray();
+ //int? i = this.settings.Index;
+ //string new_path = "";
+ //if (i != null && i >= 0 && i < files.Length)
+ //{
+ // new_path = files[i ?? 0];
+ //}
- await Connection.SetTitleAsync(Path.GetFileNameWithoutExtension(new_path));
- if (new_path != settings.Path)
- {
- settings.Path = new_path;
- if(new_path != "")
- {
- FileEntry opts = GlobalSettings.Instance.GetFileOptionsInCurrentProfile(new_path);
- settings.Volume = opts.Volume;
- settings.PlayType = opts.Playtype;
- }
- await SaveSettings();
- }
+ //await Connection.SetTitleAsync(Path.GetFileNameWithoutExtension(new_path));
+ //if (new_path != settings.Path)
+ //{
+ // settings.Path = new_path;
+ // if(new_path != "")
+ // {
+ // FileEntry opts = GlobalSettings.Instance.GetFileOptionsInCurrentProfile(new_path);
+ // settings.Volume = opts.Volume;
+ // settings.PlayType = opts.Playtype;
+ // }
+ // await SaveSettings();
+ //}
}
@@ -109,8 +119,8 @@ namespace ClipTrimDotNet
private void Connection_OnTitleParametersDidChange(object sender, SDEventReceivedEventArgs e)
{
- titleParameters = e.Event?.Payload?.TitleParameters;
- userTitle = e.Event?.Payload?.Title;
+ //titleParameters = e.Event?.Payload?.TitleParameters;
+ //userTitle = e.Event?.Payload?.Title;
}
public override void Dispose()
@@ -124,15 +134,16 @@ namespace ClipTrimDotNet
{
//Logger.Instance.LogMessage(TracingLevel.INFO, "Key Pressedd");
Tools.AutoPopulateSettings(settings, payload.Settings);
- // Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(settings));
- try
- {
- WavPlayer.Instance.Play(settings.Path, GlobalSettings.Instance.OutputDevice, settings.Volume, settings.PlayType == "Play/Overlap" ? WavPlayer.PlayMode.PlayOverlap : WavPlayer.PlayMode.PlayStop);
- }
- catch
- {
+ // Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(settings));
+ ClipTrimClient.Instance.PlayClip(metadata);
+ //try
+ //{
+ // WavPlayer.Instance.Play(settings.Path, GlobalSettings.Instance.OutputDevice, settings.Volume, settings.PlayType == "Play/Overlap" ? WavPlayer.PlayMode.PlayOverlap : WavPlayer.PlayMode.PlayStop);
+ //}
+ //catch
+ //{
- }
+ //}
}
diff --git a/stream_deck_plugin/ClipTrimDotNet/ProfileSwitcher.cs b/stream_deck_plugin/ClipTrimDotNet/ProfileSwitcher.cs
index d1d2586..e22e515 100644
--- a/stream_deck_plugin/ClipTrimDotNet/ProfileSwitcher.cs
+++ b/stream_deck_plugin/ClipTrimDotNet/ProfileSwitcher.cs
@@ -1,5 +1,6 @@
using BarRaider.SdTools;
using BarRaider.SdTools.Wrappers;
+using ClipTrimDotNet.Client;
using NAudio.CoreAudioApi.Interfaces;
using NAudio.Wave;
using Newtonsoft.Json;
@@ -59,8 +60,8 @@ namespace ClipTrimDotNet
private async void SetTitle()
{
-
- await Connection.SetTitleAsync(settings.ProfileName);
+
+ await Connection.SetTitleAsync(settings.ProfileName + " A");
}
private async void Connection_OnSendToPlugin(object sender, SDEventReceivedEventArgs e)
@@ -68,8 +69,9 @@ namespace ClipTrimDotNet
//Logger.Instance.LogMessage(TracingLevel.INFO, "get profiles");
if (e.Event.Payload["event"].ToString() == "getProfiles")
{
- string basePath = "C:\\Users\\mickl\\Music\\clips";
- var files = Directory.GetDirectories(basePath, "*", SearchOption.TopDirectoryOnly).Select(x => Path.GetFileNameWithoutExtension(x)).Where(x => x != "original");
+ //string basePath = "C:\\Users\\mickl\\Music\\clips";
+ //var files = Directory.GetDirectories(basePath, "*", SearchOption.TopDirectoryOnly).Select(x => Path.GetFileNameWithoutExtension(x)).Where(x => x != "original");
+ var files = ClipTrimClient.Instance.GetCollectionNames();
var items = files.Select(x => new DataSourceItem { label = x, value = x});
var obj = new JObject();
obj["event"] = "getProfiles";
@@ -110,6 +112,7 @@ namespace ClipTrimDotNet
//Logger.Instance.LogMessage(TracingLevel.INFO, "KeyPressed");
//Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(settings));
//Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(GlobalSettings.Instance));
+ ClipTrimClient.Instance.SetSelectedCollectionByName(settings.ProfileName);
GlobalSettings.Instance.SetCurrentProfile(settings.ProfileName);
Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(GlobalSettings.Instance));
diff --git a/stream_deck_plugin/ClipTrimDotNet/packages.config b/stream_deck_plugin/ClipTrimDotNet/packages.config
index c2b7e68..3166d2a 100644
--- a/stream_deck_plugin/ClipTrimDotNet/packages.config
+++ b/stream_deck_plugin/ClipTrimDotNet/packages.config
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
\ No newline at end of file