diff --git a/ios/RNTritonPlayer.xcodeproj/project.pbxproj b/ios/RNTritonPlayer.xcodeproj/project.pbxproj index b0ad723..b425191 100644 --- a/ios/RNTritonPlayer.xcodeproj/project.pbxproj +++ b/ios/RNTritonPlayer.xcodeproj/project.pbxproj @@ -13,7 +13,6 @@ D354122022065F73007B20F2 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D354121F22065F73007B20F2 /* AVFoundation.framework */; }; D354122222065F7E007B20F2 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D354122122065F7E007B20F2 /* MediaPlayer.framework */; }; D354122422065F86007B20F2 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D354122322065F86007B20F2 /* CoreMedia.framework */; }; - D354137E2207656C007B20F2 /* TritonPlayerSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D354137D2207656B007B20F2 /* TritonPlayerSDK.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -154,23 +153,6 @@ D354122322065F86007B20F2 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; D354122522066155007B20F2 /* TritonPlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TritonPlayerSDK.framework; path = "../../../Downloads/triton-ios-sdk-2.5.1.138/TritonPlayerSDK.framework"; sourceTree = ""; }; D35412292206638B007B20F2 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - D354136D22076559007B20F2 /* TDAnalyticsTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAnalyticsTracker.h; sourceTree = ""; }; - D354136E22076559007B20F2 /* TDAdLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAdLoader.h; sourceTree = ""; }; - D354136F22076559007B20F2 /* TritonPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TritonPlayer.h; sourceTree = ""; }; - D354137022076559007B20F2 /* TDInterstitialAd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDInterstitialAd.h; sourceTree = ""; }; - D354137122076559007B20F2 /* TDInterstitialAdDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDInterstitialAdDelegate.h; sourceTree = ""; }; - D354137222076559007B20F2 /* TDCompanionBanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDCompanionBanner.h; sourceTree = ""; }; - D354137322076559007B20F2 /* TDSBMPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDSBMPlayer.h; sourceTree = ""; }; - D354137422076559007B20F2 /* TDSyncBannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDSyncBannerView.h; sourceTree = ""; }; - D354137522076559007B20F2 /* TDBannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDBannerView.h; sourceTree = ""; }; - D354137622076559007B20F2 /* CuePointEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CuePointEvent.h; sourceTree = ""; }; - D35413772207655A007B20F2 /* TDBannerViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDBannerViewDelegate.h; sourceTree = ""; }; - D35413782207655A007B20F2 /* TDAd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAd.h; sourceTree = ""; }; - D35413792207655A007B20F2 /* TritonPlayerSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TritonPlayerSDK.h; sourceTree = ""; }; - D354137A2207655A007B20F2 /* TDAdRequestURLBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAdRequestURLBuilder.h; sourceTree = ""; }; - D354137B2207655A007B20F2 /* TDAuthUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAuthUtils.h; sourceTree = ""; }; - D354137C2207655A007B20F2 /* TDCuePointHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDCuePointHistory.h; sourceTree = ""; }; - D354137D2207656B007B20F2 /* TritonPlayerSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = TritonPlayerSDK.a; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -180,7 +162,6 @@ files = ( D354122422065F86007B20F2 /* CoreMedia.framework in Frameworks */, D354122222065F7E007B20F2 /* MediaPlayer.framework in Frameworks */, - D354137E2207656C007B20F2 /* TritonPlayerSDK.a in Frameworks */, D354122022065F73007B20F2 /* AVFoundation.framework in Frameworks */, D354121E22065F6B007B20F2 /* AdSupport.framework in Frameworks */, D354121C22065F62007B20F2 /* SystemConfiguration.framework in Frameworks */, @@ -201,7 +182,6 @@ 58B511D21A9E6C8500147676 = { isa = PBXGroup; children = ( - D354136C22076538007B20F2 /* TritonPlayerSDK */, B3E7B5881CC2AC0600A0062D /* RNTritonPlayer.h */, B3E7B5891CC2AC0600A0062D /* RNTritonPlayer.m */, 134814211AA4EA7D00B7C361 /* Products */, @@ -246,30 +226,6 @@ name = Products; sourceTree = ""; }; - D354136C22076538007B20F2 /* TritonPlayerSDK */ = { - isa = PBXGroup; - children = ( - D354137D2207656B007B20F2 /* TritonPlayerSDK.a */, - D354137622076559007B20F2 /* CuePointEvent.h */, - D35413782207655A007B20F2 /* TDAd.h */, - D354136E22076559007B20F2 /* TDAdLoader.h */, - D354137A2207655A007B20F2 /* TDAdRequestURLBuilder.h */, - D354136D22076559007B20F2 /* TDAnalyticsTracker.h */, - D354137B2207655A007B20F2 /* TDAuthUtils.h */, - D354137522076559007B20F2 /* TDBannerView.h */, - D35413772207655A007B20F2 /* TDBannerViewDelegate.h */, - D354137222076559007B20F2 /* TDCompanionBanner.h */, - D354137C2207655A007B20F2 /* TDCuePointHistory.h */, - D354137022076559007B20F2 /* TDInterstitialAd.h */, - D354137122076559007B20F2 /* TDInterstitialAdDelegate.h */, - D354137322076559007B20F2 /* TDSBMPlayer.h */, - D354137422076559007B20F2 /* TDSyncBannerView.h */, - D354136F22076559007B20F2 /* TritonPlayer.h */, - D35413792207655A007B20F2 /* TritonPlayerSDK.h */, - ); - path = TritonPlayerSDK; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ diff --git a/ios/TritonPlayerSDK/CuePointEvent.h b/ios/TritonPlayerSDK.framework/Headers/CuePointEvent.h similarity index 100% rename from ios/TritonPlayerSDK/CuePointEvent.h rename to ios/TritonPlayerSDK.framework/Headers/CuePointEvent.h diff --git a/ios/TritonPlayerSDK/TDAd.h b/ios/TritonPlayerSDK.framework/Headers/TDAd.h similarity index 100% rename from ios/TritonPlayerSDK/TDAd.h rename to ios/TritonPlayerSDK.framework/Headers/TDAd.h diff --git a/ios/TritonPlayerSDK/TDAdLoader.h b/ios/TritonPlayerSDK.framework/Headers/TDAdLoader.h similarity index 100% rename from ios/TritonPlayerSDK/TDAdLoader.h rename to ios/TritonPlayerSDK.framework/Headers/TDAdLoader.h diff --git a/ios/TritonPlayerSDK/TDAdRequestURLBuilder.h b/ios/TritonPlayerSDK.framework/Headers/TDAdRequestURLBuilder.h similarity index 100% rename from ios/TritonPlayerSDK/TDAdRequestURLBuilder.h rename to ios/TritonPlayerSDK.framework/Headers/TDAdRequestURLBuilder.h diff --git a/ios/TritonPlayerSDK/TDAnalyticsTracker.h b/ios/TritonPlayerSDK.framework/Headers/TDAnalyticsTracker.h similarity index 100% rename from ios/TritonPlayerSDK/TDAnalyticsTracker.h rename to ios/TritonPlayerSDK.framework/Headers/TDAnalyticsTracker.h diff --git a/ios/TritonPlayerSDK/TDAuthUtils.h b/ios/TritonPlayerSDK.framework/Headers/TDAuthUtils.h similarity index 100% rename from ios/TritonPlayerSDK/TDAuthUtils.h rename to ios/TritonPlayerSDK.framework/Headers/TDAuthUtils.h diff --git a/ios/TritonPlayerSDK/TDBannerView.h b/ios/TritonPlayerSDK.framework/Headers/TDBannerView.h similarity index 100% rename from ios/TritonPlayerSDK/TDBannerView.h rename to ios/TritonPlayerSDK.framework/Headers/TDBannerView.h diff --git a/ios/TritonPlayerSDK/TDBannerViewDelegate.h b/ios/TritonPlayerSDK.framework/Headers/TDBannerViewDelegate.h similarity index 100% rename from ios/TritonPlayerSDK/TDBannerViewDelegate.h rename to ios/TritonPlayerSDK.framework/Headers/TDBannerViewDelegate.h diff --git a/ios/TritonPlayerSDK/TDCompanionBanner.h b/ios/TritonPlayerSDK.framework/Headers/TDCompanionBanner.h similarity index 100% rename from ios/TritonPlayerSDK/TDCompanionBanner.h rename to ios/TritonPlayerSDK.framework/Headers/TDCompanionBanner.h diff --git a/ios/TritonPlayerSDK/TDCuePointHistory.h b/ios/TritonPlayerSDK.framework/Headers/TDCuePointHistory.h similarity index 100% rename from ios/TritonPlayerSDK/TDCuePointHistory.h rename to ios/TritonPlayerSDK.framework/Headers/TDCuePointHistory.h diff --git a/ios/TritonPlayerSDK/TDInterstitialAd.h b/ios/TritonPlayerSDK.framework/Headers/TDInterstitialAd.h similarity index 100% rename from ios/TritonPlayerSDK/TDInterstitialAd.h rename to ios/TritonPlayerSDK.framework/Headers/TDInterstitialAd.h diff --git a/ios/TritonPlayerSDK/TDInterstitialAdDelegate.h b/ios/TritonPlayerSDK.framework/Headers/TDInterstitialAdDelegate.h similarity index 100% rename from ios/TritonPlayerSDK/TDInterstitialAdDelegate.h rename to ios/TritonPlayerSDK.framework/Headers/TDInterstitialAdDelegate.h diff --git a/ios/TritonPlayerSDK/TDSBMPlayer.h b/ios/TritonPlayerSDK.framework/Headers/TDSBMPlayer.h similarity index 100% rename from ios/TritonPlayerSDK/TDSBMPlayer.h rename to ios/TritonPlayerSDK.framework/Headers/TDSBMPlayer.h diff --git a/ios/TritonPlayerSDK/TDSyncBannerView.h b/ios/TritonPlayerSDK.framework/Headers/TDSyncBannerView.h similarity index 100% rename from ios/TritonPlayerSDK/TDSyncBannerView.h rename to ios/TritonPlayerSDK.framework/Headers/TDSyncBannerView.h diff --git a/ios/TritonPlayerSDK/TritonPlayer.h b/ios/TritonPlayerSDK.framework/Headers/TritonPlayer.h similarity index 100% rename from ios/TritonPlayerSDK/TritonPlayer.h rename to ios/TritonPlayerSDK.framework/Headers/TritonPlayer.h diff --git a/ios/TritonPlayerSDK.framework/Headers/TritonPlayerSDK.h b/ios/TritonPlayerSDK.framework/Headers/TritonPlayerSDK.h new file mode 100644 index 0000000..298c3de --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Headers/TritonPlayerSDK.h @@ -0,0 +1,33 @@ +// +// TritonPlayerSDK.h +// TritonPlayer +// +// Copyright 2014 Triton Digital. All rights reserved. +// + +#ifndef TritonPlayerSDK_TritonPlayerSDK_h +#define TritonPlayerSDK_TritonPlayerSDK_h + +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import + +#endif + +/** This is the library header. Import this file to import all of the public types in Triton Player Framework. + + */ diff --git a/ios/TritonPlayerSDK.framework/TritonPlayerSDK b/ios/TritonPlayerSDK.framework/TritonPlayerSDK new file mode 100644 index 0000000..2b5827d Binary files /dev/null and b/ios/TritonPlayerSDK.framework/TritonPlayerSDK differ diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/CuePointEvent.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/CuePointEvent.h new file mode 100644 index 0000000..37b1cad --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/CuePointEvent.h @@ -0,0 +1,135 @@ +// +// CuePointEvent.h +// TritonPlayer +// +// Copyright 2014 Triton Digital. All rights reserved. +// + +#import + +// STR_CUE_TYPE values +extern NSString *const EventTypeAd; +extern NSString *const EventTypeAudio; +extern NSString *const EventTypeCustom; +extern NSString *const EventTypeProfanity; +extern NSString *const EventTypeRecording; +extern NSString *const EventTypeSidekick; +extern NSString *const EventTypeSpeech; +extern NSString *const EventTypeSweeper; +extern NSString *const EventTypeTrack; +extern NSString *const EventTypeUnknown; + +// -------------------------------------------------------------------------------------------- +// Common +// -------------------------------------------------------------------------------------------- +extern NSString *const CommonCueDisplayKey; +extern NSString *const CommonCueTimeDurationKey; +extern NSString *const CommonCueTimeStartKey; +extern NSString *const CommonCueTitleKey; +extern NSString *const CommonCueTypeKey; + +extern NSString *const CommonProgramTimeDurationKey; +extern NSString *const CommonProgramTimeStartKey; +extern NSString *const CommonProgramGuestNIdKey; +extern NSString *const CommonProgramGuestNNameKey; +extern NSString *const CommonProgramHostNIdKey; +extern NSString *const CommonProgramHostNNameKey; +extern NSString *const CommonProgramIdKey; +extern NSString *const CommonProgramTitleKey; +extern NSString *const CommonProgramGuestNHomepageKey; +extern NSString *const CommonProgramGuestNPictureURLKey; +extern NSString *const CommonProgramHomepageKey; +extern NSString *const CommonProgramHostNHomepage; +extern NSString *const CommonProgramHostPictureURLKey; +extern NSString *const CommonProgramImageKey; + +// -------------------------------------------------------------------------------------------- +// Ad +// -------------------------------------------------------------------------------------------- +extern NSString *const AdReplaceKey; +extern NSString *const AdIdKey; +extern NSString *const AdTypeKey; +extern NSString *const AdVastKey; +extern NSString *const AdVastURLKey; +extern NSString *const AdURLKey; +extern NSString *const AdURL1Key; +extern NSString *const AdURL2Key; +extern NSString *const AdURL3Key; +extern NSString *const AdURL4Key; + +// -------------------------------------------------------------------------------------------- +// Sweeper +// -------------------------------------------------------------------------------------------- +extern NSString *const SweeperIdKey; +extern NSString *const SweeperTypeKey; + + +// -------------------------------------------------------------------------------------------- +// Track +// -------------------------------------------------------------------------------------------- +extern NSString *const TrackGenreKey; +extern NSString *const TrackAlbumNameKey; +extern NSString *const TrackAlbumPublisherKey; +extern NSString *const TrackAlbumYearKey; +extern NSString *const TrackArtistNameKey; +extern NSString *const TrackFormatKey; +extern NSString *const TrackIdKey; +extern NSString *const TrackIsrcKey; +extern NSString *const TrackCoverURLKey; +extern NSString *const TrackNowPlayingURLKey; +extern NSString *const TrackProductURLKey; + +// -------------------------------------------------------------------------------------------- +// Deprecated +// -------------------------------------------------------------------------------------------- +extern NSString *const LegacyTypeKey; +extern NSString *const LegacyAdImageURLKey; +extern NSString *const LegacyBuyURLKey; + +@class CuePointEventController; + +/** + * CuePointEvent stores all the information about cue points received from the server (ads, track information etc.). + * For more details, see *STWCue_Metadata_Dictionary.pdf* + */ +@interface CuePointEvent : NSObject + +/// @name Cue Point Properties + +/// Timestamp The *timestamp* in which the cuepoint event should be executed. +@property (readonly, nonatomic) NSTimeInterval timestamp; + +/// Contains all cue point data, which can be accessed by the constants declare in CuePointEvent.h. +@property (readonly, strong) NSDictionary *data; + +/// The type of the cue point. Refer to *STWCue_Metadata_Dictionary.pdf* for available types. The constants for each available type is defined in CuePointEvent.h. +@property (readonly, strong) NSString *type; + +/// Tells whether the execution of the cue point was canceled. +@property (readonly, assign) BOOL executionCanceled; + +/// @name Creating a CuePointEvent + +/** + * Initializes a CuePoitEvent object. This is the designated initializer. + * + * @param inAMFData Dictionary containing *data* in AMF format. + * @param inTimestamp The *timestamp* in which the cuepoint event should be executed. + * + * @return The newly-initialized CuePointEvent object + */ + +-(instancetype)initEventWithAMFObjectData:(NSDictionary *)inAMFData andTimestamp:(NSTimeInterval)inTimestamp; + +/** + * Initializes a CuePoitEvent object. + * + * @param data Dictionary containing *data* in AMF format. + * @param timestamp The *timestamp* in which the cuepoint event should be executed. + * + * @return The newly-initialized CuePointEvent object + */ + +-(instancetype)initWithData:(NSDictionary *)data andTimestamp:(NSTimeInterval)timestamp; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAd.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAd.h new file mode 100644 index 0000000..3c4b714 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAd.h @@ -0,0 +1,77 @@ +// +// TDAd.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import + +@class TDCompanionBanner; + +/** + * TDAd represents a Triton ad in the SDK. It contains information about all supported ads (in-stream/on-demand, audio/banner/video). + * + * Usually TDAd is used as an output of TDAdLoader and as input of TDBannerView and TDInterstitialAd and its details don't need to be known. However, + * when the application is rendering the ads by itself, it must inspect its attributes and methods. + */ + +@interface TDAd : NSObject + +/// @name General properties + +/// The urls that need to be called for generating an ad impression +@property (nonatomic, strong) NSArray *mediaImpressionURLs; + +/// The type of the linear media as a MIME-type (usually audio or video) +@property (nonatomic, strong) NSString *mediaMIMEType; + + +/// The format of the ad. VAST or DAAST +@property (nonatomic, strong) NSString *format; + + +/// The url of the linear media +@property (nonatomic, strong) NSURL *mediaURL; + +/// @name Banner ads + +/// An array of TDCompanionBanner objects for each banner available in the ad +@property (nonatomic, strong) NSArray *companionBanners; + +/// @name Video interstitials + +/// The width of the video +@property (nonatomic, assign) NSInteger videoWidth; + +/// The height of the video +@property (nonatomic, assign) NSInteger videoHeight; + +/// The url that the app must be redirected when the user clicks in a video ad +@property (nonatomic, strong) NSURL *videoClickThroughURL; + +/// The list of urls that must be called to track the user clicking in a video ad +@property (nonatomic, strong) NSArray *clickTrackingURLs; + +/// @name Helper methods + +/** + * Returns the companion banner in the receiver's companion banners list that approximates most the desired width and height. + * + * @param width the desired width of the banner + * @param height the desired height of the banner + * @return A TDCompanionBanner that is the best match for the desired width and height. + */ + +-(TDCompanionBanner*)bestCompanionBannerForWidth:(NSInteger)width andHeight:(NSInteger)height; + +/** + * Tracks asynchronously all the media impressions URL for the ad. Useful when you are rendering your ads with custom UI. + */ +-(void)trackMediaImpressions; + +/** + * Tracks asynchronously all the video click URLs for the ad. Useful when you are rendering your ads with custom UI. + */ +-(void)trackVideoClick; +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAdLoader.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAdLoader.h new file mode 100644 index 0000000..8e3d3c5 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAdLoader.h @@ -0,0 +1,67 @@ +// +// TDAdLoader.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/// Represents Triton Mobile SDk generated error codes +extern NSString *const TDErrorDomain; + +/// The error codes that can be returned when using ad functionality. +typedef NS_ENUM(NSInteger, TDAdErrorCode) { + /// A network error occurred while requesting the ad + TDErrorCodeInvalidRequest = 101, + + /// The width and height of the ad was not specified + TDErrorCodeUndefinedSize = 102, + + /// There's no ad to be displayed for the request + TDErrorCodeNoInventory = 103, + + /// The ad request or media url is malformed + TDErrorCodeInvalidAdURL = 104, + + /// Unable to parse the response + TDErrorCodeResponseParsingFailed = 105 +}; + +@class TDAd; +@class TDAdRequestURLBuilder; + +/** + * TDAdLoader loads a Triton ad from an ad request. + * + * The ad returned is represented by a TDAd object and contains all the information needed to display and manage an ad. The ad returned can be + * presented using custom application UI or it can be passed directly to TDBannerView or TDInterstitialAd for display. + * + */ + +@interface TDAdLoader : NSObject + +/// @name Creating a TDAdLoader + +/** + * Loads an ad asynchronously from a request string. The string can be built manually by following Triton Digital On-Demand advertising guide or + * by the help of TDAdRequestURLBuilder class (recommended). + * + * @param request A NSString containing the request with the targeting parameters. + * @param completionHandler a block that will execute when the request is finished, with the ad loaded or an error object. + */ + +- (void)loadAdWithStringRequest:(NSString*)request + completionHandler:(void (^) (TDAd *loadedAd, NSError *error))completionHandler; + +/** + * Loads an ad asynchronously directly from a TDAdRequestURLBuilder. + * + * @param builder A TDAdRequestURLBuilder containing the request with the targeting parameters. + * @param completionHandler a block that will execute when the request is finished, with the ad loaded or an error object. + */ + +- (void)loadAdWithBuilder:(TDAdRequestURLBuilder*)builder + completionHandler:(void (^) (TDAd *loadedAd, NSError *error))completionHandler; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAdRequestURLBuilder.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAdRequestURLBuilder.h new file mode 100644 index 0000000..c4a4c12 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAdRequestURLBuilder.h @@ -0,0 +1,250 @@ +// +// TDAdRequestURLBuilder.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import + +/// The different gender parameters that can be used for targeting +typedef NS_ENUM(NSInteger, TDGender) { + /// The gender was not specified + kTDGenderNotDefined, + + /// Gender is female + kTDGenderFemale, + + /// Gender is male + kTDGenderMale +}; + +/// The type of on-demand ad +typedef NS_ENUM(NSInteger, TDAdType) { + /// Pre-roll ads. These are intended to be played before playback starts. + kTDAdTypePreroll, + + /// Mid-roll ads. These are intended to be played during the session, between content elements such as songs. + kTDAdTypeMidroll +}; + +/// The type of asset for the linear ad (The main media in the interstitial) +typedef NS_ENUM(NSInteger, TDAssetType) { + + /// There's no restriction in the type of asset returned for the ads. + kTDAssetTypeNotDefined, + + /// Ads must be of type audio. + kTDAssetTypeAudio, + + /// Ads must be of type video. + kTDAssetTypeVideo, + + /// Ads must be of type audio or video + kTDAssetTypeAudioVideo +}; + +/** + * TDAdRequestURLBuilder helps to build ad requests for Triton's on-demand banners and interstitials (pre-roll, mid-roll), including targeting parameters and device capabilities specified in Triton's On-Demand Advertising Guide. + * + * It also includes the user's IDFA (Id for Advertisers), when available, and can also incluse the user's GPS location to better target the ads. The url's generated or TDAdRequestURLBuilder itself can be passed directly to TDAdLoader. + */ +@interface TDAdRequestURLBuilder : NSObject + +/// @name Creating a TDAdRequestURLBuilder + +/** + * Creates and initializes a request url builder. + * + * @param url the base url for the request url builder (the ad server url) + * @return an instance of the request url builder + */ + ++(instancetype)builderWithHostURL:(NSString *) url; + +/** + * Initializes a newly allocated a request url builder + * + * @param url the base url for the request url builder (the ad server url) + * @return an instance of the request url builder + */ + +-(instancetype)initWithHostURL:(NSString *) url; + +/// @name Defining the ad type + +/** + * Defines the type of ad requested (preroll, midroll). The default value is preroll. There's no need to be defined for banner ads, just for interstitials. + */ + +@property (nonatomic, assign) TDAdType adType; + +/// @name Required parameters + +/** + * Either the Station ID or station name must be specified when calling the On-Demand Ad Request Service. While both IDs and names are supported, it is strongly recommended that clients use station names. + * + * If both ID and name are provided, the name is used (there is no validation check that the ID matches the name). Triton Digital assigns station IDs and names when setting up a station. + */ + +@property (nonatomic, assign) NSInteger stationId; + +/** + * Station names are case-sensitive. See stationId. + */ + +@property (nonatomic, copy) NSString *stationName; + +/// @name Location targeting + +/** + The postal/zip code of the listener. Must be a valid postal or zip code, without spaces. E.g., 89040 or H3G1R8. + When using this property, it's recommended to also use country. + */ +@property (nonatomic, copy) NSString *postalCode; + +/** + The ISO 3166-1 alpha-2 two-letter country code (e.g., US). If using this property, it's recommended to also use postalCode. + */ +@property (nonatomic, copy) NSString *country; + +/** + The latitude and longitude of the listener obtained from CoreLocation or other source. + + @param latitude float value between -90.0 and 90.0. + @param longitude float value between -180.0 and 180.0 + */ +-(void)setLocationWithLatitude:(float) latitude andLongitude:(float) longitude; +/** + The latitude of the listener obtained from CoreLocation or other source. + Floating-point value: -90.0 to 90.0. Not required individually. If using, you must also specify longitude. +*/ +@property (nonatomic, assign) float latitude; +/** + The longitude of the listener obtained from CoreLocation or other source. + Floating-point value: -180.0 to 180.0. Not required individually. If using, you must also specify latitude. +*/ +@property (nonatomic, assign) float longitude; + +/** + Whether to use built-in Core Location manager to handle location. Default value is NO. + When enabled it will override values obtained from setLocationWithLatitude:andLongitude + */ +@property (nonatomic, getter=isAutoLocationTrackingEnabled) BOOL autoLocationTrackingEnabled; + +/// @name Demographic targeting + +/** + Integer value: 1 to 125 + */ +@property (nonatomic, assign) NSInteger age; +/** + The date of birth as an NSDate + */ +@property (nonatomic, copy) NSDate *dateOfBirth; +/** + Set the date of birth as a string formatted as YYYY-MM-DD + + @param dateOfBirth the formatted string + */ +-(void)setDateOfBirthFromString:(NSString *)dateOfBirth; +/** + Integer value: 1900 to 2005 + */ +@property (nonatomic, assign) NSInteger yearOfBirth; +/** + Possible values are kTDGenderFemale and kTDGenderMale + */ +@property (nonatomic, assign) TDGender gender; + +/// @name Banner capabilities + +/** + * A string with a list of comma-separated banner sizes + * + * Players can provide details on their level of support for banners, such + * as banner sizes and formats. + * + * The ordering of the capability formats is not important. + * + * @note Before attempting to use player capability targeting, please contact + * the Triton Digital Support Team to enable Player Capability Targeting for + * your broadcaster. Currently, Player Capability Targeting only works with + * Tap advertising. + * + * Supported Formats + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
CapabilityDescription
970x250 IAB Billboard (970x250)
120x60 IAB Button 2 (120x60)
300x600 IAB Half Page/Filmstrip (300x600)
728x90 IAB Leaderboard (728x90)
970x100 IAB Leaderboard (970x100)
300x250 IAB Medium Rectangle (300x250)
88x31 IAB Microbar (88x31)
300x1050 IAB Portrait (300x1050)
970x90 IAB Pushdown (970x90)
180x150 IAB Rectangle (180x150)
320x480 IAB Smartphone Portrait (320x480)
300x50 IAB Smartphone Static Banner (300x50)
320x50 IAB Smartphone Static Wide Banner (320x50)
300x300 IAB Square (300x300)
970x66 IAB Super Leaderboard (970x66)
160x600 IAB Wide Skyscraper (160x600)
Client-defined (w x h)Custom banner size
+ */ +@property (nonatomic, copy) NSString *banners; + +/** + Integer value: 1 to 1000000 + + Broadcasters that want to differentiate their listeners into custom + broadcaster-specific segments may use the Custom Segment Targeting + capability of Tap. + + @note Before use by players, please contact the Triton Digital Support + Team to enable Custom Segment ID Targeting for your broadcaster. + Currently, Custom Segment ID Targeting only works with Tap advertising. +*/ +@property (nonatomic, assign) NSInteger customSegmentId; + +/// @name Asset constraints + +/** + Change this if you would like to impose constraints on the type of asset returned. Possible values are: + kTDAssetTypeNotDefined, kTDAssetTypeAudio, kTDAssetTypeVideo and kTDAssetTypeAudioVideo. + */ +@property (nonatomic, assign) TDAssetType assetType; + +/** + All the parameters non supported by properties can be passed by key/value pair. + Situations in which you would use this property: + - When defining Asset Constraints (Section 3.3.5 of Triton's On-Demand Advertising guide); + - Custom parameters + - New supported targeting parameters without a corresponding propery. + - Standard parameters can also be passed using this dictionary and they will override the values set by each property or setter method. + */ +@property (nonatomic, copy) NSDictionary *extraParameters; + +/** + An Array of NSString + - When defining Custom TTag Targeting +*/ +@property (nonatomic, copy) NSArray *TTags; + +/// @name Generating the Ad request URL + +/** + Build and return a string containing the ad request URL for on-demand ads. + + @return NSString containing the ad request. It will return nil if host is not specified and if both station name and station id are not specified. + */ +-(NSString*)generateAdRequestURL; + +/** + Resets the TDAdRequestURLBuiler to its default values and keeps the host url. You can use this to reuse the same object for different requests to the same host. + */ +-(void)reset; +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAnalyticsTracker.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAnalyticsTracker.h new file mode 100644 index 0000000..2c8bf44 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAnalyticsTracker.h @@ -0,0 +1,37 @@ +// +// TDAnalyticsTracker.h +// TritonPlayerSDK +// +// Created by Mahamadou KABORE on 2016-04-26. +// Copyright © 2016 Triton Digital. All rights reserved. +// + +#import + + +@interface TDAnalyticsTracker : NSObject + + ++(instancetype)sharedTracker; ++(instancetype)sharedTracker:(BOOL) isTritonApp; +-(void) initialize; +-(void) addType:(NSString*) type; +-(NSTimeInterval) stopTimer; +-(void) startTimer; + + +//Streaming Connection +-(void) trackStreamingConnectionSuccessWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionUnavailableWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionErrorWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionGeoblockedWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionFailedWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; + +//Ad Preroll +-(void) trackAdPrerollSuccessWithFormat:(NSString*) adFormat isVideo:(BOOL) isvideo withLoadTime: (NSTimeInterval) loadTime; +-(void) trackAdPrerollErrorWithFormat:(NSString*) adFormat isVideo:(BOOL) isvideo withLoadTime: (NSTimeInterval) loadTime; + +//On demand +-(void) trackOnDemandSuccess; +-(void) trackOnDemandError; +@end \ No newline at end of file diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAuthUtils.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAuthUtils.h new file mode 100644 index 0000000..63cb21a --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDAuthUtils.h @@ -0,0 +1,19 @@ +// +// TDAuthUtils.h +// TritonPlayerSDK +// +// Created by Carlos Pereira on 2015-07-08. +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +@interface TDAuthUtils : NSObject + ++(NSString*)createJWTTokenWithSecretKey:(NSString*)secretKey + andSecretKeyId:(NSString*)secretKeyId + andRegisteredUser:(BOOL)registeredUser + andUserId:(NSString*)userId + andTargetingParameters:(NSDictionary*)targetingParameters; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDBannerView.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDBannerView.h new file mode 100644 index 0000000..89d7b67 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDBannerView.h @@ -0,0 +1,146 @@ +// +// TDBannerView.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import +#import "TDBannerViewDelegate.h" + +@class TDAdRequestURLBuilder; +@class TDAd; + +/** + * The TDBannerView class represents a view that displays Triton Banners (in-stream ads) ads. + * + * The ads are represented by a TDAd object obtained from TDAdLoader. The banner size is independent of its frame size, but when initializing the TDBannerView with one of its initializers, it will make the underlying views size match the banner's size. + */ +@interface TDBannerView : UIView + +/// @name Managing the delegate + +/** + * The delegate that will receive state changes from TDBannerView. + */ + +@property (nonatomic, weak) id delegate; + +/// @name Creating a TDBannerView + +/** + * Initializes a TDBannerView with specified widht and height positioned at the top left corner of its superview (0,0). + * + * @param width The width of the banner + * @param height The height of the banner + */ + +-(instancetype) initWithWidth:(NSInteger)width + andHeight:(NSInteger)height; + +/** + * Initializes a TDBannerView with origin (0,0) with specified widht and height in addition to fallback width and height. + * + * The fallback size must be smaller than the main size otherwise it won't fit inside the view. + * This feature was added in order to easily support 320x50 and 300x50 in the same view. The view won't change it's size, the fallback view will be centralized inside it. + * + * @param width The width of the banner + * @param height The height of the banner + * @param fallbackWidth The fallback width of the banner + * @param fallbackHeight The fallback height of the banner + */ + +-(instancetype) initWithWidth:(NSInteger)width + andHeight:(NSInteger)height + andFallbackWidth:(NSInteger)fallbackWidth + andFallbackHeight:(NSInteger)fallbackHeight; + +/** + * Initializes a TDBannerView at the specified origin with specified widht and height in addition to fallback width and height. This is the designated initializer. + * + * The fallback size must be smaller than the main size otherwise it won't fit inside the view. + * This feature was added in order to easily support 320x50 and 300x50 in the same view. The view won't change it's size, the fallback view will be centralized inside it. + * + * @param width The width of the banner + * @param height The height of the banner + * @param fallbackWidth The fallback width of the banner + * @param fallbackHeight The fallback height of the banner + * @param origin a CGPoint with the top left position in points related to its superview + */ + +-(instancetype) initWithWidth:(NSInteger)width + andHeight:(NSInteger)height + andFallbackWidth:(NSInteger)fallbackWidth + andFallbackHeight:(NSInteger)fallbackHeight + andOrigin:(CGPoint)origin; + +/// @name Configuring size and position + +/** + * The width supported by the banner. + */ + +@property (assign, readonly) NSInteger width; + +/** + * The height supported by the banner. + */ + +@property (assign, readonly) NSInteger height; + +/** + * The fallback width supported by the banner. + */ + +@property (assign, readonly) NSInteger fallbackWidth; + +/** + * The fallback height supported by the banner. + */ + +@property (assign, readonly) NSInteger fallbackHeight; + +/** + * Sets the width and height supported by the banner. These dimensions are indepentent of the banner frame size. + * + * @param width The width of the banner + * @param height The height of the banner + */ + +-(void)setWidth:(NSInteger) width andHeight:(NSInteger) height; + +/** + * Sets the fallback width and height supported by the banner. The fallback size, when set, will be used in case the main size is not available. + * It will be centralized inside the banner. + * + * @param fallbackWidth The fallback width of the banner + * @param fallbackHeight The fallback height of the banner + */ + +-(void)setFallbackWidth:(NSInteger)fallbackWidth andHeight:(NSInteger) fallbackHeight; + +/** + * Changes the top left position of the banner view related to its superview + * + * @param origin a CGPoint with the new top left position in points related to its superview + */ + +-(void)setOrigin:(CGPoint) origin; + +/// @name Presenting and removing an ad + +/** + * Request an ad to be displayed in the view. + * + * @param ad the TDAd object with the ad information to be loaded. Loading with a nil object will clear the banner's content. + */ + +-(void)presentAd:(TDAd*)ad; + +/** + * Clears the banner contents + */ + +-(void)clear; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDBannerViewDelegate.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDBannerViewDelegate.h new file mode 100644 index 0000000..bcf29a5 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDBannerViewDelegate.h @@ -0,0 +1,42 @@ +// +// TDBannerViewDelegate.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +@class TDBannerView; + +/** + * TDBannerViewDelegate defines methods you can implement to receive life-cycle information about a TDBannerView. + */ +@protocol TDBannerViewDelegate + +@optional + +/** + * Sent when TDBannerView presents an ad. This is a good opportunity to show, add to hierarchy or animate the banner if it has not being displayed yet. + * + * @param bannerView The banner that presented an ad. + */ + +-(void) bannerViewDidPresentAd:(TDBannerView*) bannerView; + +/** + * Sent if a TDBannerView failed to present an ad. Normally it happens if there's no ad available (no inventory) to be displayed. + * + * @param bannerView The TDBannerView that failed to present an ad. + * @param error The error that occurred during loading. The error codes are available in TDAdLoader.h. + */ + +-(void) bannerView:(TDBannerView*) bannerView didFailToPresentAdWithError:(NSError *) error; + +/** + * Sent when the app will be deactivated or sent to background because the user clicked on an ad and it will be loaded externally in a browser. + * + * @param bannerView The banner that will leave the application + */ + +-(void) bannerViewWillLeaveApplication:(TDBannerView*) bannerView; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDCompanionBanner.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDCompanionBanner.h new file mode 100644 index 0000000..a8a00a1 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDCompanionBanner.h @@ -0,0 +1,27 @@ +// +// TDCompanionBanner.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/** + * Represents a companion banner in an ad. + */ +@interface TDCompanionBanner : NSObject + +/// The width of the banner +@property (nonatomic, assign) NSInteger width; + +/// The height of the banner +@property (nonatomic, assign) NSInteger height; + +/// The content URL of the banner +@property (nonatomic, strong) NSURL *contentURL; + +/// The HTML content of the banner +@property (nonatomic, strong) NSString *contentHTML; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDCuePointHistory.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDCuePointHistory.h new file mode 100644 index 0000000..6399ea6 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDCuePointHistory.h @@ -0,0 +1,43 @@ +// +// CuePointHistory.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/// Errors generated by TDCuePointHistory +typedef NS_ENUM(NSInteger, TDCuePointHistoryError) { + + /// The mount was not specified or is invalid + TDCuePointHistoryInvalidMountError = 3000, + + /// An unknown error occurred + TDCuePointHistoryUnknownError = 3001 +}; + +extern NSString *const TDCuePointHistoryErrorDomain; + +/** + * TDCuePointHistory retrieves the “Now Playing History” information for a station from Triton Digital’s network. + */ + +@interface TDCuePointHistory : NSObject + +/** + * Request now playing history information in an asynchronous fashion. + * + * @param mountName An NSString with the mount of the station whose history will be requested. + * @param maximum An NSInteger containing the maximum number of now playing events to retrieve. If the number is greater than what is available, all available data is returned. + * @param filter An NSArray of Cue point event types to filter the events returned. If nil is specified, all available types are returned. See CuePointEvent for all the possible values + * @param completionHandler A block containing an NSArray of CuePointEvent objetcs. Each CuePointEvent represents an entry in the history. In case an error occurs, the historyItems will be nil and the error parameter will be filled instead. + */ + +-(void)requestHistoryForMount:(NSString *)mountName + withMaximumItems:(NSInteger)maximum + eventTypeFilter:(NSArray*)filter + completionHandler:(void (^)(NSArray *historyItems, + NSError *error))completionHandler; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDInterstitialAd.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDInterstitialAd.h new file mode 100644 index 0000000..57efbc2 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDInterstitialAd.h @@ -0,0 +1,73 @@ +// +// TDInterstitialAd.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import +#import +#import + +#import "TDInterstitialAdDelegate.h" +#import "TDAd.h" +#import "TDAdRequestURLBuilder.h" + +/** + * The TDInterstitialAd class is used to request and display Triton interstitial ads. + * + * Interstitial ads, like pre-rolls and mid-rolls, are full screen ads displayed in natural transition points of the app. I.e. Playing a video ad before the user start to listen to a station. Audio and video interstitials are supported. It's recommended to preload the ad long before it is displayed. + */ +@interface TDInterstitialAd : NSObject + +/// @name Managing the delegate + +/** + * The delegate that will receive state changes from TDInterstitialAd. + */ + +@property (nonatomic, weak) id delegate; + +/// @name Loading an interstitial ad + +/** + * Informs if the ad was loaded from Triton's server. This property should be checked before presenting the interstitial ad. + */ + +@property (nonatomic, readonly) BOOL loaded; + +/** + * Prepare an interstitial ad for playing. It will be prefetched if needed. + * + * @param ad The TDAd to be loaded. + */ + +-(void)loadAd:(TDAd*) ad; + +/** + * Request and prepare an interstitial ad for playing. It will be prefetched if needed. + * + * @param requestBuilder A TDAdRequestURLBuilder object representing the interstitial request. + */ + +-(void)loadRequestBuilder:(TDAdRequestURLBuilder *) requestBuilder; + +/** + * Request and prepare an interstitial ad for playing. It will be prefetched if needed. + * + * @param stringRequest A NSString representing the interstitial request. It can be build manually or by TDAdRequestURLBuilder. + */ + +-(void)loadStringRequest:(NSString *) stringRequest; + + +/// @name Presenting an Interstitial ad + +/** + * Presents the interstitial ad which takes over the entire screen until it finishes or the user dismisses it. This method only has effect if loaded returns YES and/or if the delegate’s interstitialDidReceiveAd: has been called. + * @param rootViewController The current view controller which will be used to present the full screen ad. + */ + +-(void)presentFromViewController:(UIViewController *) rootViewController; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDInterstitialAdDelegate.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDInterstitialAdDelegate.h new file mode 100644 index 0000000..9994bab --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDInterstitialAdDelegate.h @@ -0,0 +1,64 @@ +// +// TDInterstitialAdDelegate.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +@class TDInterstitialAd; + +/** + * TDInterstitialDelegate defines methods you can implement to handle interstitial life-cycle updates. + */ +@protocol TDInterstitialDelegate + +@optional + +/** + * Called when the interstital ad was loaded suceesfully. From this point, it is able to be presented. + * + * @param ad The TDInterstitialAf object that loaded an ad. + */ +- (void)interstitialDidLoadAd:(TDInterstitialAd *)ad; + +/** + * Called when an interstitial ad loading failed. + * + * @param ad The TDInterstitialAd object that failed to load ad + * @param error The error that occurred when loading the ad + */ +- (void)interstitial:(TDInterstitialAd *)ad didFailToLoadAdWithError:(NSError *)error; + +/** + * Called just before presenting an interstitial. + * + * @param ad The TDInterstitialAd object that will be presented + */ +- (void)interstitialWillPresent:(TDInterstitialAd *)ad; + +/** + * Called before the interstitial is to be animated off the screen. + * + * @param ad The TDInterstitialAd object that will be dismissed + */ + +- (void)interstitialWillDismiss:(TDInterstitialAd *)ad; + +/** + * Called just after the interstitial is animated off the screen. + * + * @param ad The TDInterstitialAd object that did dismiss + */ + +- (void)interstitialDidDismiss:(TDInterstitialAd *)ad; + +/** + * Called just before the application will go to the background or terminate because the user clicked on an ad that will launch another application (such as the App Store). + * + * @param ad The TDInterstitialAd object that will leave the application + */ + +- (void)interstitialWillLeaveApplication:(TDInterstitialAd *)ad; + +@end + diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDSBMPlayer.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDSBMPlayer.h new file mode 100644 index 0000000..83b082e --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDSBMPlayer.h @@ -0,0 +1,152 @@ +// +// TDSBMPlayer.h +// Triton iOS SDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/// An NSURL representing the side-band metadata +extern NSString *const SettingsSBMURLKey; + +@class TDSBMPlayer; +@class CuePointEvent; + +/** + * TDSBMPlayerPlayerDelegate defines methods you can implement to handle connection notifications and to receive cue point events from the TDSBMPlayer. + */ + +@protocol TDSBMPlayerPlayerDelegate + +/// @name Handling cue point events + +/** + * Called when there's a Cue Point available to be processed. A NSDictionary is passed containing the Cue Point metadata. All the available keys are defined in CuePointEvent.h. + * See STWCue_Metadata_Dictionary.pdf for more details on the available cue point information. + * + * @param player The SBM player which is receiving cue point events + * @param cuePointEvent A CuePointEvent object containing all cue point information. + */ + +- (void) sbmPlayer:(TDSBMPlayer *) player didReceiveCuePointEvent:(CuePointEvent *) cuePointEvent; + +/// @name Connection state + +/** + * Tells the delegate that the SBM player was unable to connect to the server. + * + * The SBM player tries to reconnect automatically three times. It will call this callback method after the third attempt fails. + */ + +- (void) sbmPlayer:(TDSBMPlayer *) player didFailConnectingWithError:(NSError *) error; + +@optional + +/** + * Called when the SBM player established a connection with the server and is ready to receive cue points. + * + * @param player The SBM player whose connection was opened. + */ + +- (void) sbmPlayerDidOpenConnection:(TDSBMPlayer *) player; + +@end + +/** + * Sideband Metadata (SBM) is a metadata transport mechanism offered to players that are unable to use metadata multiplexed into the stream itself (as with FLV, SHOUTcast V1/V2, etc.), either because it is impossible, difficult, or resource-intensive. + * + * TDSBMPlayer handles the connection/play/stop flow and the reception of cue points using Triton's Side-Band Metadata technology. If also provides synchronization facilities with the user's audio player. + * + * When using TDSBMPlayer, the developer is responsible of connecting and playing the main audio stream, this includes adding audience targeting parameters when connecting to the stream and also the responsibility of closing the SBM player when the main audio connection drops. + * To a more high-level approach, use TritonPlayer, which handles automatically audience targetting and the metadata connection. + */ +@interface TDSBMPlayer : NSObject + +/// @name Managing the delegate + +/** + * The delegate responsible for handling callbacks + */ + +@property (weak, nonatomic) id delegate; + +/// @name Playback information + +/** + * The time in seconds from the beginning of playback + */ + +@property (assign, readonly) NSTimeInterval currentPlaybackTime; + +/// @name Stream synchronization + +/** + * Defines a difference in seconds between this SBMPlayer's currentPlaybackTime and the media player's current playback time (playhead position). + * + * Cue points delivered by the TDSBMPlayer are synchronized with the side-band metadata current playback time by default. + * Depending on the time it takes to instantiate the application's media player and the companion TDSBMPlayer, there can be a time offset between both. + */ + +@property (assign, nonatomic) NSTimeInterval synchronizationOffset; + +/** + * Whether or not to let TDSBMPlayer synchronize the cue points automatically with it's currentPlaybackTime and synchronizationOffset. + * + * If you need to have more fine-grained control over the synchronization, you can set it to NO and the cue points will arrive some seconds in advance and you will be able + * to enqueue and dequeue them based on their [CuePointEvent timestamp] property. This is usually done with help of a timed event from the media player. + * + * Default value is YES. + */ + +@property (assign, nonatomic) BOOL autoSynchronizeCuePoints; + +/// @name Utility methods + +/** + * Utility method for creating a new sbmid session id to be shared between the audio player and the TDSBMPlayer + * + * @return a NSString representing a Type 4 (i.e. random) UUID, formatted as a lowercase hex string, such as: fde807eb-6931-47db-a758-9c3b0c7e84d5 + */ + ++(NSString *)generateSBMSessionId; + +/// @name Instantiating and configuring a player + +/** + * Initializes a TDSBMPlayer with settings. + * + * @param settings A NSDictionary containing the SBM settings. See constants in TDSBMPlayer.h for possible keys. + */ + +-(instancetype)initWithSettings:(NSDictionary *)settings; + +/** + * Update the SBM player settings. All the information passed overrides the current settings and will take effect the next time the play method is called. + * + * @param settings A NSDictionary containing the SBM settings. See constants in TDSBMPlayer.h for possible keys. + */ + +-(void)updateSettings:(NSDictionary *)settings; + +/// @name Controlling the player + +/** + * Start playing the Side-band metadata player + */ + +-(void)play; + +/** + * Stop playing the Side-band metadata player + */ + +-(void)stop; + +/** + * Close the metadata connection. + */ + +-(void)close; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDSyncBannerView.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDSyncBannerView.h new file mode 100644 index 0000000..5717dff --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TDSyncBannerView.h @@ -0,0 +1,27 @@ +// +// TDSyncBannerView.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import "TDBannerView.h" +#import "CuePointEvent.h" + +/** + * TDSyncBannerView is a TDBannerView subclass tailored to show a companion banner synchronized with the playing stream. + * + * It takes an ad CuePointEvent and display the ad if any available. + */ +@interface TDSyncBannerView : TDBannerView + +/// @name Loading a CuePointEvent + +/** + * Loads an ad cue point into the banner. If the cue point doesn't represent an ad or if there's no ad to display, it does nothing. + * + * @param cuePoint The CuePointEvent with the ad to be loaded. + */ +- (void)loadCuePoint:(CuePointEvent *) cuePoint; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TritonPlayer.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TritonPlayer.h new file mode 100644 index 0000000..690f6f5 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TritonPlayer.h @@ -0,0 +1,381 @@ +// +// TritonPlayer.h +// TritonPlayer +// +// Copyright 2014 Triton Digital. All rights reserved. +// + +#import +#import +#import +#import + +// SDK Version +extern NSString *const TritonSDKVersion; +// Settings dictionary keys + +extern NSString *const SettingsEnableLocationTrackingKey; +extern NSString *const SettingsStationNameKey; +extern NSString *const SettingsMountKey; /// The mount for live content +extern NSString *const SettingsContentURLKey; /// The url for an on-demand content +extern NSString *const SettingsContentTypeKey; /// The type of on-demand content. If not specified, the app will try to guess it based on the url, otherwise it will use the "Other" profile. The value must be one of SettingsContentType enum values. +extern NSString *const SettingsAppNameKey; +extern NSString *const SettingsBroadcasterKey; +extern NSString *const SettingsStreamParamsExtraKey; /// A NSDictionary containing parameters for targeting, player capabilities and other information passed to the server. The possible keys are listed below. +extern NSString *const SettingsTtagKey; // An Array containing custom TTags +extern NSString *const SettingsLowDelayKey; //-1 (AUTO), 0 (DISABLED), 2 … 60 for seconds +extern NSString *const SettingsPlayerServicesRegion; // To use a specific PlayerServices depending on the region, e.g: EU,AP +/// Extra parameters for location targeting + +extern NSString *const StreamParamExtraLatitudeKey; // Floating-point value: -90.0 to 90.0 +extern NSString *const StreamParamExtraLongitudeKey; // Floating-point value: -180.0 to 180.0 +extern NSString *const StreamParamExtraPostalCodeKey; // Valid postal or ZIP code, without spaces. E.g., 89040 or H3G1R8. +extern NSString *const StreamParamExtraCountryKey; // ISO 3166-1 alpha-2 two-letter country code (e.g., US) + +/// Extra parameters for demographic targeting +extern NSString *const StreamParamExtraAgeKey; // Integer value: 1 to 125 +extern NSString *const StreamParamExtraDateOfBirthKey; // String formatted as YYYY-MM-DD +extern NSString *const StreamParamExtraYearOfBirthKey; // Integer value: 1900 to 2005 +extern NSString *const StreamParamExtraGenderKey; // “m” or “f” (case-sensitive) + +extern NSString *const SettingsDebouncingKey; // Play debouncing in seconds: float value e.g: 0.2 + +/// Custom segment id targeting +extern NSString *const StreamParamExtraCustomSegmentIdKey; // Integer value: 1 to 1000000 + +/// Banner capabilities +extern NSString *const StreamParamExtraBannersKey; // See Streaming guide 5.3.1 for supported banners + +/// Token authorization +extern NSString *const StreamParamExtraAuthorizationTokenKey; // An string with a JST token. + + + +/// Represents the types of on-demand content supported by the player +typedef NS_ENUM(NSInteger, PlayerContentType) { + + /// The player will use the FLV decoder to play and receive cue points. + PlayerContentTypeFLV, + + /// The player will use HLS with side-band metadata. + PlayerContentTypeHLS, + + /// The player will use the default profile. + PlayerContentTypeOther +}; + +extern NSString *const TritonPlayerDomain; + +/// Errors generated by TritonPlayer +typedef NS_ENUM(NSInteger, TDPlayerError) { + + /// The specified mount doesn’t exist + TDPlayerMountNotFoundError = 3000, + + /// The mount is geoblocked + TDPlayerMountGeoblockedError = 3001, + + /// A required parameter is missing or an invalid parameter was sent + TDPlayerMountBadRequestError = 3002, + + /// The version of the provisioning doesn't exist + TDPlayerMountNotImplemntedError = 3003, + + /// The host doesn't exist + TDPlayerHostNotFoundError = 3004 +}; + +/// States representing Triton Player playback life-cycle +typedef NS_ENUM(NSInteger, TDPlayerState) { + + /// Player is stopped. The playhead position returns to the beginning. + kTDPlayerStateStopped, + + /// Player is currently playing + kTDPlayerStatePlaying, + + /// Player is connecting to the stream + kTDPlayerStateConnecting, + + /// Player is paused. The playhead position is kept at the last position. Not available for live streams. + kTDPlayerStatePaused, + + /// Player is on error state + kTDPlayerStateError, + + /// The end of the media has been reached. Not available for live streams. + kTDPlayerStateCompleted +}; + +typedef NS_ENUM(NSInteger, TDPlayerInfo) { + /// The player established connection with the stream. It will soon start playing. + kTDPlayerInfoConnectedToStream, + + /// The stream is buffering. The buffer percentage can be queried by the key InfoBufferingPercentageKey in the extra dictionary for player:didReceiveInfo:andExtra: + kTDPlayerInfoBuffering, + + /// The provided mount is geoblocked. The player was redirected to an alternate mount. It's mount name can be obtained by the key InfoAlternateMountNameKey in the extra dictionary. + kTDPlayerInfoForwardedToAlternateMount +}; + +extern NSString *const InfoBufferingPercentageKey; +extern NSString *const InfoAlternateMountNameKey; + +@class CuePointEvent; +@class TritonPlayer; + +/** + * TritonPlayerDelegate defines methods you can implement to handle streaming state notifications and to receive cue point events. + */ +@protocol TritonPlayerDelegate + +@required + +/// @name Handling state changes + +/** + * Called when the player's state changed. + * + * @param player The player whose state changed + * @param state The new state of the player + */ + +- (void) player:(TritonPlayer *) player didChangeState:(TDPlayerState) state; + +@optional + +/// @name Receiving player info + +/** + * Called when the player's state changed. + * + * @param player The player whose state changed + * @param state The new state of the player + */ + +- (void) player:(TritonPlayer *) player didReceiveInfo:(TDPlayerInfo) info andExtra:(NSDictionary *) extra; + +/// @name Handling cue point events + +/** + * Called when there's a Cue Point available to be processed. A NSDictionary is passed containing the Cue Point metadata. All the available keys are defined in CuePointEvent.h. + * See STWCue_Metadata_Dictionary.pdf for more details on the available cue point information. + * + * @param player The player which is receiving cue point events + * @param cuePointEvent A CuePointEvent object containing all cue point information. + */ + +- (void)player:(TritonPlayer *) player didReceiveCuePointEvent:(CuePointEvent *)cuePointEvent; + +/// @name Handling interruptions + +/** + * Notifies that an audio interruption is about to start (alarm, phone call, etc.). The application has the opportunity to take the proper actions: stop the player, lower the volume, etc. + * + * @param player The TritonPlayer object which is being interrupted. + */ + +- (void)playerBeginInterruption:(TritonPlayer *) player; + +/** + * Notifies about a finished interruption. It's the proper moment to resume the player, raise the volume, etc. + * + * @param player The TritonPlayer object whose interruption is ending. + */ + +- (void)playerEndInterruption:(TritonPlayer *) player; + + + +-(void)player:(TritonPlayer *)player didReceiveMetaData: (NSDictionary *)metaData; + +@end + +/** + * TritonPlayer handles the playback of stations provided by Triton Digital. It also supports receiving CuePoint events with metadata for track information, ads etc. + */ + +@interface TritonPlayer : NSObject + +/// @name Querying player information + +/** + * The current state of the player + */ + +@property (readonly) TDPlayerState state; + +/** + * Returns the current playback duration in seconds. Not available for live streams. + */ + +@property (readonly) NSTimeInterval playbackDuration; + +/** + * Returns the current playback position in seconds. + */ + +@property (readonly) NSTimeInterval currentPlaybackTime; + +/** + * Tells whether the player is streaming audio. + */ + +@property (readonly) BOOL isExecuting; + +/** + * When the player's state is kTDPlayerStateError, this property contains the associated error. It's nil for all other states. + */ + +@property (readonly) NSError *error; + +/** + * The underlying audio queue which playbacks the audio. Use this when you need to process or analyze the audio data. Ex. When building a spectrum analyzer. + * + * @returns The underlying AudioQueue + */ + +- (AudioQueueRef)getAudioQueue; + +/** + * Returns the current library version + * + * @return A string containing the current library version. + */ + +- (NSString *)getLibVersion; + +/** + * Informs if the network is available. + * + * @return Whether the network is available. + */ + +- (BOOL)isNetworkReachable; + + +/// @name Location targeting + +/** + * The most recent user location available for audience targeting. + */ + +@property (readonly) CLLocation *targetingLocation; + +/// @name Handling interruptions + +/** + * When an interruption ends (phone call, alarm, siri etc.) this flags will be true when it is appropriate to resume playback without waiting for user input. + * + * If the user ignored a call, it means that he/she wants to continue listening to the app and the flag will be YES. On the other side, if the interruption was caused by the Music app or other audio app being executed, + * it means that he/should explicitly play again to continue listening to the stream and the flag will retur NO. + */ + +@property (readonly) BOOL shouldResumePlaybackAfterInterruption; + +/// @name Creating a TritonPlayer + +/** + * Instantiate a new player using the specified settings + * + * @param inDelegate The delegate for handling stream callbacks and CuePoint events + * @param settings A NSDictionary containing station parameters. + */ + +- (id)initWithDelegate:(id)inDelegate andSettings:(NSDictionary *) settings; + +/// @name Updating player settings + +/** + * Update player settings. All the information passed overrides the current settings and will take effect the next time the play method is called. + * + * When changing to a new station, this method must be called before calling play on the new station. + * + * @param settings A NSDictionary containing station parameters. + */ + +- (void)updateSettings:(NSDictionary *) settings; + +/// @name Reproduction flow + +/** + * Plays the current stream with the configuration from the settings dictionary. + * + * @see updateSettings: + */ + +- (void)play; + +/** + * Stops the current stream + */ + +- (void)stop; + +/** + * Pauses the current stream. In case of a live stream, it's the same as calling stop. + */ + +- (void)pause; + +/** + * Moves the cursor to the specified time interval. Only works if the media is seekable. + * + * @param interval A time interval representing the time elapsed since the start of the audio + */ + +- (void)seekToTimeInterval:(NSTimeInterval) interval; + +/** + * Moves the cursor to the specified time and invokes the block specified when the seek operation has either been completed or been interrupted. Only works if the media is seekable. + * + * @param time A CMTime representing the time elapsed since the start of the audio + * @param completionHandler The block to be executed when the seek operation has been completed or interrupted. + */ + +- (void)seekToTime:(CMTime)time completionHandler:(void (^)(BOOL finished))completionHandler; + +/// @name Controlling the volume + +/** + * Mute current playing audio + */ + +- (void)mute; + +/** + * Unumte current playing audio + */ + +- (void)unmute; + +/** + * Set volume of current playing audio + * + * @param volume a float between 0-1. + */ + +- (void)setVolume:(float)volume; + +/** + * Return the stream URL for Cast Devices + * + */ +- (NSString*) getCastStreamingUrl; + +/** + * Return the Side Band Metadata URL + * + */ +-(NSString*) getSideBandMetadataUrl; + + +/** + * Format Player state into String + * + * @param player state. + */ ++(NSString*) toStringState:(TDPlayerState)state; + + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/A/Headers/TritonPlayerSDK.h b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TritonPlayerSDK.h new file mode 100644 index 0000000..298c3de --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/A/Headers/TritonPlayerSDK.h @@ -0,0 +1,33 @@ +// +// TritonPlayerSDK.h +// TritonPlayer +// +// Copyright 2014 Triton Digital. All rights reserved. +// + +#ifndef TritonPlayerSDK_TritonPlayerSDK_h +#define TritonPlayerSDK_TritonPlayerSDK_h + +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import + +#endif + +/** This is the library header. Import this file to import all of the public types in Triton Player Framework. + + */ diff --git a/ios/TritonPlayerSDK.framework/Versions/A/TritonPlayerSDK b/ios/TritonPlayerSDK.framework/Versions/A/TritonPlayerSDK new file mode 100644 index 0000000..2b5827d Binary files /dev/null and b/ios/TritonPlayerSDK.framework/Versions/A/TritonPlayerSDK differ diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/CuePointEvent.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/CuePointEvent.h new file mode 100644 index 0000000..37b1cad --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/CuePointEvent.h @@ -0,0 +1,135 @@ +// +// CuePointEvent.h +// TritonPlayer +// +// Copyright 2014 Triton Digital. All rights reserved. +// + +#import + +// STR_CUE_TYPE values +extern NSString *const EventTypeAd; +extern NSString *const EventTypeAudio; +extern NSString *const EventTypeCustom; +extern NSString *const EventTypeProfanity; +extern NSString *const EventTypeRecording; +extern NSString *const EventTypeSidekick; +extern NSString *const EventTypeSpeech; +extern NSString *const EventTypeSweeper; +extern NSString *const EventTypeTrack; +extern NSString *const EventTypeUnknown; + +// -------------------------------------------------------------------------------------------- +// Common +// -------------------------------------------------------------------------------------------- +extern NSString *const CommonCueDisplayKey; +extern NSString *const CommonCueTimeDurationKey; +extern NSString *const CommonCueTimeStartKey; +extern NSString *const CommonCueTitleKey; +extern NSString *const CommonCueTypeKey; + +extern NSString *const CommonProgramTimeDurationKey; +extern NSString *const CommonProgramTimeStartKey; +extern NSString *const CommonProgramGuestNIdKey; +extern NSString *const CommonProgramGuestNNameKey; +extern NSString *const CommonProgramHostNIdKey; +extern NSString *const CommonProgramHostNNameKey; +extern NSString *const CommonProgramIdKey; +extern NSString *const CommonProgramTitleKey; +extern NSString *const CommonProgramGuestNHomepageKey; +extern NSString *const CommonProgramGuestNPictureURLKey; +extern NSString *const CommonProgramHomepageKey; +extern NSString *const CommonProgramHostNHomepage; +extern NSString *const CommonProgramHostPictureURLKey; +extern NSString *const CommonProgramImageKey; + +// -------------------------------------------------------------------------------------------- +// Ad +// -------------------------------------------------------------------------------------------- +extern NSString *const AdReplaceKey; +extern NSString *const AdIdKey; +extern NSString *const AdTypeKey; +extern NSString *const AdVastKey; +extern NSString *const AdVastURLKey; +extern NSString *const AdURLKey; +extern NSString *const AdURL1Key; +extern NSString *const AdURL2Key; +extern NSString *const AdURL3Key; +extern NSString *const AdURL4Key; + +// -------------------------------------------------------------------------------------------- +// Sweeper +// -------------------------------------------------------------------------------------------- +extern NSString *const SweeperIdKey; +extern NSString *const SweeperTypeKey; + + +// -------------------------------------------------------------------------------------------- +// Track +// -------------------------------------------------------------------------------------------- +extern NSString *const TrackGenreKey; +extern NSString *const TrackAlbumNameKey; +extern NSString *const TrackAlbumPublisherKey; +extern NSString *const TrackAlbumYearKey; +extern NSString *const TrackArtistNameKey; +extern NSString *const TrackFormatKey; +extern NSString *const TrackIdKey; +extern NSString *const TrackIsrcKey; +extern NSString *const TrackCoverURLKey; +extern NSString *const TrackNowPlayingURLKey; +extern NSString *const TrackProductURLKey; + +// -------------------------------------------------------------------------------------------- +// Deprecated +// -------------------------------------------------------------------------------------------- +extern NSString *const LegacyTypeKey; +extern NSString *const LegacyAdImageURLKey; +extern NSString *const LegacyBuyURLKey; + +@class CuePointEventController; + +/** + * CuePointEvent stores all the information about cue points received from the server (ads, track information etc.). + * For more details, see *STWCue_Metadata_Dictionary.pdf* + */ +@interface CuePointEvent : NSObject + +/// @name Cue Point Properties + +/// Timestamp The *timestamp* in which the cuepoint event should be executed. +@property (readonly, nonatomic) NSTimeInterval timestamp; + +/// Contains all cue point data, which can be accessed by the constants declare in CuePointEvent.h. +@property (readonly, strong) NSDictionary *data; + +/// The type of the cue point. Refer to *STWCue_Metadata_Dictionary.pdf* for available types. The constants for each available type is defined in CuePointEvent.h. +@property (readonly, strong) NSString *type; + +/// Tells whether the execution of the cue point was canceled. +@property (readonly, assign) BOOL executionCanceled; + +/// @name Creating a CuePointEvent + +/** + * Initializes a CuePoitEvent object. This is the designated initializer. + * + * @param inAMFData Dictionary containing *data* in AMF format. + * @param inTimestamp The *timestamp* in which the cuepoint event should be executed. + * + * @return The newly-initialized CuePointEvent object + */ + +-(instancetype)initEventWithAMFObjectData:(NSDictionary *)inAMFData andTimestamp:(NSTimeInterval)inTimestamp; + +/** + * Initializes a CuePoitEvent object. + * + * @param data Dictionary containing *data* in AMF format. + * @param timestamp The *timestamp* in which the cuepoint event should be executed. + * + * @return The newly-initialized CuePointEvent object + */ + +-(instancetype)initWithData:(NSDictionary *)data andTimestamp:(NSTimeInterval)timestamp; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAd.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAd.h new file mode 100644 index 0000000..3c4b714 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAd.h @@ -0,0 +1,77 @@ +// +// TDAd.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import + +@class TDCompanionBanner; + +/** + * TDAd represents a Triton ad in the SDK. It contains information about all supported ads (in-stream/on-demand, audio/banner/video). + * + * Usually TDAd is used as an output of TDAdLoader and as input of TDBannerView and TDInterstitialAd and its details don't need to be known. However, + * when the application is rendering the ads by itself, it must inspect its attributes and methods. + */ + +@interface TDAd : NSObject + +/// @name General properties + +/// The urls that need to be called for generating an ad impression +@property (nonatomic, strong) NSArray *mediaImpressionURLs; + +/// The type of the linear media as a MIME-type (usually audio or video) +@property (nonatomic, strong) NSString *mediaMIMEType; + + +/// The format of the ad. VAST or DAAST +@property (nonatomic, strong) NSString *format; + + +/// The url of the linear media +@property (nonatomic, strong) NSURL *mediaURL; + +/// @name Banner ads + +/// An array of TDCompanionBanner objects for each banner available in the ad +@property (nonatomic, strong) NSArray *companionBanners; + +/// @name Video interstitials + +/// The width of the video +@property (nonatomic, assign) NSInteger videoWidth; + +/// The height of the video +@property (nonatomic, assign) NSInteger videoHeight; + +/// The url that the app must be redirected when the user clicks in a video ad +@property (nonatomic, strong) NSURL *videoClickThroughURL; + +/// The list of urls that must be called to track the user clicking in a video ad +@property (nonatomic, strong) NSArray *clickTrackingURLs; + +/// @name Helper methods + +/** + * Returns the companion banner in the receiver's companion banners list that approximates most the desired width and height. + * + * @param width the desired width of the banner + * @param height the desired height of the banner + * @return A TDCompanionBanner that is the best match for the desired width and height. + */ + +-(TDCompanionBanner*)bestCompanionBannerForWidth:(NSInteger)width andHeight:(NSInteger)height; + +/** + * Tracks asynchronously all the media impressions URL for the ad. Useful when you are rendering your ads with custom UI. + */ +-(void)trackMediaImpressions; + +/** + * Tracks asynchronously all the video click URLs for the ad. Useful when you are rendering your ads with custom UI. + */ +-(void)trackVideoClick; +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAdLoader.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAdLoader.h new file mode 100644 index 0000000..8e3d3c5 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAdLoader.h @@ -0,0 +1,67 @@ +// +// TDAdLoader.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/// Represents Triton Mobile SDk generated error codes +extern NSString *const TDErrorDomain; + +/// The error codes that can be returned when using ad functionality. +typedef NS_ENUM(NSInteger, TDAdErrorCode) { + /// A network error occurred while requesting the ad + TDErrorCodeInvalidRequest = 101, + + /// The width and height of the ad was not specified + TDErrorCodeUndefinedSize = 102, + + /// There's no ad to be displayed for the request + TDErrorCodeNoInventory = 103, + + /// The ad request or media url is malformed + TDErrorCodeInvalidAdURL = 104, + + /// Unable to parse the response + TDErrorCodeResponseParsingFailed = 105 +}; + +@class TDAd; +@class TDAdRequestURLBuilder; + +/** + * TDAdLoader loads a Triton ad from an ad request. + * + * The ad returned is represented by a TDAd object and contains all the information needed to display and manage an ad. The ad returned can be + * presented using custom application UI or it can be passed directly to TDBannerView or TDInterstitialAd for display. + * + */ + +@interface TDAdLoader : NSObject + +/// @name Creating a TDAdLoader + +/** + * Loads an ad asynchronously from a request string. The string can be built manually by following Triton Digital On-Demand advertising guide or + * by the help of TDAdRequestURLBuilder class (recommended). + * + * @param request A NSString containing the request with the targeting parameters. + * @param completionHandler a block that will execute when the request is finished, with the ad loaded or an error object. + */ + +- (void)loadAdWithStringRequest:(NSString*)request + completionHandler:(void (^) (TDAd *loadedAd, NSError *error))completionHandler; + +/** + * Loads an ad asynchronously directly from a TDAdRequestURLBuilder. + * + * @param builder A TDAdRequestURLBuilder containing the request with the targeting parameters. + * @param completionHandler a block that will execute when the request is finished, with the ad loaded or an error object. + */ + +- (void)loadAdWithBuilder:(TDAdRequestURLBuilder*)builder + completionHandler:(void (^) (TDAd *loadedAd, NSError *error))completionHandler; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAdRequestURLBuilder.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAdRequestURLBuilder.h new file mode 100644 index 0000000..c4a4c12 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAdRequestURLBuilder.h @@ -0,0 +1,250 @@ +// +// TDAdRequestURLBuilder.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import + +/// The different gender parameters that can be used for targeting +typedef NS_ENUM(NSInteger, TDGender) { + /// The gender was not specified + kTDGenderNotDefined, + + /// Gender is female + kTDGenderFemale, + + /// Gender is male + kTDGenderMale +}; + +/// The type of on-demand ad +typedef NS_ENUM(NSInteger, TDAdType) { + /// Pre-roll ads. These are intended to be played before playback starts. + kTDAdTypePreroll, + + /// Mid-roll ads. These are intended to be played during the session, between content elements such as songs. + kTDAdTypeMidroll +}; + +/// The type of asset for the linear ad (The main media in the interstitial) +typedef NS_ENUM(NSInteger, TDAssetType) { + + /// There's no restriction in the type of asset returned for the ads. + kTDAssetTypeNotDefined, + + /// Ads must be of type audio. + kTDAssetTypeAudio, + + /// Ads must be of type video. + kTDAssetTypeVideo, + + /// Ads must be of type audio or video + kTDAssetTypeAudioVideo +}; + +/** + * TDAdRequestURLBuilder helps to build ad requests for Triton's on-demand banners and interstitials (pre-roll, mid-roll), including targeting parameters and device capabilities specified in Triton's On-Demand Advertising Guide. + * + * It also includes the user's IDFA (Id for Advertisers), when available, and can also incluse the user's GPS location to better target the ads. The url's generated or TDAdRequestURLBuilder itself can be passed directly to TDAdLoader. + */ +@interface TDAdRequestURLBuilder : NSObject + +/// @name Creating a TDAdRequestURLBuilder + +/** + * Creates and initializes a request url builder. + * + * @param url the base url for the request url builder (the ad server url) + * @return an instance of the request url builder + */ + ++(instancetype)builderWithHostURL:(NSString *) url; + +/** + * Initializes a newly allocated a request url builder + * + * @param url the base url for the request url builder (the ad server url) + * @return an instance of the request url builder + */ + +-(instancetype)initWithHostURL:(NSString *) url; + +/// @name Defining the ad type + +/** + * Defines the type of ad requested (preroll, midroll). The default value is preroll. There's no need to be defined for banner ads, just for interstitials. + */ + +@property (nonatomic, assign) TDAdType adType; + +/// @name Required parameters + +/** + * Either the Station ID or station name must be specified when calling the On-Demand Ad Request Service. While both IDs and names are supported, it is strongly recommended that clients use station names. + * + * If both ID and name are provided, the name is used (there is no validation check that the ID matches the name). Triton Digital assigns station IDs and names when setting up a station. + */ + +@property (nonatomic, assign) NSInteger stationId; + +/** + * Station names are case-sensitive. See stationId. + */ + +@property (nonatomic, copy) NSString *stationName; + +/// @name Location targeting + +/** + The postal/zip code of the listener. Must be a valid postal or zip code, without spaces. E.g., 89040 or H3G1R8. + When using this property, it's recommended to also use country. + */ +@property (nonatomic, copy) NSString *postalCode; + +/** + The ISO 3166-1 alpha-2 two-letter country code (e.g., US). If using this property, it's recommended to also use postalCode. + */ +@property (nonatomic, copy) NSString *country; + +/** + The latitude and longitude of the listener obtained from CoreLocation or other source. + + @param latitude float value between -90.0 and 90.0. + @param longitude float value between -180.0 and 180.0 + */ +-(void)setLocationWithLatitude:(float) latitude andLongitude:(float) longitude; +/** + The latitude of the listener obtained from CoreLocation or other source. + Floating-point value: -90.0 to 90.0. Not required individually. If using, you must also specify longitude. +*/ +@property (nonatomic, assign) float latitude; +/** + The longitude of the listener obtained from CoreLocation or other source. + Floating-point value: -180.0 to 180.0. Not required individually. If using, you must also specify latitude. +*/ +@property (nonatomic, assign) float longitude; + +/** + Whether to use built-in Core Location manager to handle location. Default value is NO. + When enabled it will override values obtained from setLocationWithLatitude:andLongitude + */ +@property (nonatomic, getter=isAutoLocationTrackingEnabled) BOOL autoLocationTrackingEnabled; + +/// @name Demographic targeting + +/** + Integer value: 1 to 125 + */ +@property (nonatomic, assign) NSInteger age; +/** + The date of birth as an NSDate + */ +@property (nonatomic, copy) NSDate *dateOfBirth; +/** + Set the date of birth as a string formatted as YYYY-MM-DD + + @param dateOfBirth the formatted string + */ +-(void)setDateOfBirthFromString:(NSString *)dateOfBirth; +/** + Integer value: 1900 to 2005 + */ +@property (nonatomic, assign) NSInteger yearOfBirth; +/** + Possible values are kTDGenderFemale and kTDGenderMale + */ +@property (nonatomic, assign) TDGender gender; + +/// @name Banner capabilities + +/** + * A string with a list of comma-separated banner sizes + * + * Players can provide details on their level of support for banners, such + * as banner sizes and formats. + * + * The ordering of the capability formats is not important. + * + * @note Before attempting to use player capability targeting, please contact + * the Triton Digital Support Team to enable Player Capability Targeting for + * your broadcaster. Currently, Player Capability Targeting only works with + * Tap advertising. + * + * Supported Formats + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
CapabilityDescription
970x250 IAB Billboard (970x250)
120x60 IAB Button 2 (120x60)
300x600 IAB Half Page/Filmstrip (300x600)
728x90 IAB Leaderboard (728x90)
970x100 IAB Leaderboard (970x100)
300x250 IAB Medium Rectangle (300x250)
88x31 IAB Microbar (88x31)
300x1050 IAB Portrait (300x1050)
970x90 IAB Pushdown (970x90)
180x150 IAB Rectangle (180x150)
320x480 IAB Smartphone Portrait (320x480)
300x50 IAB Smartphone Static Banner (300x50)
320x50 IAB Smartphone Static Wide Banner (320x50)
300x300 IAB Square (300x300)
970x66 IAB Super Leaderboard (970x66)
160x600 IAB Wide Skyscraper (160x600)
Client-defined (w x h)Custom banner size
+ */ +@property (nonatomic, copy) NSString *banners; + +/** + Integer value: 1 to 1000000 + + Broadcasters that want to differentiate their listeners into custom + broadcaster-specific segments may use the Custom Segment Targeting + capability of Tap. + + @note Before use by players, please contact the Triton Digital Support + Team to enable Custom Segment ID Targeting for your broadcaster. + Currently, Custom Segment ID Targeting only works with Tap advertising. +*/ +@property (nonatomic, assign) NSInteger customSegmentId; + +/// @name Asset constraints + +/** + Change this if you would like to impose constraints on the type of asset returned. Possible values are: + kTDAssetTypeNotDefined, kTDAssetTypeAudio, kTDAssetTypeVideo and kTDAssetTypeAudioVideo. + */ +@property (nonatomic, assign) TDAssetType assetType; + +/** + All the parameters non supported by properties can be passed by key/value pair. + Situations in which you would use this property: + - When defining Asset Constraints (Section 3.3.5 of Triton's On-Demand Advertising guide); + - Custom parameters + - New supported targeting parameters without a corresponding propery. + - Standard parameters can also be passed using this dictionary and they will override the values set by each property or setter method. + */ +@property (nonatomic, copy) NSDictionary *extraParameters; + +/** + An Array of NSString + - When defining Custom TTag Targeting +*/ +@property (nonatomic, copy) NSArray *TTags; + +/// @name Generating the Ad request URL + +/** + Build and return a string containing the ad request URL for on-demand ads. + + @return NSString containing the ad request. It will return nil if host is not specified and if both station name and station id are not specified. + */ +-(NSString*)generateAdRequestURL; + +/** + Resets the TDAdRequestURLBuiler to its default values and keeps the host url. You can use this to reuse the same object for different requests to the same host. + */ +-(void)reset; +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAnalyticsTracker.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAnalyticsTracker.h new file mode 100644 index 0000000..2c8bf44 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAnalyticsTracker.h @@ -0,0 +1,37 @@ +// +// TDAnalyticsTracker.h +// TritonPlayerSDK +// +// Created by Mahamadou KABORE on 2016-04-26. +// Copyright © 2016 Triton Digital. All rights reserved. +// + +#import + + +@interface TDAnalyticsTracker : NSObject + + ++(instancetype)sharedTracker; ++(instancetype)sharedTracker:(BOOL) isTritonApp; +-(void) initialize; +-(void) addType:(NSString*) type; +-(NSTimeInterval) stopTimer; +-(void) startTimer; + + +//Streaming Connection +-(void) trackStreamingConnectionSuccessWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionUnavailableWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionErrorWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionGeoblockedWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; +-(void) trackStreamingConnectionFailedWithMount:(NSString*) mount withBroadcaster:(NSString*) broadcaster withLoadTime: (NSTimeInterval) loadTime; + +//Ad Preroll +-(void) trackAdPrerollSuccessWithFormat:(NSString*) adFormat isVideo:(BOOL) isvideo withLoadTime: (NSTimeInterval) loadTime; +-(void) trackAdPrerollErrorWithFormat:(NSString*) adFormat isVideo:(BOOL) isvideo withLoadTime: (NSTimeInterval) loadTime; + +//On demand +-(void) trackOnDemandSuccess; +-(void) trackOnDemandError; +@end \ No newline at end of file diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAuthUtils.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAuthUtils.h new file mode 100644 index 0000000..63cb21a --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDAuthUtils.h @@ -0,0 +1,19 @@ +// +// TDAuthUtils.h +// TritonPlayerSDK +// +// Created by Carlos Pereira on 2015-07-08. +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +@interface TDAuthUtils : NSObject + ++(NSString*)createJWTTokenWithSecretKey:(NSString*)secretKey + andSecretKeyId:(NSString*)secretKeyId + andRegisteredUser:(BOOL)registeredUser + andUserId:(NSString*)userId + andTargetingParameters:(NSDictionary*)targetingParameters; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDBannerView.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDBannerView.h new file mode 100644 index 0000000..89d7b67 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDBannerView.h @@ -0,0 +1,146 @@ +// +// TDBannerView.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import +#import "TDBannerViewDelegate.h" + +@class TDAdRequestURLBuilder; +@class TDAd; + +/** + * The TDBannerView class represents a view that displays Triton Banners (in-stream ads) ads. + * + * The ads are represented by a TDAd object obtained from TDAdLoader. The banner size is independent of its frame size, but when initializing the TDBannerView with one of its initializers, it will make the underlying views size match the banner's size. + */ +@interface TDBannerView : UIView + +/// @name Managing the delegate + +/** + * The delegate that will receive state changes from TDBannerView. + */ + +@property (nonatomic, weak) id delegate; + +/// @name Creating a TDBannerView + +/** + * Initializes a TDBannerView with specified widht and height positioned at the top left corner of its superview (0,0). + * + * @param width The width of the banner + * @param height The height of the banner + */ + +-(instancetype) initWithWidth:(NSInteger)width + andHeight:(NSInteger)height; + +/** + * Initializes a TDBannerView with origin (0,0) with specified widht and height in addition to fallback width and height. + * + * The fallback size must be smaller than the main size otherwise it won't fit inside the view. + * This feature was added in order to easily support 320x50 and 300x50 in the same view. The view won't change it's size, the fallback view will be centralized inside it. + * + * @param width The width of the banner + * @param height The height of the banner + * @param fallbackWidth The fallback width of the banner + * @param fallbackHeight The fallback height of the banner + */ + +-(instancetype) initWithWidth:(NSInteger)width + andHeight:(NSInteger)height + andFallbackWidth:(NSInteger)fallbackWidth + andFallbackHeight:(NSInteger)fallbackHeight; + +/** + * Initializes a TDBannerView at the specified origin with specified widht and height in addition to fallback width and height. This is the designated initializer. + * + * The fallback size must be smaller than the main size otherwise it won't fit inside the view. + * This feature was added in order to easily support 320x50 and 300x50 in the same view. The view won't change it's size, the fallback view will be centralized inside it. + * + * @param width The width of the banner + * @param height The height of the banner + * @param fallbackWidth The fallback width of the banner + * @param fallbackHeight The fallback height of the banner + * @param origin a CGPoint with the top left position in points related to its superview + */ + +-(instancetype) initWithWidth:(NSInteger)width + andHeight:(NSInteger)height + andFallbackWidth:(NSInteger)fallbackWidth + andFallbackHeight:(NSInteger)fallbackHeight + andOrigin:(CGPoint)origin; + +/// @name Configuring size and position + +/** + * The width supported by the banner. + */ + +@property (assign, readonly) NSInteger width; + +/** + * The height supported by the banner. + */ + +@property (assign, readonly) NSInteger height; + +/** + * The fallback width supported by the banner. + */ + +@property (assign, readonly) NSInteger fallbackWidth; + +/** + * The fallback height supported by the banner. + */ + +@property (assign, readonly) NSInteger fallbackHeight; + +/** + * Sets the width and height supported by the banner. These dimensions are indepentent of the banner frame size. + * + * @param width The width of the banner + * @param height The height of the banner + */ + +-(void)setWidth:(NSInteger) width andHeight:(NSInteger) height; + +/** + * Sets the fallback width and height supported by the banner. The fallback size, when set, will be used in case the main size is not available. + * It will be centralized inside the banner. + * + * @param fallbackWidth The fallback width of the banner + * @param fallbackHeight The fallback height of the banner + */ + +-(void)setFallbackWidth:(NSInteger)fallbackWidth andHeight:(NSInteger) fallbackHeight; + +/** + * Changes the top left position of the banner view related to its superview + * + * @param origin a CGPoint with the new top left position in points related to its superview + */ + +-(void)setOrigin:(CGPoint) origin; + +/// @name Presenting and removing an ad + +/** + * Request an ad to be displayed in the view. + * + * @param ad the TDAd object with the ad information to be loaded. Loading with a nil object will clear the banner's content. + */ + +-(void)presentAd:(TDAd*)ad; + +/** + * Clears the banner contents + */ + +-(void)clear; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDBannerViewDelegate.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDBannerViewDelegate.h new file mode 100644 index 0000000..bcf29a5 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDBannerViewDelegate.h @@ -0,0 +1,42 @@ +// +// TDBannerViewDelegate.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +@class TDBannerView; + +/** + * TDBannerViewDelegate defines methods you can implement to receive life-cycle information about a TDBannerView. + */ +@protocol TDBannerViewDelegate + +@optional + +/** + * Sent when TDBannerView presents an ad. This is a good opportunity to show, add to hierarchy or animate the banner if it has not being displayed yet. + * + * @param bannerView The banner that presented an ad. + */ + +-(void) bannerViewDidPresentAd:(TDBannerView*) bannerView; + +/** + * Sent if a TDBannerView failed to present an ad. Normally it happens if there's no ad available (no inventory) to be displayed. + * + * @param bannerView The TDBannerView that failed to present an ad. + * @param error The error that occurred during loading. The error codes are available in TDAdLoader.h. + */ + +-(void) bannerView:(TDBannerView*) bannerView didFailToPresentAdWithError:(NSError *) error; + +/** + * Sent when the app will be deactivated or sent to background because the user clicked on an ad and it will be loaded externally in a browser. + * + * @param bannerView The banner that will leave the application + */ + +-(void) bannerViewWillLeaveApplication:(TDBannerView*) bannerView; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDCompanionBanner.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDCompanionBanner.h new file mode 100644 index 0000000..a8a00a1 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDCompanionBanner.h @@ -0,0 +1,27 @@ +// +// TDCompanionBanner.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/** + * Represents a companion banner in an ad. + */ +@interface TDCompanionBanner : NSObject + +/// The width of the banner +@property (nonatomic, assign) NSInteger width; + +/// The height of the banner +@property (nonatomic, assign) NSInteger height; + +/// The content URL of the banner +@property (nonatomic, strong) NSURL *contentURL; + +/// The HTML content of the banner +@property (nonatomic, strong) NSString *contentHTML; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDCuePointHistory.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDCuePointHistory.h new file mode 100644 index 0000000..6399ea6 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDCuePointHistory.h @@ -0,0 +1,43 @@ +// +// CuePointHistory.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/// Errors generated by TDCuePointHistory +typedef NS_ENUM(NSInteger, TDCuePointHistoryError) { + + /// The mount was not specified or is invalid + TDCuePointHistoryInvalidMountError = 3000, + + /// An unknown error occurred + TDCuePointHistoryUnknownError = 3001 +}; + +extern NSString *const TDCuePointHistoryErrorDomain; + +/** + * TDCuePointHistory retrieves the “Now Playing History” information for a station from Triton Digital’s network. + */ + +@interface TDCuePointHistory : NSObject + +/** + * Request now playing history information in an asynchronous fashion. + * + * @param mountName An NSString with the mount of the station whose history will be requested. + * @param maximum An NSInteger containing the maximum number of now playing events to retrieve. If the number is greater than what is available, all available data is returned. + * @param filter An NSArray of Cue point event types to filter the events returned. If nil is specified, all available types are returned. See CuePointEvent for all the possible values + * @param completionHandler A block containing an NSArray of CuePointEvent objetcs. Each CuePointEvent represents an entry in the history. In case an error occurs, the historyItems will be nil and the error parameter will be filled instead. + */ + +-(void)requestHistoryForMount:(NSString *)mountName + withMaximumItems:(NSInteger)maximum + eventTypeFilter:(NSArray*)filter + completionHandler:(void (^)(NSArray *historyItems, + NSError *error))completionHandler; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDInterstitialAd.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDInterstitialAd.h new file mode 100644 index 0000000..57efbc2 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDInterstitialAd.h @@ -0,0 +1,73 @@ +// +// TDInterstitialAd.h +// TritonPlayerSDK +// +// Copyright (c) 2014 Triton Digital. All rights reserved. +// + +#import +#import +#import + +#import "TDInterstitialAdDelegate.h" +#import "TDAd.h" +#import "TDAdRequestURLBuilder.h" + +/** + * The TDInterstitialAd class is used to request and display Triton interstitial ads. + * + * Interstitial ads, like pre-rolls and mid-rolls, are full screen ads displayed in natural transition points of the app. I.e. Playing a video ad before the user start to listen to a station. Audio and video interstitials are supported. It's recommended to preload the ad long before it is displayed. + */ +@interface TDInterstitialAd : NSObject + +/// @name Managing the delegate + +/** + * The delegate that will receive state changes from TDInterstitialAd. + */ + +@property (nonatomic, weak) id delegate; + +/// @name Loading an interstitial ad + +/** + * Informs if the ad was loaded from Triton's server. This property should be checked before presenting the interstitial ad. + */ + +@property (nonatomic, readonly) BOOL loaded; + +/** + * Prepare an interstitial ad for playing. It will be prefetched if needed. + * + * @param ad The TDAd to be loaded. + */ + +-(void)loadAd:(TDAd*) ad; + +/** + * Request and prepare an interstitial ad for playing. It will be prefetched if needed. + * + * @param requestBuilder A TDAdRequestURLBuilder object representing the interstitial request. + */ + +-(void)loadRequestBuilder:(TDAdRequestURLBuilder *) requestBuilder; + +/** + * Request and prepare an interstitial ad for playing. It will be prefetched if needed. + * + * @param stringRequest A NSString representing the interstitial request. It can be build manually or by TDAdRequestURLBuilder. + */ + +-(void)loadStringRequest:(NSString *) stringRequest; + + +/// @name Presenting an Interstitial ad + +/** + * Presents the interstitial ad which takes over the entire screen until it finishes or the user dismisses it. This method only has effect if loaded returns YES and/or if the delegate’s interstitialDidReceiveAd: has been called. + * @param rootViewController The current view controller which will be used to present the full screen ad. + */ + +-(void)presentFromViewController:(UIViewController *) rootViewController; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDInterstitialAdDelegate.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDInterstitialAdDelegate.h new file mode 100644 index 0000000..9994bab --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDInterstitialAdDelegate.h @@ -0,0 +1,64 @@ +// +// TDInterstitialAdDelegate.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +@class TDInterstitialAd; + +/** + * TDInterstitialDelegate defines methods you can implement to handle interstitial life-cycle updates. + */ +@protocol TDInterstitialDelegate + +@optional + +/** + * Called when the interstital ad was loaded suceesfully. From this point, it is able to be presented. + * + * @param ad The TDInterstitialAf object that loaded an ad. + */ +- (void)interstitialDidLoadAd:(TDInterstitialAd *)ad; + +/** + * Called when an interstitial ad loading failed. + * + * @param ad The TDInterstitialAd object that failed to load ad + * @param error The error that occurred when loading the ad + */ +- (void)interstitial:(TDInterstitialAd *)ad didFailToLoadAdWithError:(NSError *)error; + +/** + * Called just before presenting an interstitial. + * + * @param ad The TDInterstitialAd object that will be presented + */ +- (void)interstitialWillPresent:(TDInterstitialAd *)ad; + +/** + * Called before the interstitial is to be animated off the screen. + * + * @param ad The TDInterstitialAd object that will be dismissed + */ + +- (void)interstitialWillDismiss:(TDInterstitialAd *)ad; + +/** + * Called just after the interstitial is animated off the screen. + * + * @param ad The TDInterstitialAd object that did dismiss + */ + +- (void)interstitialDidDismiss:(TDInterstitialAd *)ad; + +/** + * Called just before the application will go to the background or terminate because the user clicked on an ad that will launch another application (such as the App Store). + * + * @param ad The TDInterstitialAd object that will leave the application + */ + +- (void)interstitialWillLeaveApplication:(TDInterstitialAd *)ad; + +@end + diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDSBMPlayer.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDSBMPlayer.h new file mode 100644 index 0000000..83b082e --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDSBMPlayer.h @@ -0,0 +1,152 @@ +// +// TDSBMPlayer.h +// Triton iOS SDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import + +/// An NSURL representing the side-band metadata +extern NSString *const SettingsSBMURLKey; + +@class TDSBMPlayer; +@class CuePointEvent; + +/** + * TDSBMPlayerPlayerDelegate defines methods you can implement to handle connection notifications and to receive cue point events from the TDSBMPlayer. + */ + +@protocol TDSBMPlayerPlayerDelegate + +/// @name Handling cue point events + +/** + * Called when there's a Cue Point available to be processed. A NSDictionary is passed containing the Cue Point metadata. All the available keys are defined in CuePointEvent.h. + * See STWCue_Metadata_Dictionary.pdf for more details on the available cue point information. + * + * @param player The SBM player which is receiving cue point events + * @param cuePointEvent A CuePointEvent object containing all cue point information. + */ + +- (void) sbmPlayer:(TDSBMPlayer *) player didReceiveCuePointEvent:(CuePointEvent *) cuePointEvent; + +/// @name Connection state + +/** + * Tells the delegate that the SBM player was unable to connect to the server. + * + * The SBM player tries to reconnect automatically three times. It will call this callback method after the third attempt fails. + */ + +- (void) sbmPlayer:(TDSBMPlayer *) player didFailConnectingWithError:(NSError *) error; + +@optional + +/** + * Called when the SBM player established a connection with the server and is ready to receive cue points. + * + * @param player The SBM player whose connection was opened. + */ + +- (void) sbmPlayerDidOpenConnection:(TDSBMPlayer *) player; + +@end + +/** + * Sideband Metadata (SBM) is a metadata transport mechanism offered to players that are unable to use metadata multiplexed into the stream itself (as with FLV, SHOUTcast V1/V2, etc.), either because it is impossible, difficult, or resource-intensive. + * + * TDSBMPlayer handles the connection/play/stop flow and the reception of cue points using Triton's Side-Band Metadata technology. If also provides synchronization facilities with the user's audio player. + * + * When using TDSBMPlayer, the developer is responsible of connecting and playing the main audio stream, this includes adding audience targeting parameters when connecting to the stream and also the responsibility of closing the SBM player when the main audio connection drops. + * To a more high-level approach, use TritonPlayer, which handles automatically audience targetting and the metadata connection. + */ +@interface TDSBMPlayer : NSObject + +/// @name Managing the delegate + +/** + * The delegate responsible for handling callbacks + */ + +@property (weak, nonatomic) id delegate; + +/// @name Playback information + +/** + * The time in seconds from the beginning of playback + */ + +@property (assign, readonly) NSTimeInterval currentPlaybackTime; + +/// @name Stream synchronization + +/** + * Defines a difference in seconds between this SBMPlayer's currentPlaybackTime and the media player's current playback time (playhead position). + * + * Cue points delivered by the TDSBMPlayer are synchronized with the side-band metadata current playback time by default. + * Depending on the time it takes to instantiate the application's media player and the companion TDSBMPlayer, there can be a time offset between both. + */ + +@property (assign, nonatomic) NSTimeInterval synchronizationOffset; + +/** + * Whether or not to let TDSBMPlayer synchronize the cue points automatically with it's currentPlaybackTime and synchronizationOffset. + * + * If you need to have more fine-grained control over the synchronization, you can set it to NO and the cue points will arrive some seconds in advance and you will be able + * to enqueue and dequeue them based on their [CuePointEvent timestamp] property. This is usually done with help of a timed event from the media player. + * + * Default value is YES. + */ + +@property (assign, nonatomic) BOOL autoSynchronizeCuePoints; + +/// @name Utility methods + +/** + * Utility method for creating a new sbmid session id to be shared between the audio player and the TDSBMPlayer + * + * @return a NSString representing a Type 4 (i.e. random) UUID, formatted as a lowercase hex string, such as: fde807eb-6931-47db-a758-9c3b0c7e84d5 + */ + ++(NSString *)generateSBMSessionId; + +/// @name Instantiating and configuring a player + +/** + * Initializes a TDSBMPlayer with settings. + * + * @param settings A NSDictionary containing the SBM settings. See constants in TDSBMPlayer.h for possible keys. + */ + +-(instancetype)initWithSettings:(NSDictionary *)settings; + +/** + * Update the SBM player settings. All the information passed overrides the current settings and will take effect the next time the play method is called. + * + * @param settings A NSDictionary containing the SBM settings. See constants in TDSBMPlayer.h for possible keys. + */ + +-(void)updateSettings:(NSDictionary *)settings; + +/// @name Controlling the player + +/** + * Start playing the Side-band metadata player + */ + +-(void)play; + +/** + * Stop playing the Side-band metadata player + */ + +-(void)stop; + +/** + * Close the metadata connection. + */ + +-(void)close; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDSyncBannerView.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDSyncBannerView.h new file mode 100644 index 0000000..5717dff --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TDSyncBannerView.h @@ -0,0 +1,27 @@ +// +// TDSyncBannerView.h +// TritonPlayerSDK +// +// Copyright (c) 2015 Triton Digital. All rights reserved. +// + +#import "TDBannerView.h" +#import "CuePointEvent.h" + +/** + * TDSyncBannerView is a TDBannerView subclass tailored to show a companion banner synchronized with the playing stream. + * + * It takes an ad CuePointEvent and display the ad if any available. + */ +@interface TDSyncBannerView : TDBannerView + +/// @name Loading a CuePointEvent + +/** + * Loads an ad cue point into the banner. If the cue point doesn't represent an ad or if there's no ad to display, it does nothing. + * + * @param cuePoint The CuePointEvent with the ad to be loaded. + */ +- (void)loadCuePoint:(CuePointEvent *) cuePoint; + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TritonPlayer.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TritonPlayer.h new file mode 100644 index 0000000..690f6f5 --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TritonPlayer.h @@ -0,0 +1,381 @@ +// +// TritonPlayer.h +// TritonPlayer +// +// Copyright 2014 Triton Digital. All rights reserved. +// + +#import +#import +#import +#import + +// SDK Version +extern NSString *const TritonSDKVersion; +// Settings dictionary keys + +extern NSString *const SettingsEnableLocationTrackingKey; +extern NSString *const SettingsStationNameKey; +extern NSString *const SettingsMountKey; /// The mount for live content +extern NSString *const SettingsContentURLKey; /// The url for an on-demand content +extern NSString *const SettingsContentTypeKey; /// The type of on-demand content. If not specified, the app will try to guess it based on the url, otherwise it will use the "Other" profile. The value must be one of SettingsContentType enum values. +extern NSString *const SettingsAppNameKey; +extern NSString *const SettingsBroadcasterKey; +extern NSString *const SettingsStreamParamsExtraKey; /// A NSDictionary containing parameters for targeting, player capabilities and other information passed to the server. The possible keys are listed below. +extern NSString *const SettingsTtagKey; // An Array containing custom TTags +extern NSString *const SettingsLowDelayKey; //-1 (AUTO), 0 (DISABLED), 2 … 60 for seconds +extern NSString *const SettingsPlayerServicesRegion; // To use a specific PlayerServices depending on the region, e.g: EU,AP +/// Extra parameters for location targeting + +extern NSString *const StreamParamExtraLatitudeKey; // Floating-point value: -90.0 to 90.0 +extern NSString *const StreamParamExtraLongitudeKey; // Floating-point value: -180.0 to 180.0 +extern NSString *const StreamParamExtraPostalCodeKey; // Valid postal or ZIP code, without spaces. E.g., 89040 or H3G1R8. +extern NSString *const StreamParamExtraCountryKey; // ISO 3166-1 alpha-2 two-letter country code (e.g., US) + +/// Extra parameters for demographic targeting +extern NSString *const StreamParamExtraAgeKey; // Integer value: 1 to 125 +extern NSString *const StreamParamExtraDateOfBirthKey; // String formatted as YYYY-MM-DD +extern NSString *const StreamParamExtraYearOfBirthKey; // Integer value: 1900 to 2005 +extern NSString *const StreamParamExtraGenderKey; // “m” or “f” (case-sensitive) + +extern NSString *const SettingsDebouncingKey; // Play debouncing in seconds: float value e.g: 0.2 + +/// Custom segment id targeting +extern NSString *const StreamParamExtraCustomSegmentIdKey; // Integer value: 1 to 1000000 + +/// Banner capabilities +extern NSString *const StreamParamExtraBannersKey; // See Streaming guide 5.3.1 for supported banners + +/// Token authorization +extern NSString *const StreamParamExtraAuthorizationTokenKey; // An string with a JST token. + + + +/// Represents the types of on-demand content supported by the player +typedef NS_ENUM(NSInteger, PlayerContentType) { + + /// The player will use the FLV decoder to play and receive cue points. + PlayerContentTypeFLV, + + /// The player will use HLS with side-band metadata. + PlayerContentTypeHLS, + + /// The player will use the default profile. + PlayerContentTypeOther +}; + +extern NSString *const TritonPlayerDomain; + +/// Errors generated by TritonPlayer +typedef NS_ENUM(NSInteger, TDPlayerError) { + + /// The specified mount doesn’t exist + TDPlayerMountNotFoundError = 3000, + + /// The mount is geoblocked + TDPlayerMountGeoblockedError = 3001, + + /// A required parameter is missing or an invalid parameter was sent + TDPlayerMountBadRequestError = 3002, + + /// The version of the provisioning doesn't exist + TDPlayerMountNotImplemntedError = 3003, + + /// The host doesn't exist + TDPlayerHostNotFoundError = 3004 +}; + +/// States representing Triton Player playback life-cycle +typedef NS_ENUM(NSInteger, TDPlayerState) { + + /// Player is stopped. The playhead position returns to the beginning. + kTDPlayerStateStopped, + + /// Player is currently playing + kTDPlayerStatePlaying, + + /// Player is connecting to the stream + kTDPlayerStateConnecting, + + /// Player is paused. The playhead position is kept at the last position. Not available for live streams. + kTDPlayerStatePaused, + + /// Player is on error state + kTDPlayerStateError, + + /// The end of the media has been reached. Not available for live streams. + kTDPlayerStateCompleted +}; + +typedef NS_ENUM(NSInteger, TDPlayerInfo) { + /// The player established connection with the stream. It will soon start playing. + kTDPlayerInfoConnectedToStream, + + /// The stream is buffering. The buffer percentage can be queried by the key InfoBufferingPercentageKey in the extra dictionary for player:didReceiveInfo:andExtra: + kTDPlayerInfoBuffering, + + /// The provided mount is geoblocked. The player was redirected to an alternate mount. It's mount name can be obtained by the key InfoAlternateMountNameKey in the extra dictionary. + kTDPlayerInfoForwardedToAlternateMount +}; + +extern NSString *const InfoBufferingPercentageKey; +extern NSString *const InfoAlternateMountNameKey; + +@class CuePointEvent; +@class TritonPlayer; + +/** + * TritonPlayerDelegate defines methods you can implement to handle streaming state notifications and to receive cue point events. + */ +@protocol TritonPlayerDelegate + +@required + +/// @name Handling state changes + +/** + * Called when the player's state changed. + * + * @param player The player whose state changed + * @param state The new state of the player + */ + +- (void) player:(TritonPlayer *) player didChangeState:(TDPlayerState) state; + +@optional + +/// @name Receiving player info + +/** + * Called when the player's state changed. + * + * @param player The player whose state changed + * @param state The new state of the player + */ + +- (void) player:(TritonPlayer *) player didReceiveInfo:(TDPlayerInfo) info andExtra:(NSDictionary *) extra; + +/// @name Handling cue point events + +/** + * Called when there's a Cue Point available to be processed. A NSDictionary is passed containing the Cue Point metadata. All the available keys are defined in CuePointEvent.h. + * See STWCue_Metadata_Dictionary.pdf for more details on the available cue point information. + * + * @param player The player which is receiving cue point events + * @param cuePointEvent A CuePointEvent object containing all cue point information. + */ + +- (void)player:(TritonPlayer *) player didReceiveCuePointEvent:(CuePointEvent *)cuePointEvent; + +/// @name Handling interruptions + +/** + * Notifies that an audio interruption is about to start (alarm, phone call, etc.). The application has the opportunity to take the proper actions: stop the player, lower the volume, etc. + * + * @param player The TritonPlayer object which is being interrupted. + */ + +- (void)playerBeginInterruption:(TritonPlayer *) player; + +/** + * Notifies about a finished interruption. It's the proper moment to resume the player, raise the volume, etc. + * + * @param player The TritonPlayer object whose interruption is ending. + */ + +- (void)playerEndInterruption:(TritonPlayer *) player; + + + +-(void)player:(TritonPlayer *)player didReceiveMetaData: (NSDictionary *)metaData; + +@end + +/** + * TritonPlayer handles the playback of stations provided by Triton Digital. It also supports receiving CuePoint events with metadata for track information, ads etc. + */ + +@interface TritonPlayer : NSObject + +/// @name Querying player information + +/** + * The current state of the player + */ + +@property (readonly) TDPlayerState state; + +/** + * Returns the current playback duration in seconds. Not available for live streams. + */ + +@property (readonly) NSTimeInterval playbackDuration; + +/** + * Returns the current playback position in seconds. + */ + +@property (readonly) NSTimeInterval currentPlaybackTime; + +/** + * Tells whether the player is streaming audio. + */ + +@property (readonly) BOOL isExecuting; + +/** + * When the player's state is kTDPlayerStateError, this property contains the associated error. It's nil for all other states. + */ + +@property (readonly) NSError *error; + +/** + * The underlying audio queue which playbacks the audio. Use this when you need to process or analyze the audio data. Ex. When building a spectrum analyzer. + * + * @returns The underlying AudioQueue + */ + +- (AudioQueueRef)getAudioQueue; + +/** + * Returns the current library version + * + * @return A string containing the current library version. + */ + +- (NSString *)getLibVersion; + +/** + * Informs if the network is available. + * + * @return Whether the network is available. + */ + +- (BOOL)isNetworkReachable; + + +/// @name Location targeting + +/** + * The most recent user location available for audience targeting. + */ + +@property (readonly) CLLocation *targetingLocation; + +/// @name Handling interruptions + +/** + * When an interruption ends (phone call, alarm, siri etc.) this flags will be true when it is appropriate to resume playback without waiting for user input. + * + * If the user ignored a call, it means that he/she wants to continue listening to the app and the flag will be YES. On the other side, if the interruption was caused by the Music app or other audio app being executed, + * it means that he/should explicitly play again to continue listening to the stream and the flag will retur NO. + */ + +@property (readonly) BOOL shouldResumePlaybackAfterInterruption; + +/// @name Creating a TritonPlayer + +/** + * Instantiate a new player using the specified settings + * + * @param inDelegate The delegate for handling stream callbacks and CuePoint events + * @param settings A NSDictionary containing station parameters. + */ + +- (id)initWithDelegate:(id)inDelegate andSettings:(NSDictionary *) settings; + +/// @name Updating player settings + +/** + * Update player settings. All the information passed overrides the current settings and will take effect the next time the play method is called. + * + * When changing to a new station, this method must be called before calling play on the new station. + * + * @param settings A NSDictionary containing station parameters. + */ + +- (void)updateSettings:(NSDictionary *) settings; + +/// @name Reproduction flow + +/** + * Plays the current stream with the configuration from the settings dictionary. + * + * @see updateSettings: + */ + +- (void)play; + +/** + * Stops the current stream + */ + +- (void)stop; + +/** + * Pauses the current stream. In case of a live stream, it's the same as calling stop. + */ + +- (void)pause; + +/** + * Moves the cursor to the specified time interval. Only works if the media is seekable. + * + * @param interval A time interval representing the time elapsed since the start of the audio + */ + +- (void)seekToTimeInterval:(NSTimeInterval) interval; + +/** + * Moves the cursor to the specified time and invokes the block specified when the seek operation has either been completed or been interrupted. Only works if the media is seekable. + * + * @param time A CMTime representing the time elapsed since the start of the audio + * @param completionHandler The block to be executed when the seek operation has been completed or interrupted. + */ + +- (void)seekToTime:(CMTime)time completionHandler:(void (^)(BOOL finished))completionHandler; + +/// @name Controlling the volume + +/** + * Mute current playing audio + */ + +- (void)mute; + +/** + * Unumte current playing audio + */ + +- (void)unmute; + +/** + * Set volume of current playing audio + * + * @param volume a float between 0-1. + */ + +- (void)setVolume:(float)volume; + +/** + * Return the stream URL for Cast Devices + * + */ +- (NSString*) getCastStreamingUrl; + +/** + * Return the Side Band Metadata URL + * + */ +-(NSString*) getSideBandMetadataUrl; + + +/** + * Format Player state into String + * + * @param player state. + */ ++(NSString*) toStringState:(TDPlayerState)state; + + +@end diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TritonPlayerSDK.h b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TritonPlayerSDK.h new file mode 100644 index 0000000..298c3de --- /dev/null +++ b/ios/TritonPlayerSDK.framework/Versions/Current/Headers/TritonPlayerSDK.h @@ -0,0 +1,33 @@ +// +// TritonPlayerSDK.h +// TritonPlayer +// +// Copyright 2014 Triton Digital. All rights reserved. +// + +#ifndef TritonPlayerSDK_TritonPlayerSDK_h +#define TritonPlayerSDK_TritonPlayerSDK_h + +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import + +#endif + +/** This is the library header. Import this file to import all of the public types in Triton Player Framework. + + */ diff --git a/ios/TritonPlayerSDK.framework/Versions/Current/TritonPlayerSDK b/ios/TritonPlayerSDK.framework/Versions/Current/TritonPlayerSDK new file mode 100644 index 0000000..2b5827d Binary files /dev/null and b/ios/TritonPlayerSDK.framework/Versions/Current/TritonPlayerSDK differ diff --git a/ios/TritonPlayerSDK/TritonPlayerSDK.a b/ios/TritonPlayerSDK/TritonPlayerSDK.a deleted file mode 100644 index 323c349..0000000 Binary files a/ios/TritonPlayerSDK/TritonPlayerSDK.a and /dev/null differ diff --git a/ios/TritonPlayerSDK/TritonPlayerSDK.h b/ios/TritonPlayerSDK/TritonPlayerSDK.h deleted file mode 100644 index d4bebee..0000000 --- a/ios/TritonPlayerSDK/TritonPlayerSDK.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// TritonPlayerSDK.h -// TritonPlayer -// -// Copyright 2014 Triton Digital. All rights reserved. -// - -#ifndef TritonPlayerSDK_TritonPlayerSDK_h -#define TritonPlayerSDK_TritonPlayerSDK_h - -#import "TritonPlayer.h" -#import "CuePointEvent.h" - -#import "TDBannerView.h" -#import "TDSyncBannerView.h" -#import "TDAdLoader.h" -#import "TDAd.h" -#import "TDCompanionBanner.h" -#import "TDBannerViewDelegate.h" -#import "TDAdRequestURLBuilder.h" -#import "TDInterstitialAd.h" -#import "TDInterstitialAdDelegate.h" -#import "TDSBMPlayer.h" -#import "TDCuePointHistory.h" -#import "TDAuthUtils.h" - -#import "TDAnalyticsTracker.h" - -#endif - -/** This is the library header. Import this file to import all of the public types in Triton Player Framework. - - */ diff --git a/package-lock.json b/package-lock.json index a229628..a215f01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2413,7 +2413,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2434,12 +2435,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2454,17 +2457,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2581,7 +2587,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2593,6 +2600,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2607,6 +2615,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2614,12 +2623,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2638,6 +2649,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2718,7 +2730,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2730,6 +2743,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2815,7 +2829,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2851,6 +2866,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2870,6 +2886,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2913,12 +2930,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -4117,9 +4136,9 @@ "dev": true }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", diff --git a/yarn.lock b/yarn.lock index ea53c94..974eb15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2685,9 +2685,9 @@ minizlib@^1.1.1: minipass "^2.2.1" mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1"