summaryrefslogtreecommitdiff
path: root/MediaRemote.h
diff options
context:
space:
mode:
Diffstat (limited to 'MediaRemote.h')
-rw-r--r--MediaRemote.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/MediaRemote.h b/MediaRemote.h
new file mode 100644
index 0000000..9b3a32f
--- /dev/null
+++ b/MediaRemote.h
@@ -0,0 +1,119 @@
+/*
+ * Media remote framework header.
+ *
+ * Copyright (c) 2013-2014 Cykey (David Murray)
+ * All rights reserved.
+ */
+
+#ifndef MEDIAREMOTE_H_
+#define MEDIAREMOTE_H_
+
+#include <CoreFoundation/CoreFoundation.h>
+
+#if __cplusplus
+extern "C" {
+#endif
+
+#pragma mark - Notifications
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteNowPlayingPlaybackQueueDidChangeNotification;
+ extern CFStringRef kMRMediaRemotePickableRoutesDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationIsPlayingDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteRouteStatusDidChangeNotification;
+#pragma mark - Keys
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationPIDUserInfoKey;
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationIsPlayingUserInfoKey;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoAlbum;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoArtist;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoArtworkData;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoArtworkMIMEType;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoChapterNumber;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoComposer;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoDuration;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoElapsedTime;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoGenre;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsAdvertisement;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsBanned;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsInWishList;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsLiked;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsMusicApp;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoPlaybackRate;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoProhibitsSkip;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoQueueIndex;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRadioStationIdentifier;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRepeatMode;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoShuffleMode;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoStartTime;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsFastForward15Seconds;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsIsBanned;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsIsLiked;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsRewind15Seconds;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTimestamp;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTitle;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalChapterCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalDiscCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalQueueCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalTrackCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTrackNumber;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoUniqueIdentifier;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRadioStationIdentifier;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRadioStationHash;
+ extern CFStringRef kMRMediaRemoteOptionMediaType;
+ extern CFStringRef kMRMediaRemoteOptionSourceID;
+ extern CFStringRef kMRMediaRemoteOptionTrackID;
+ extern CFStringRef kMRMediaRemoteOptionStationID;
+ extern CFStringRef kMRMediaRemoteOptionStationHash;
+ extern CFStringRef kMRMediaRemoteRouteDescriptionUserInfoKey;
+ extern CFStringRef kMRMediaRemoteRouteStatusUserInfoKey;
+#pragma mark - API
+ typedef enum {
+ kMRPlay = 0,
+ kMRPause = 1,
+ kMRTogglePlayPause = 2,
+ kMRStop = 3,
+ kMRNextTrack = 4,
+ kMRPreviousTrack = 5,
+ kMRToggleShuffle = 6,
+ kMRToggleRepeat = 7,
+ kMRStartForwardSeek = 8,
+ kMREndForwardSeek = 9,
+ kMRStartBackwardSeek = 10,
+ kMREndBackwardSeek = 11,
+ kMRGoBackFifteenSeconds = 12,
+ kMRSkipFifteenSeconds = 13,
+ kMRLikeTrack = 0x6A,
+ kMRBanTrack = 0x6B,
+ kMRAddTrackToWishList = 0x6C,
+ kMRRemoveTrackFromWishList = 0x6D
+ } MRCommand;
+ Boolean MRMediaRemoteSendCommand(MRCommand command, id userInfo);
+ void MRMediaRemoteSetPlaybackSpeed(int speed);
+ void MRMediaRemoteSetElapsedTime(double elapsedTime);
+ void MRMediaRemoteSetNowPlayingApplicationOverrideEnabled(Boolean enabled);
+ void MRMediaRemoteRegisterForNowPlayingNotifications(dispatch_queue_t queue);
+ void MRMediaRemoteUnregisterForNowPlayingNotifications();
+ void MRMediaRemoteBeginRouteDiscovery();
+ void MRMediaRemoteEndRouteDiscovery();
+ CFArrayRef MRMediaRemoteCopyPickableRoutes();
+ typedef void (^MRMediaRemoteGetNowPlayingInfoCompletion)(CFDictionaryRef information);
+ typedef void (^MRMediaRemoteGetNowPlayingApplicationPIDCompletion)(int PID);
+ typedef void (^MRMediaRemoteGetNowPlayingApplicationIsPlayingCompletion)(Boolean isPlaying);
+ void MRMediaRemoteGetNowPlayingApplicationPID(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingApplicationPIDCompletion completion);
+ void MRMediaRemoteGetNowPlayingInfo(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingInfoCompletion completion);
+ void MRMediaRemoteGetNowPlayingApplicationIsPlaying(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingApplicationIsPlayingCompletion completion);
+ void MRMediaRemoteKeepAlive();
+ void MRMediaRemoteSetElapsedTime(double time);
+ void MRMediaRemoteSetShuffleMode(int mode);
+ void MRMediaRemoteSetRepeatMode(int mode);
+ int MRMediaRemoteSelectSourceWithID(CFStringRef identifier);
+ void MRMediaRemoteSetPickedRouteWithPassword(CFStringRef route, CFStringRef password);
+ CFArrayRef MRMediaRemoteCopyPickableRoutesForCategory(NSString *category);
+ Boolean MRMediaRemotePickedRouteHasVolumeControl();
+ void MRMediaRemoteSetCanBeNowPlayingApplication(Boolean can);
+ void MRMediaRemoteSetNowPlayingInfo(CFDictionaryRef information);
+#if __cplusplus
+}
+#endif
+
+#endif \ No newline at end of file