aboutsummaryrefslogtreecommitdiffstats
path: root/DomeKey.xcodeproj/xcuserdata
diff options
context:
space:
mode:
authorTeddy Wing2018-08-16 05:26:40 +0200
committerTeddy Wing2018-08-16 06:55:02 +0200
commitb298df219eb007ea11e6c14a332fd3f4924ff7d2 (patch)
tree05030eb3c9d39b03a90c3fc26bced7fb1df67576 /DomeKey.xcodeproj/xcuserdata
parenta74ee6a73ad437725557b05a304041337bb2ff31 (diff)
downloadDomeKey-b298df219eb007ea11e6c14a332fd3f4924ff7d2.tar.bz2
Use an `NSApplication`
Previously the `setListenInExclusiveMode:` call did appear to work, disabling the normal functioning of the headphone buttons. But my `NSLog`s in `ddhidAppleMikey:press:upOrDown:` didn't get printed, the method having not been called. Since all the other applications I found using DDHidLib were GUI apps using `NSApplication`, I decided to take this approach here. Set up the `NSApplication` in `main.c` and added a new `AppDelegate` class. It seems like the reference to my `HeadphoneKey` instance wasn't getting retained or something. When I moved the: HeadphoneKey *h = [[HeadphoneKey alloc] init]; line into `AppDelegate`'s `applicationDidFinishLaunching:`, nothing changed. However, when I moved all code from `HeadphoneKey` into `AppDelegate`, my `ddhidAppleMikey:press:upOrDown:` method _did_ get called. At that point, it was logical to try adding a `HeadphoneKey` instance variable and `init`ing into that variable. As a result, we now have a working `ddhidAppleMikey:press:upOrDown:` delegate method that correctly logs the headphone key events! Here are the reference applications I looked at using DDHidLib, found using a simple GitHub search: - https://github.com/radiant-player/radiant-player-mac/pull/450/files - https://github.com/7hil/mac_ear_control/blob/8859ed554517ce798b8ae7c2d0e78610b9994300/mac_ear_control/AppDelegate.m - https://github.com/7hil/mac_ear_control/blob/8859ed554517ce798b8ae7c2d0e78610b9994300/mac_ear_control/AppDelegate.m - https://github.com/schrekia/beardedspice-enhanced/blob/a9b78c0dbae6bca2cb0d2ecc362e4b7fe5b02129/BeardedSpiceControllers/BSCService.m - https://github.com/beardedspice/beardedspice/blob/8e1aea5bda68395e6b0d866bca9289a2a5ba40ed/BeardedSpiceControllers/BSCService.m - https://github.com/beardedspice/beardedspice/blob/8e1aea5bda68395e6b0d866bca9289a2a5ba40ed/BeardedSpiceControllers/BSCService.m - https://github.com/BarakaAka1Only/radiant-player-mac-BarakaLyrics/blob/1ce889bbb80f081209aff7936a329a3b426462e9/radiant-player-mac/AppDelegate.m - https://github.com/zsszatmari/MagicKeys/blob/210015d5da876cd7bb1daf73efa3c775c18e7973/MagicKeys-Agent/SPMediaKeyTap.m Thanks immensely this Cocoa With Love article from Matt Gallagher, which was invaluable in showing me how to create a minimal Cocoa application without needing a nib, Info.plist, or even application bundle (instead putting everything in a single executable, making it easier to distribute this as a command-line application with a built-in daemon): https://www.cocoawithlove.com/2010/09/minimalist-cocoa-programming.html
Diffstat (limited to 'DomeKey.xcodeproj/xcuserdata')
-rw-r--r--DomeKey.xcodeproj/xcuserdata/tw.xcuserdatad/xcschemes/xcschememanagement.plist2
1 files changed, 1 insertions, 1 deletions
diff --git a/DomeKey.xcodeproj/xcuserdata/tw.xcuserdatad/xcschemes/xcschememanagement.plist b/DomeKey.xcodeproj/xcuserdata/tw.xcuserdatad/xcschemes/xcschememanagement.plist
index 1112607..424ba24 100644
--- a/DomeKey.xcodeproj/xcuserdata/tw.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/DomeKey.xcodeproj/xcuserdata/tw.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -7,7 +7,7 @@
<key>DomeKey.xcscheme</key>
<dict>
<key>orderHint</key>
- <integer>1</integer>
+ <integer>0</integer>
</dict>
</dict>
</dict>