diff --git a/Gemfile b/Gemfile
index ca57cbb..1904217 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,4 +5,8 @@ gem "motion-cocoapods", "~> 1.4.0"
gem "motion-sparkle", "~> 0.0.3"
gem "bubble-wrap", "~> 1.4.0"
gem "motion-stump", "~> 0.3.0"
-gem "kyan_jukebox", :path => "/Users/duncan/_dev/kyan/gems/kyan_jukebox"
\ No newline at end of file
+gem 'sugarcube', "~> 1.3.7", :require => [
+ 'sugarcube-attributedstring',
+]
+#gem "kyan_jukebox", :path => "/Users/duncan/_dev/kyan/gems/kyan_jukebox"
+gem "kyan_jukebox", :git => 'git@github.com:kyan/kyan_jukebox.git'
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index c25c620..aa4b36d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,12 +1,13 @@
-PATH
- remote: /Users/duncan/_dev/kyan/gems/kyan_jukebox
+GIT
+ remote: git@github.com:kyan/kyan_jukebox.git
+ revision: 2785b19d4b662a73a7fd20a91fbb6352a973d7dd
specs:
- kyan_jukebox (0.0.1)
+ kyan_jukebox (0.1.2)
GEM
remote: https://rubygems.org/
specs:
- activesupport (3.2.15)
+ activesupport (3.2.16)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
bubble-wrap (1.4.0)
@@ -30,7 +31,7 @@ GEM
colored (1.2)
escape (0.0.4)
fuzzy_match (2.0.4)
- i18n (0.6.5)
+ i18n (0.6.9)
json (1.8.1)
json_pure (1.8.1)
motion-cocoapods (1.4.0)
@@ -38,9 +39,10 @@ GEM
motion-sparkle (0.0.3)
motion-stump (0.3.0)
multi_json (1.8.2)
- nap (0.5.1)
+ nap (0.6.0)
open4 (1.3.0)
rake (10.1.0)
+ sugarcube (1.3.7)
xcodeproj (0.14.1)
activesupport (~> 3.0)
colored (~> 1.2)
@@ -56,3 +58,4 @@ DEPENDENCIES
motion-sparkle (~> 0.0.3)
motion-stump (~> 0.3.0)
rake
+ sugarcube (~> 1.3.7)
diff --git a/Rakefile b/Rakefile
index 5052a56..a220736 100644
--- a/Rakefile
+++ b/Rakefile
@@ -24,7 +24,7 @@ Motion::Project::App.setup do |app|
app.sparkle do
release :base_url, 'https://raw.github.com/kyan/kyan_bar/master'
- release :version, '1.0.4'
+ release :version, '1.0.5'
# Optional settings
release :feed_filename, 'releases.xml'
diff --git a/app/app_delegate.rb b/app/app_delegate.rb
index 81c96b9..2ca5cfc 100644
--- a/app/app_delegate.rb
+++ b/app/app_delegate.rb
@@ -4,14 +4,14 @@ class AppDelegate
def applicationDidFinishLaunching(notification)
build_jukebox
- buildStatus
+ build_status
handle_notifications
@reconn_interval = 0.0
connect_to_websocket_server
end
- def buildStatus
+ def build_status
@status_bar_image = NSImage.imageNamed("k_logo_col_18x18")
@status_bar_image_alt = NSImage.imageNamed("k_logo_bw_18x18")
@@ -32,7 +32,7 @@ def build_preferences(sender)
end
def build_jukebox
- @jukebox ||= KyanJukebox::Notify.new([:track])
+ @jukebox ||= KyanJukebox::Notify.new([:track, :playlist])
@jukebox.json_parser = BW::JSON
end
diff --git a/app/config/constants.rb b/app/config/constants.rb
index 060c599..3dd85f0 100644
--- a/app/config/constants.rb
+++ b/app/config/constants.rb
@@ -1 +1,6 @@
-WEBSOCKET_URL = 'ws://jukebox.local:8080'
\ No newline at end of file
+WEBSOCKET_URL = 'ws://jukebox.local:8080'
+
+TRACK_TITLE=1
+TRACK_ARTIST=2
+TRACK_ARTWORK_URL=3
+TRACK_ALBUM=4
\ No newline at end of file
diff --git a/app/controllers/jukebox_view_controller.rb b/app/controllers/jukebox_view_controller.rb
deleted file mode 100644
index 7ec06eb..0000000
--- a/app/controllers/jukebox_view_controller.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-class JukeboxViewController < NSViewController
-
- def track
- "duncan"
- end
-
-end
\ No newline at end of file
diff --git a/app/lib/SRWebSocketDelegate.rb b/app/lib/SRWebSocketDelegate.rb
index 99d692c..a8298f6 100644
--- a/app/lib/SRWebSocketDelegate.rb
+++ b/app/lib/SRWebSocketDelegate.rb
@@ -1,7 +1,6 @@
class SRWebSocketDelegate
def self.webSocket(webSocket, didReceiveMessage:msg)
- puts "Message: #{msg}"
jukebox = App.shared.delegate.jukebox
jukebox.update!(msg.dataUsingEncoding(NSUTF8StringEncoding))
jukebox.notifications.each do |message|
@@ -15,13 +14,10 @@ def self.webSocket(webSocket, didReceiveMessage:msg)
end
def self.webSocketDidOpen(webSocket)
- puts "Socket connection opened!"
App.shared.delegate.reconn_interval = 0.0
end
def self.webSocket(webSocket, didFailWithError:error)
- puts "Lost Connection!!"
-
NSTimer.scheduledTimerWithTimeInterval(App.shared.delegate.reconn_interval,
target:App.shared.delegate,
selector:'reconnect_to_websocket_server',
@@ -31,6 +27,6 @@ def self.webSocket(webSocket, didFailWithError:error)
end
def self.webSocket(webSocket, didCloseWithCode:code, reason:reason, wasClean:wasClean)
- puts "Bang again!!"
+ # Bang!
end
end
\ No newline at end of file
diff --git a/app/menu.rb b/app/menu.rb
index 3b832db..ff157c6 100644
--- a/app/menu.rb
+++ b/app/menu.rb
@@ -1,15 +1,15 @@
class AppDelegate
def setupMenu
- menu = NSMenu.new
- menu.initWithTitle App.name
+ @menu = NSMenu.new
+ @menu.initWithTitle App.name
+ @jukebox = App.shared.delegate.jukebox
- # mi = NSMenuItem.new
- # @jukebox_menu = JukeboxViewController.alloc.initWithNibName("Jukebox", bundle:nil)
- # @jukebox_menu.setRepresentedObject(App.shared.delegate.jukebox)
- # mi.view = @jukebox_menu.view
- # menu.addItem mi
+ build_now_playing
+ add_seperator
- # add_seperator(menu)
+ unless jukebox.playlist.empty?
+ build_upcoming_tracks
+ end
links.each_with_index do |data, i|
m = NSMenuItem.new
@@ -17,28 +17,108 @@ def setupMenu
m.tag = i
m.setImage( NSImage.imageNamed(data.first.downcase) )
m.action = 'open_link:'
- menu.addItem m
+ @menu.addItem m
end
- add_seperator(menu)
+ build_submenu
+
+ @menu
+ end
+ private
+
+ def build_submenu
+ sub_menu = NSMenu.new
mi = NSMenuItem.new
mi.title = 'Preferences...'
mi.action = 'build_preferences:'
- menu.addItem mi
+ sub_menu.addItem mi
mi = NSMenuItem.new
mi.title = 'Check for updates...'
mi.action = 'checkForUpdates:'
mi.target = SUUpdater.new
- menu.addItem mi
+ sub_menu.addItem mi
mi = NSMenuItem.new
mi.title = 'Quit'
mi.action = 'terminate:'
- menu.addItem mi
+ sub_menu.addItem mi
+
+ add_seperator
+
+ mi = NSMenuItem.new
+ mi.title = 'Settings'
+ mi.setSubmenu(sub_menu)
+ @menu.addItem mi
+ end
- menu
+ def build_now_playing
+ @jukebox_menu = NSViewController.alloc.initWithNibName("Jukebox", bundle:nil)
+ @jukebox_view = @jukebox_menu.view
+ @jukebox_view.jukebox = @jukebox
+
+ mi = NSMenuItem.new
+ mi.view = @jukebox_view
+ @menu.addItem mi
+ end
+
+ def build_upcoming_tracks
+ @jukebox.playlist.take(3).each do |track|
+ m = NSMenuItem.new
+ m.setAttributedTitle(
+ track.title.attrd({
+ 'NSFont' => NSFont.fontWithName("Lucida Grande", size:12),
+ 'NSColor' => NSColor.blackColor
+ }) + "\n" +
+ track.artist.attrd({
+ 'NSFont' => NSFont.fontWithName("Lucida Grande", size:10),
+ 'NSColor' => NSColor.darkGrayColor
+ }) + " - " +
+ track.album.attrd({
+ 'NSFont' => NSFont.fontWithName("Lucida Grande", size:10),
+ 'NSColor' => NSColor.lightGrayColor
+ })
+ )
+ m.tag = track.dbid
+ add_menu_icon_for(m, track.artwork_url)
+
+ @menu.addItem m
+ end
+
+ add_seperator if @jukebox.playlist.any?
+ end
+
+ def add_menu_icon_for(menu, img_url)
+ image_url = if img_url.nil?
+ "http://www.appledystopia.com/wp-content/uploads/2013/03/missing-itunes-album-art-icon.png"
+ else
+ img_url
+ end
+
+ Dispatch::Queue.concurrent.async do
+ new_size = NSMakeSize(32, 32)
+ url = NSURL.URLWithString(image_url)
+ image_data = NSData.alloc.initWithContentsOfURL(url)
+ image = NSImage.alloc.initWithData(image_data)
+ image.setScalesWhenResized(true)
+
+ resized_img = NSImage.alloc.initWithSize(new_size)
+ originalSize = image.size
+
+ resized_img.lockFocus
+ image.setSize(new_size)
+ NSGraphicsContext.currentContext.setImageInterpolation(NSImageInterpolationHigh)
+ image.drawAtPoint(
+ NSZeroPoint,
+ fromRect: CGRectMake(0, 0, new_size.width, new_size.height),
+ operation: NSCompositeCopy,
+ fraction:1.0
+ )
+ resized_img.unlockFocus
+
+ menu.setImage(resized_img)
+ end
end
def open_link(sender)
@@ -46,10 +126,8 @@ def open_link(sender)
NSWorkspace.sharedWorkspace.openURL(url)
end
- private
-
- def add_seperator(menu)
- menu.addItem NSMenuItem.separatorItem
+ def add_seperator
+ @menu.addItem NSMenuItem.separatorItem
end
def links
diff --git a/app/views/jukebox_view.rb b/app/views/jukebox_view.rb
index e69de29..9a4617b 100644
--- a/app/views/jukebox_view.rb
+++ b/app/views/jukebox_view.rb
@@ -0,0 +1,48 @@
+class JukeBoxView < NSView
+
+ attr_accessor :jukebox
+
+ def viewWillDraw
+ update_title
+ update_artist
+ update_album
+ update_image
+
+ super
+ end
+
+ def track
+ jukebox.track unless jukebox.nil?
+ end
+
+ private
+
+ def update_title
+ txt = track.title.nil? ? '-' : track.title
+ viewWithTag(TRACK_TITLE).setStringValue(txt)
+ end
+
+ def update_artist
+ txt = track.artist.nil? ? '-' : track.artist
+ viewWithTag(TRACK_ARTIST).setStringValue(txt)
+ end
+
+ def update_album
+ txt = track.album.nil? ? '-' : track.album
+ viewWithTag(TRACK_ALBUM).setStringValue(txt)
+ end
+
+ def update_image
+ image_url = if jukebox.track.artwork_url.nil?
+ "http://www.appledystopia.com/wp-content/uploads/2013/03/missing-itunes-album-art-icon.png"
+ else
+ jukebox.track.artwork_url
+ end
+
+ Dispatch::Queue.concurrent.async do
+ url = NSURL.URLWithString(image_url)
+ image = NSImage.alloc.initWithContentsOfURL(url)
+ viewWithTag(TRACK_ARTWORK_URL).setImage(image)
+ end
+ end
+end
\ No newline at end of file
diff --git a/release_notes.html b/release_notes.html
index 922de0f..08297e8 100644
--- a/release_notes.html
+++ b/release_notes.html
@@ -1,7 +1,7 @@
-KyanBar - version 1.0.4
+KyanBar - version 1.0.5
-----------------------
Updates:
-* Preferences have their own Window
-* You can choose whether to recieve updates, and when
+* Current Playing Track in dropdown
+* Move Settings in dropdown
diff --git a/releases.xml b/releases.xml
index 6bef8c7..0612524 100644
--- a/releases.xml
+++ b/releases.xml
@@ -14,24 +14,25 @@
en
- Sun, 24 Nov 2013 18:49:13 +0000
+ Mon, 09 Dec 2013 13:15:03 +0000
-
- KyanBar 1.0.4
+ KyanBar 1.0.5
- Sun, 24 Nov 2013 18:49:13 +0000
+ Mon, 09 Dec 2013 13:15:03 +0000
- KyanBar-1.0.4
+ KyanBar-1.0.5
https://raw.github.com/kyan/kyan_bar/master/release_notes.html
-
+
+
diff --git a/resources/Jukebox.xib b/resources/Jukebox.xib
index 66ebf4d..87961e0 100644
--- a/resources/Jukebox.xib
+++ b/resources/Jukebox.xib
@@ -4,60 +4,48 @@
-
+
-
-
+
+
-
-
+
+
-
-
-
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
-
-
+
+
-
+
-
+
-
-
-
-
-
+
+
-
-
-
+
+
+
-
-
-
diff --git a/resources/xcode/Dummy/Dummy.xcodeproj/project.pbxproj b/resources/xcode/Dummy/Dummy.xcodeproj/project.pbxproj
deleted file mode 100644
index 99ecee5..0000000
--- a/resources/xcode/Dummy/Dummy.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,386 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- AE1FAC861843EFDF001CDEB9 /* Jukebox.xib in Resources */ = {isa = PBXBuildFile; fileRef = AE1FAC851843EFDE001CDEB9 /* Jukebox.xib */; };
- AE1FAC891843F017001CDEB9 /* JukeboxViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AE1FAC881843F017001CDEB9 /* JukeboxViewController.m */; };
- AE6856BE184003490096F02D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE6856BD184003490096F02D /* Cocoa.framework */; };
- AE6856DD184003490096F02D /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE6856DC184003490096F02D /* XCTest.framework */; };
- AE6856DE184003490096F02D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE6856BD184003490096F02D /* Cocoa.framework */; };
- AE6856F21840036F0096F02D /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = AE6856F11840036F0096F02D /* Preferences.xib */; };
- AE6856F5184003A40096F02D /* PreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = AE6856F4184003A40096F02D /* PreferencesController.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- AE6856DF184003490096F02D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = AE6856B2184003490096F02D /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = AE6856B9184003490096F02D;
- remoteInfo = Dummy;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- AE1FAC831843EF8E001CDEB9 /* Dummy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Dummy.app; sourceTree = BUILT_PRODUCTS_DIR; };
- AE1FAC841843EF8E001CDEB9 /* DummyTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DummyTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- AE1FAC851843EFDE001CDEB9 /* Jukebox.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = Jukebox.xib; path = ../../Jukebox.xib; sourceTree = ""; };
- AE1FAC871843F017001CDEB9 /* JukeboxViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JukeboxViewController.h; sourceTree = ""; };
- AE1FAC881843F017001CDEB9 /* JukeboxViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JukeboxViewController.m; sourceTree = ""; };
- AE6856BD184003490096F02D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
- AE6856C0184003490096F02D /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
- AE6856C1184003490096F02D /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
- AE6856C2184003490096F02D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- AE6856DC184003490096F02D /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
- AE6856F11840036F0096F02D /* Preferences.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = Preferences.xib; path = ../../Preferences.xib; sourceTree = ""; };
- AE6856F3184003A40096F02D /* PreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreferencesController.h; sourceTree = ""; };
- AE6856F4184003A40096F02D /* PreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreferencesController.m; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- AE6856B7184003490096F02D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AE6856BE184003490096F02D /* Cocoa.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- AE6856D8184003490096F02D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AE6856DE184003490096F02D /* Cocoa.framework in Frameworks */,
- AE6856DD184003490096F02D /* XCTest.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- AE6856B1184003490096F02D = {
- isa = PBXGroup;
- children = (
- AE1FAC871843F017001CDEB9 /* JukeboxViewController.h */,
- AE1FAC881843F017001CDEB9 /* JukeboxViewController.m */,
- AE6856F3184003A40096F02D /* PreferencesController.h */,
- AE6856F4184003A40096F02D /* PreferencesController.m */,
- AE6856F11840036F0096F02D /* Preferences.xib */,
- AE1FAC851843EFDE001CDEB9 /* Jukebox.xib */,
- AE6856BC184003490096F02D /* Frameworks */,
- AE1FAC831843EF8E001CDEB9 /* Dummy.app */,
- AE1FAC841843EF8E001CDEB9 /* DummyTests.xctest */,
- );
- sourceTree = "";
- };
- AE6856BC184003490096F02D /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AE6856BD184003490096F02D /* Cocoa.framework */,
- AE6856DC184003490096F02D /* XCTest.framework */,
- AE6856BF184003490096F02D /* Other Frameworks */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- AE6856BF184003490096F02D /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
- AE6856C0184003490096F02D /* AppKit.framework */,
- AE6856C1184003490096F02D /* CoreData.framework */,
- AE6856C2184003490096F02D /* Foundation.framework */,
- );
- name = "Other Frameworks";
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- AE6856B9184003490096F02D /* Dummy */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AE6856EB184003490096F02D /* Build configuration list for PBXNativeTarget "Dummy" */;
- buildPhases = (
- AE6856B6184003490096F02D /* Sources */,
- AE6856B7184003490096F02D /* Frameworks */,
- AE6856B8184003490096F02D /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = Dummy;
- productName = Dummy;
- productReference = AE1FAC831843EF8E001CDEB9 /* Dummy.app */;
- productType = "com.apple.product-type.application";
- };
- AE6856DA184003490096F02D /* DummyTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AE6856EE184003490096F02D /* Build configuration list for PBXNativeTarget "DummyTests" */;
- buildPhases = (
- AE6856D7184003490096F02D /* Sources */,
- AE6856D8184003490096F02D /* Frameworks */,
- AE6856D9184003490096F02D /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- AE6856E0184003490096F02D /* PBXTargetDependency */,
- );
- name = DummyTests;
- productName = DummyTests;
- productReference = AE1FAC841843EF8E001CDEB9 /* DummyTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- AE6856B2184003490096F02D /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0500;
- ORGANIZATIONNAME = Kyan.com;
- TargetAttributes = {
- AE6856DA184003490096F02D = {
- TestTargetID = AE6856B9184003490096F02D;
- };
- };
- };
- buildConfigurationList = AE6856B5184003490096F02D /* Build configuration list for PBXProject "Dummy" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = AE6856B1184003490096F02D;
- productRefGroup = AE6856B1184003490096F02D;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- AE6856B9184003490096F02D /* Dummy */,
- AE6856DA184003490096F02D /* DummyTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- AE6856B8184003490096F02D /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AE1FAC861843EFDF001CDEB9 /* Jukebox.xib in Resources */,
- AE6856F21840036F0096F02D /* Preferences.xib in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- AE6856D9184003490096F02D /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- AE6856B6184003490096F02D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AE6856F5184003A40096F02D /* PreferencesController.m in Sources */,
- AE1FAC891843F017001CDEB9 /* JukeboxViewController.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- AE6856D7184003490096F02D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- AE6856E0184003490096F02D /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = AE6856B9184003490096F02D /* Dummy */;
- targetProxy = AE6856DF184003490096F02D /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
- AE6856E9184003490096F02D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.9;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- };
- name = Debug;
- };
- AE6856EA184003490096F02D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.9;
- SDKROOT = macosx;
- };
- name = Release;
- };
- AE6856EC184003490096F02D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- COMBINE_HIDPI_IMAGES = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Dummy/Dummy-Prefix.pch";
- INFOPLIST_FILE = "Dummy/Dummy-Info.plist";
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- AE6856ED184003490096F02D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- COMBINE_HIDPI_IMAGES = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Dummy/Dummy-Prefix.pch";
- INFOPLIST_FILE = "Dummy/Dummy-Info.plist";
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
- AE6856EF184003490096F02D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Dummy.app/Contents/MacOS/Dummy";
- COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(DEVELOPER_FRAMEWORKS_DIR)",
- "$(inherited)",
- );
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Dummy/Dummy-Prefix.pch";
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- INFOPLIST_FILE = "DummyTests/DummyTests-Info.plist";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUNDLE_LOADER)";
- WRAPPER_EXTENSION = xctest;
- };
- name = Debug;
- };
- AE6856F0184003490096F02D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Dummy.app/Contents/MacOS/Dummy";
- COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(DEVELOPER_FRAMEWORKS_DIR)",
- "$(inherited)",
- );
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Dummy/Dummy-Prefix.pch";
- INFOPLIST_FILE = "DummyTests/DummyTests-Info.plist";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUNDLE_LOADER)";
- WRAPPER_EXTENSION = xctest;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- AE6856B5184003490096F02D /* Build configuration list for PBXProject "Dummy" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AE6856E9184003490096F02D /* Debug */,
- AE6856EA184003490096F02D /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- AE6856EB184003490096F02D /* Build configuration list for PBXNativeTarget "Dummy" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AE6856EC184003490096F02D /* Debug */,
- AE6856ED184003490096F02D /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- AE6856EE184003490096F02D /* Build configuration list for PBXNativeTarget "DummyTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AE6856EF184003490096F02D /* Debug */,
- AE6856F0184003490096F02D /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = AE6856B2184003490096F02D /* Project object */;
-}
diff --git a/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 336b2bc..0000000
--- a/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/xcshareddata/Dummy.xccheckout b/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/xcshareddata/Dummy.xccheckout
deleted file mode 100644
index 81d7384..0000000
--- a/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/xcshareddata/Dummy.xccheckout
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
- IDESourceControlProjectFavoriteDictionaryKey
-
- IDESourceControlProjectIdentifier
- EC8BEE02-CD78-42B1-A265-242D56E21554
- IDESourceControlProjectName
- Dummy
- IDESourceControlProjectOriginsDictionary
-
- E39FA110-A2D0-4E9C-A35E-80D8569A3484
- ssh://github.com/kyan/kyan_bar.git
-
- IDESourceControlProjectPath
- resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace
- IDESourceControlProjectRelativeInstallPathDictionary
-
- E39FA110-A2D0-4E9C-A35E-80D8569A3484
- ../../../../..
-
- IDESourceControlProjectURL
- ssh://github.com/kyan/kyan_bar.git
- IDESourceControlProjectVersion
- 110
- IDESourceControlProjectWCCIdentifier
- E39FA110-A2D0-4E9C-A35E-80D8569A3484
- IDESourceControlProjectWCConfigurations
-
-
- IDESourceControlRepositoryExtensionIdentifierKey
- public.vcs.git
- IDESourceControlWCCIdentifierKey
- E39FA110-A2D0-4E9C-A35E-80D8569A3484
- IDESourceControlWCCName
- KyanBar
-
-
-
-
diff --git a/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/xcuserdata/duncan.xcuserdatad/UserInterfaceState.xcuserstate b/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/xcuserdata/duncan.xcuserdatad/UserInterfaceState.xcuserstate
deleted file mode 100644
index b819772..0000000
Binary files a/resources/xcode/Dummy/Dummy.xcodeproj/project.xcworkspace/xcuserdata/duncan.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
diff --git a/resources/xcode/Dummy/Dummy.xcodeproj/xcuserdata/duncan.xcuserdatad/xcschemes/Dummy.xcscheme b/resources/xcode/Dummy/Dummy.xcodeproj/xcuserdata/duncan.xcuserdatad/xcschemes/Dummy.xcscheme
deleted file mode 100644
index 9803cd7..0000000
--- a/resources/xcode/Dummy/Dummy.xcodeproj/xcuserdata/duncan.xcuserdatad/xcschemes/Dummy.xcscheme
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/resources/xcode/Dummy/Dummy.xcodeproj/xcuserdata/duncan.xcuserdatad/xcschemes/xcschememanagement.plist b/resources/xcode/Dummy/Dummy.xcodeproj/xcuserdata/duncan.xcuserdatad/xcschemes/xcschememanagement.plist
deleted file mode 100644
index 822f042..0000000
--- a/resources/xcode/Dummy/Dummy.xcodeproj/xcuserdata/duncan.xcuserdatad/xcschemes/xcschememanagement.plist
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- SchemeUserState
-
- Dummy.xcscheme
-
- orderHint
- 0
-
-
- SuppressBuildableAutocreation
-
- AE6856B9184003490096F02D
-
- primary
-
-
- AE6856DA184003490096F02D
-
- primary
-
-
-
-
-
diff --git a/resources/xcode/Dummy/JukeboxViewController.h b/resources/xcode/Dummy/JukeboxViewController.h
deleted file mode 100644
index 2ee68cd..0000000
--- a/resources/xcode/Dummy/JukeboxViewController.h
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-// JukeboxViewController.h
-// Dummy
-//
-// Created by Duncan Robertson on 25/11/2013.
-// Copyright (c) 2013 Kyan.com. All rights reserved.
-//
-
-#import
-
-@interface JukeboxViewController : NSViewController
-
-IBAction artist;
-IBAction title;
-
-@end
diff --git a/resources/xcode/Dummy/JukeboxViewController.m b/resources/xcode/Dummy/JukeboxViewController.m
deleted file mode 100644
index cb87a35..0000000
--- a/resources/xcode/Dummy/JukeboxViewController.m
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// JukeboxViewController.m
-// Dummy
-//
-// Created by Duncan Robertson on 25/11/2013.
-// Copyright (c) 2013 Kyan.com. All rights reserved.
-//
-
-#import "JukeboxViewController.h"
-
-@interface JukeboxViewController ()
-
-@end
-
-@implementation JukeboxViewController
-
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Initialization code here.
- }
- return self;
-}
-
-@end
diff --git a/resources/xcode/Dummy/PreferencesController.h b/resources/xcode/Dummy/PreferencesController.h
deleted file mode 100644
index 0871f26..0000000
--- a/resources/xcode/Dummy/PreferencesController.h
+++ /dev/null
@@ -1,13 +0,0 @@
-//
-// PreferencesController.h
-// Dummy
-//
-// Created by Duncan Robertson on 22/11/2013.
-// Copyright (c) 2013 Kyan.com. All rights reserved.
-//
-
-#import
-
-@interface PreferencesController : NSWindowController
-
-@end
diff --git a/resources/xcode/Dummy/PreferencesController.m b/resources/xcode/Dummy/PreferencesController.m
deleted file mode 100644
index 8591be2..0000000
--- a/resources/xcode/Dummy/PreferencesController.m
+++ /dev/null
@@ -1,33 +0,0 @@
-//
-// PreferencesController.m
-// Dummy
-//
-// Created by Duncan Robertson on 22/11/2013.
-// Copyright (c) 2013 Kyan.com. All rights reserved.
-//
-
-#import "PreferencesController.h"
-
-@interface PreferencesController ()
-
-@end
-
-@implementation PreferencesController
-
-- (id)initWithWindow:(NSWindow *)window
-{
- self = [super initWithWindow:window];
- if (self) {
- // Initialization code here.
- }
- return self;
-}
-
-- (void)windowDidLoad
-{
- [super windowDidLoad];
-
- // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
-}
-
-@end