From b995030aec7f09b25b0ae4366b173c4b47949ba3 Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Sun, 20 Feb 2022 01:53:25 -0800 Subject: [PATCH] Bring back scripting automation This fixes #126 and brings back basic automation support. The basic currentEntry object will return an object that can enumerate the track metadata or the file URL of the currently playing track. More automation suggestions are welcome, including playlist manipulation, or playback control. Signed-off-by: Christopher Snowhill --- Cog.scriptSuite | 114 ---------------- Cog.scriptTerminology | 100 -------------- Cog.sdef | 240 ++++++++++++++++++++++++++++++++++ Cog.xcodeproj/project.pbxproj | 12 +- Info.plist | 2 + 5 files changed, 246 insertions(+), 222 deletions(-) delete mode 100644 Cog.scriptSuite delete mode 100644 Cog.scriptTerminology create mode 100644 Cog.sdef diff --git a/Cog.scriptSuite b/Cog.scriptSuite deleted file mode 100644 index 742a9a95e..000000000 --- a/Cog.scriptSuite +++ /dev/null @@ -1,114 +0,0 @@ - - - - - AppleEventCode - CoRo - Classes - - NSApplication - - AppleEventCode - capp - Attributes - - currentEntry - - AppleEventCode - CoCE - ReadOnly - YES - Type - PlaylistEntry - - - Superclass - NSCoreSuite.NSApplication - - PlaylistEntry - - AppleEventCode - CoPE - Attributes - - album - - AppleEventCode - CoAl - ReadOnly - YES - Type - NSString - - artist - - AppleEventCode - CoAr - ReadOnly - YES - Type - NSString - - genre - - AppleEventCode - CoGe - ReadOnly - YES - Type - NSString - - length - - AppleEventCode - CoLe - ReadOnly - YES - Type - NSNumber<Double> - - bitrate - - AppleEventCode - CoBi - ReadOnly - YES - Type - NSNumber<Int> - - title - - AppleEventCode - CoTi - ReadOnly - YES - Type - NSString - - track - - AppleEventCode - CoTr - ReadOnly - YES - Type - NSString - - year - - AppleEventCode - CoYe - ReadOnly - YES - Type - NSString - - - Superclass - NSCoreSuite.AbstractObject - - - Name - Cog - - diff --git a/Cog.scriptTerminology b/Cog.scriptTerminology deleted file mode 100644 index f64b5729a..000000000 --- a/Cog.scriptTerminology +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Classes - - NSApplication - - Attributes - - currentEntry - - Description - The currently playing entry. - Name - currententry - - - Description - Cog's top level scripting object. - Name - application - PluralName - applications - - PlaylistEntry - - Attributes - - album - - Description - This is the... whatever. - Name - album - - artist - - Description - The artist of the entry. - Name - artist - - genre - - Description - This is the... whatever. - Name - genre - - length - - Description - This is the... whatever. - Name - length - - bitrate - - Description - This is the... whatever. - Name - bitrate - - title - - Description - This is the... whatever. - Name - title - - track - - Description - This is the... whatever. - Name - track - - year - - Description - This is the... whatever. - Name - year - - - Description - A playlist entry. - Name - playlistentry - PluralName - playlistentries - - - Description - Cog's AppleScript interface - Name - Cog - - diff --git a/Cog.sdef b/Cog.sdef new file mode 100644 index 000000000..4c804061f --- /dev/null +++ b/Cog.sdef @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cog.xcodeproj/project.pbxproj b/Cog.xcodeproj/project.pbxproj index 348bc558a..164204058 100644 --- a/Cog.xcodeproj/project.pbxproj +++ b/Cog.xcodeproj/project.pbxproj @@ -41,8 +41,6 @@ 17818A9B0C0B27AC001C4916 /* wv.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A940C0B27AC001C4916 /* wv.icns */; }; 1784560F0F631E24007E8021 /* FileTreeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1784560E0F631E24007E8021 /* FileTreeViewController.m */; }; 178456120F631E31007E8021 /* SideViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 178456110F631E31007E8021 /* SideViewController.m */; }; - 1791005E0CB44D6D0070BC5C /* Cog.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = 1791005C0CB44D6D0070BC5C /* Cog.scriptSuite */; }; - 1791005F0CB44D6D0070BC5C /* Cog.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = 1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */; }; 1791FF900CB43A2C0070BC5C /* MediaKeysApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 1791FF8E0CB43A2C0070BC5C /* MediaKeysApplication.m */; }; 179790E10C087AB7001D6996 /* OpenURLPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 179790DF0C087AB7001D6996 /* OpenURLPanel.m */; }; 179D031E0E0CB2500064A77A /* ContainedNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 179D03090E0CB2500064A77A /* ContainedNode.m */; }; @@ -99,6 +97,7 @@ 830C37A527B95EB300E02BB0 /* EqualizerWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 830C37A427B95EB300E02BB0 /* EqualizerWindowController.m */; }; 830C37FC27B9956C00E02BB0 /* analyzer.c in Sources */ = {isa = PBXBuildFile; fileRef = 830C37F227B9956C00E02BB0 /* analyzer.c */; }; 8314A46F27A28C29000EBE7E /* equalizerTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8314A46527A28C28000EBE7E /* equalizerTemplate.pdf */; }; + 831B99BF27C23E88005A969B /* Cog.sdef in Resources */ = {isa = PBXBuildFile; fileRef = 831B99BE27C23E88005A969B /* Cog.sdef */; }; 832923AF279FAC400048201E /* Cog.q1.json in Resources */ = {isa = PBXBuildFile; fileRef = 832923AE279FAC400048201E /* Cog.q1.json */; }; 83293070277886250010C07E /* OpenMPTOld.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8329306D277885790010C07E /* OpenMPTOld.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 832C1253180BD1E2005507C1 /* Cog.help in Resources */ = {isa = PBXBuildFile; fileRef = 832C1252180BD1E2005507C1 /* Cog.help */; }; @@ -784,8 +783,6 @@ 1784560E0F631E24007E8021 /* FileTreeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FileTreeViewController.m; path = FileTree/FileTreeViewController.m; sourceTree = ""; }; 178456100F631E31007E8021 /* SideViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideViewController.h; sourceTree = ""; }; 178456110F631E31007E8021 /* SideViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SideViewController.m; sourceTree = ""; }; - 1791005C0CB44D6D0070BC5C /* Cog.scriptSuite */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Cog.scriptSuite; sourceTree = ""; }; - 1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Cog.scriptTerminology; sourceTree = ""; }; 1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaKeysApplication.h; sourceTree = ""; }; 1791FF8E0CB43A2C0070BC5C /* MediaKeysApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MediaKeysApplication.m; sourceTree = ""; }; 179790DE0C087AB7001D6996 /* OpenURLPanel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = OpenURLPanel.h; sourceTree = ""; }; @@ -889,6 +886,7 @@ 830C37F227B9956C00E02BB0 /* analyzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = analyzer.c; sourceTree = ""; }; 8314A46527A28C28000EBE7E /* equalizerTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = equalizerTemplate.pdf; path = Images/equalizerTemplate.pdf; sourceTree = ""; }; 8314D63B1A354DFE00EEE8E6 /* sidplay.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = sidplay.xcodeproj; path = Plugins/sidplay/sidplay.xcodeproj; sourceTree = ""; }; + 831B99BE27C23E88005A969B /* Cog.sdef */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Cog.sdef; sourceTree = ""; }; 832923AE279FAC400048201E /* Cog.q1.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Cog.q1.json; sourceTree = ""; }; 83293065277885790010C07E /* OpenMPTOld.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OpenMPTOld.xcodeproj; path = Plugins/OpenMPT.old/OpenMPTOld.xcodeproj; sourceTree = ""; }; 832C1252180BD1E2005507C1 /* Cog.help */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Cog.help; sourceTree = ""; }; @@ -1485,9 +1483,8 @@ 8D1107310486CEB800E47090 /* Info.plist */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, 8E7575D909F31E930080F1EE /* Localizable.strings */, - 1791005C0CB44D6D0070BC5C /* Cog.scriptSuite */, - 1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */, 832923AE279FAC400048201E /* Cog.q1.json */, + 831B99BE27C23E88005A969B /* Cog.sdef */, 835EDD8027A000E8001EDCCE /* gsx.wv */, 830C379F27B95E3000E02BB0 /* Equalizer.xib */, 17D1B0D00F6320EA00694C57 /* InfoInspector.xib */, @@ -2426,8 +2423,6 @@ 838F851C256B4AC400C3E614 /* icon_blank.icns in Resources */, 17818A9A0C0B27AC001C4916 /* wav.icns in Resources */, 17818A9B0C0B27AC001C4916 /* wv.icns in Resources */, - 1791005E0CB44D6D0070BC5C /* Cog.scriptSuite in Resources */, - 1791005F0CB44D6D0070BC5C /* Cog.scriptTerminology in Resources */, 8384916518083EAB00E7332D /* repeatModeOffTemplate.pdf in Resources */, 17D1B27D0CF8B2830028F5B5 /* cue.icns in Resources */, 8384915A18083EAB00E7332D /* missingArt@2x.png in Resources */, @@ -2439,6 +2434,7 @@ 17D1B2800CF8B2830028F5B5 /* s3m.icns in Resources */, 8384916718083EAB00E7332D /* shuffleAlbumTemplate.pdf in Resources */, 17D1B2810CF8B2830028F5B5 /* song.icns in Resources */, + 831B99BF27C23E88005A969B /* Cog.sdef in Resources */, 832923AF279FAC400048201E /* Cog.q1.json in Resources */, 17D1B2820CF8B2830028F5B5 /* vg.icns in Resources */, 17D1B2830CF8B2830028F5B5 /* xm.icns in Resources */, diff --git a/Info.plist b/Info.plist index 7df81a855..2efe81936 100644 --- a/Info.plist +++ b/Info.plist @@ -2,6 +2,8 @@ + OSAScriptingDefinition + Cog.sdef CFBundleDevelopmentRegion English CFBundleDocumentTypes