Skip to content

Instantly share code, notes, and snippets.

@bjhomer
Last active March 20, 2024 02:21
Show Gist options
  • Star 23 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save bjhomer/fe8b3b05388b71ba0ab9 to your computer and use it in GitHub Desktop.
Save bjhomer/fe8b3b05388b71ba0ab9 to your computer and use it in GitHub Desktop.
Using ScriptingBridge from Swift.
#! /usr/bin/swift
import ScriptingBridge
@objc protocol iTunesTrack {
optional var name: String {get}
optional var album: String {get}
}
@objc protocol iTunesApplication {
optional var soundVolume: Int {get}
optional var currentTrack: iTunesTrack? {get}
}
extension SBApplication : iTunesApplication {}
let app: iTunesApplication = SBApplication(bundleIdentifier: "com.apple.iTunes")
// Because these are all optional properties (to avoid providing an implementation), we have
// to use '!' to indicate we know the implementation exists.
let track: iTunesTrack? = app.currentTrack!
let album = track?.album!
let trackName = track?.name!
println("Current track: \(trackName) - \(album)")
@jonathanstiansen
Copy link

Any shot you know how to do a function for these?

@chess92
Copy link

chess92 commented May 17, 2016

How can you check if iTunes is currently playing audio?

@aphofstede
Copy link

What would the iTunesApplication protocol look like if one wanted to call a function call on it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment