/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (!(AdPlayer is FrameworkElement)) throw new ArgumentException(); ((FrameworkElement)AdPlayer).SetValue(UserControl.NameProperty, target.Name + ((FrameworkElement)AdPlayer).Name + AdPlayer.GetHashCode()); adPlayer = AdPlayer; return true; }
internal static async Task <bool> PlayAdAsync(this IVpaid vpaid, CancellationToken cancellationToken) #endif { var errorTask = vpaid.GetErrorTask(cancellationToken); var stoppedTask = vpaid.GetStoppedTask(cancellationToken); var approachingEndTask = vpaid.GetApproachingEndTask(cancellationToken); var cancellationTask = cancellationToken.AsTask(); #if SILVERLIGHT && !WINDOWS_PHONE || WINDOWS_PHONE7 var completedTask = await TaskEx.WhenAny(stoppedTask, approachingEndTask, errorTask, cancellationTask); #else var completedTask = await Task.WhenAny(stoppedTask, approachingEndTask, errorTask, cancellationTask); #endif bool result = true; if (completedTask == errorTask) { throw errorTask.Result; } else if (completedTask == cancellationTask) { vpaid.StopAd(); } else if (completedTask == approachingEndTask) { result = false; } cancellationToken.ThrowIfCancellationRequested(); return(result); }
void OnUnloadPlayer(IVpaid player) { if (UnloadPlayer != null) { UnloadPlayer(this, new UnloadPlayerEventArgs(player)); } }
private void UnhookPlayer(IVpaid player) { player.AdLoaded -= player_AdLoaded; player.AdStarted -= player_AdStarted; player.AdLinearChanged -= player_AdLinearChanged; player.AdLog -= player_AdLog; player.AdUserAcceptInvitation -= player_AdUserAcceptInvitation; player.AdUserClose -= player_AdUserClose; player.AdExpandedChanged -= player_AdExpandedChanged; player.AdPlaying -= player_AdPlaying; player.AdPaused -= player_AdPaused; player.AdVolumeChanged -= player_AdVolumeChanged; player.AdClickThru -= player_AdClickThru; player.AdError -= player_AdError; player.AdImpression -= player_AdImpression; player.AdVideoFirstQuartile -= player_AdVideoFirstQuartile; player.AdVideoMidpoint -= player_AdVideoMidpoint; player.AdVideoThirdQuartile -= player_AdVideoThirdQuartile; player.AdVideoComplete -= player_AdVideoComplete; player.AdRemainingTimeChange -= player_AdRemainingTimeChange; player.AdStopped -= player_AdStopped; if (player is IVpaid2) { var vpaid2 = player as IVpaid2; vpaid2.AdSkipped -= vpaid2_AdSkipped; vpaid2.AdInteraction -= vpaid2_AdInteraction; } }
/// <inheritdoc /> protected override void UnloadPlayer(IVpaid adPlayer) { base.UnloadPlayer(adPlayer); var uiElement = adPlayer as UIElement; MediaPlayer.RemoveInteractiveElement(uiElement); }
public DeactivateAdUnitEventArgs(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource) { Player = player; CreativeSource = creativeSource; CreativeConcept = creativeConcept; AdSource = adSource; }
internal ActiveAdUnit(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource) { CreativeSource = creativeSource; Player = player; CreativeConcept = creativeConcept; AdSource = adSource; }
/// <inheritdoc /> protected override void LoadPlayer(IVpaid adPlayer) { // set visibility to support preloading. MediaElement won't work unless it is contained in a visible parent AdContainer.Visibility = Visibility.Visible; base.LoadPlayer(adPlayer); var uiElement = adPlayer as UIElement; MediaPlayer.AddInteractiveElement(uiElement, false, false); }
/// <inheritdoc /> public override void RemoveChild(IVpaid AdPlayer) { if (adPlayer != AdPlayer) { throw new ArgumentException(); } adPlayer = null; }
public ActivateAdUnitEventArgs(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource, IEnumerable <ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules) { Player = player; AdSource = adSource; CreativeConcept = creativeConcept; CreativeSource = creativeSource; Companions = companions; SuggestedCompanionRules = suggestedCompanionRules; }
/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (((ContentControl)target).Content == AdPlayer) return false; if (base.AddChild(AdPlayer)) { ((ContentControl)target).Content = AdPlayer; return true; } else return false; }
/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (!(AdPlayer is FrameworkElement)) { throw new ArgumentException(); } ((FrameworkElement)AdPlayer).SetValue(UserControl.NameProperty, target.Name + ((FrameworkElement)AdPlayer).Name + AdPlayer.GetHashCode()); adPlayer = AdPlayer; return(true); }
/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (((Panel)target).Children.Contains(AdPlayer as UIElement)) return false; if (base.AddChild(AdPlayer)) { ((Panel)target).Children.Add(AdPlayer as UIElement); return true; } else return false; }
/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (((Border)target).Child == AdPlayer) return false; if (AdPlayer is UIElement && base.AddChild(AdPlayer)) { ((Border)target).Child = (UIElement)AdPlayer; return true; } else return false; }
private void HideIcons(IVpaid player) { if (activeIcons.ContainsKey(player)) { foreach (var cts in activeIcons[player]) { cts.Cancel(); } activeIcons.Remove(player); } }
void player_AdStopped(object sender, EventArgs e) { IVpaid vp = sender as IVpaid; var ad = activeAds[vp]; var userState = userStates[ad]; if (AdStopped != null) { AdStopped(this, new ActiveCreativeEventArgs(ad, userState)); } }
internal VpaidLinearAdViewModel(IVpaid vpaid, MediaPlayer mediaPlayer) { MediaPlayer = mediaPlayer; Vpaid = vpaid; if (Vpaid is IVpaid2) { Vpaid2 = Vpaid as IVpaid2; } state = vPaidState.None; WireVpaid(); WireMediaPlayer(); }
void player_AdStarted(object sender, EventArgs e) { IVpaid vp = sender as IVpaid; var ad = activeAds[vp]; var adSource = ad.Source; var userState = userStates[ad]; if (AdStarted != null) { AdStarted(this, new ActiveCreativeEventArgs(ad, userState)); } TrackEvent(adSource, TrackingEventEnum.start); }
void player_AdLoaded(object sender, EventArgs args) { IVpaid vp = sender as IVpaid; if (vp != null) { var ad = activeAds[vp]; var userState = userStates[ad]; if (AdLoaded != null) { AdLoaded(this, new ActiveCreativeEventArgs(ad, userState)); } TrackEvent(ad.Source, TrackingEventEnum.creativeView); } }
/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (((Panel)target).Children.Contains(AdPlayer as UIElement)) { return(false); } if (base.AddChild(AdPlayer)) { ((Panel)target).Children.Add(AdPlayer as UIElement); return(true); } else { return(false); } }
/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (((ContentControl)target).Content == AdPlayer) { return(false); } if (base.AddChild(AdPlayer)) { ((ContentControl)target).Content = AdPlayer; return(true); } else { return(false); } }
/// <inheritdoc /> public override bool AddChild(IVpaid AdPlayer) { if (((Border)target).Child == AdPlayer) { return(false); } if (AdPlayer is UIElement && base.AddChild(AdPlayer)) { ((Border)target).Child = (UIElement)AdPlayer; return(true); } else { return(false); } }
/// <inheritdoc /> protected override IVpaid GetPlayer(ICreativeSource creativeSource) { IVpaid result = null; // look for ad player factories in the plugin collection. Try each one until you find a player foreach (var factory in MediaPlayer.Plugins.OfType <IAdPlayerFactoryPlugin>()) { var player = factory.GetPlayer(creativeSource); if (player != null) { result = player; break; } } return(result); }
void player_AdError(object sender, VpaidMessageEventArgs e) { System.Diagnostics.Debug.WriteLine(e.Message); IVpaid vp = sender as IVpaid; var ad = activeAds[vp]; var userState = userStates[ad]; var adSource = ad.Source; TrackEvent(adSource, TrackingEventEnum.error); if (AdFailed != null) { AdFailed(this, new ActiveCreativeEventArgs(ad, userState)); } }
internal static async Task StopAdAsync(this IVpaid vpaid, CancellationToken cancellationToken) #endif { var errorTask = vpaid.GetErrorTask(cancellationToken); var stoppedTask = vpaid.GetStoppedTask(cancellationToken); var cancellationTask = cancellationToken.AsTask(); vpaid.StopAd(); #if SILVERLIGHT && !WINDOWS_PHONE || WINDOWS_PHONE7 var completedTask = await TaskEx.WhenAny(stoppedTask, errorTask, cancellationTask); #else var completedTask = await Task.WhenAny(stoppedTask, errorTask, cancellationTask); #endif if (completedTask == errorTask) { throw errorTask.Result; } cancellationToken.ThrowIfCancellationRequested(); }
private void UnhookPlayer(IVpaid player) { player.AdLinearChanged -= new EventHandler(player_AdLinearChanged); player.AdLog -= new EventHandler <VpaidMessageEventArgs>(player_AdLog); player.AdUserAcceptInvitation -= new EventHandler(player_AdUserAcceptInvitation); player.AdUserClose -= new EventHandler(player_AdUserClose); player.AdExpandedChanged -= new EventHandler(player_AdExpandedChanged); player.AdResumed -= new EventHandler(player_AdResumed); player.AdPaused -= new EventHandler(player_AdPaused); player.AdVolumeChanged -= new EventHandler(player_AdVolumeChanged); player.AdClickThru -= new EventHandler <ClickThroughEventArgs>(player_AdClickThru); player.AdError -= new EventHandler <VpaidMessageEventArgs>(player_AdError); player.AdImpression -= new EventHandler(player_AdImpression); player.AdVideoFirstQuartile -= new EventHandler(player_AdVideoFirstQuartile); player.AdVideoMidpoint -= new EventHandler(player_AdVideoMidpoint); player.AdVideoThirdQuartile -= new EventHandler(player_AdVideoThirdQuartile); player.AdVideoComplete -= new EventHandler(player_AdVideoComplete); player.AdRemainingTimeChange -= new EventHandler(player_AdRemainingTimeChange); //player.AdLoaded -= new EventHandler(player_AdLoaded); player.AdStopped -= new EventHandler(player_AdStopped); }
private void HookupPlayer(IVpaid player) { player.AdLinearChanged += new EventHandler(player_AdLinearChanged); player.AdLog += new EventHandler <VpaidMessageEventArgs>(player_AdLog); player.AdUserAcceptInvitation += new EventHandler(player_AdUserAcceptInvitation); player.AdUserClose += new EventHandler(player_AdUserClose); player.AdExpandedChanged += new EventHandler(player_AdExpandedChanged); player.AdResumed += new EventHandler(player_AdResumed); player.AdPaused += new EventHandler(player_AdPaused); player.AdVolumeChanged += new EventHandler(player_AdVolumeChanged); player.AdClickThru += new EventHandler <ClickThroughEventArgs>(player_AdClickThru); player.AdError += new EventHandler <VpaidMessageEventArgs>(player_AdError); player.AdImpression += new EventHandler(player_AdImpression); player.AdVideoFirstQuartile += new EventHandler(player_AdVideoFirstQuartile); player.AdVideoMidpoint += new EventHandler(player_AdVideoMidpoint); player.AdVideoThirdQuartile += new EventHandler(player_AdVideoThirdQuartile); player.AdVideoComplete += new EventHandler(player_AdVideoComplete); player.AdRemainingTimeChange += new EventHandler(player_AdRemainingTimeChange); //we intercept these with the timeouthandler and invoke internally instead //player.AdLoaded += new EventHandler(player_AdLoaded); player.AdStopped += new EventHandler(player_AdStopped); }
/// <summary> /// Handshakes with the current player to test version compatibility. /// </summary> /// <param name="adPlayer">The player to handshake with.</param> /// <returns>Flag indicating whether the player's version is supported.</returns> public bool Handshake(IVpaid adPlayer) { // handshake with the ad player to make sure the version of VAST is OK string strPlayerVersion = null; try { strPlayerVersion = adPlayer.HandshakeVersion(HandlerVersion.ToString()); } catch (Exception ex) { OnLog(new ActiveAdUnitLogEventArgs(null, "VPAID.HandshakeVersion Exception: " + ex.Message)); } try { Version playerVersion = new Version(strPlayerVersion); return(playerVersion <= HandlerVersion); } catch { return(false); } }
internal static async Task InitAdAsync(this IVpaid vpaid, double width, double height, string viewMode, int desiredBitrate, string creativeData, string environmentVariables, CancellationToken cancellationToken) #endif { var errorTask = vpaid.GetErrorTask(cancellationToken); var loadedTask = vpaid.GetLoadedTask(cancellationToken); var cancellationTask = cancellationToken.AsTask(); vpaid.InitAd(width, height, viewMode, desiredBitrate, creativeData, environmentVariables); #if SILVERLIGHT && !WINDOWS_PHONE || WINDOWS_PHONE7 var completedTask = await TaskEx.WhenAny(loadedTask, errorTask, cancellationTask); #else var completedTask = await Task.WhenAny(loadedTask, errorTask, cancellationTask); #endif if (completedTask == errorTask) { throw errorTask.Result; } else if (completedTask == cancellationTask) { vpaid.StopAd(); } cancellationToken.ThrowIfCancellationRequested(); }
/// <inheritdoc /> public abstract void RemoveChild(IVpaid adPlayer);
/// <inheritdoc /> public abstract bool AddChild(IVpaid adPlayer);
public ActivateAdUnitEventArgs(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource, IEnumerable<ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules) { Player = player; AdSource = adSource; CreativeConcept = creativeConcept; CreativeSource = creativeSource; Companions = companions; SuggestedCompanionRules = suggestedCompanionRules; }
public DeactivateAdUnitEventArgs(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource, Exception error) : this(creativeSource, player, creativeConcept, adSource) { Error = error; }
/// <inheritdoc /> public override void RemoveChild(IVpaid AdPlayer) { base.RemoveChild(AdPlayer); ((Panel)target).Children.Remove(AdPlayer as UIElement); }
public ActiveCreative(IVpaid Player, ICreativeSource Source, IAdTarget Target) { this.Player = Player; this.Source = Source; this.Target = Target; }
/// <summary> /// Called to help load companion ads. /// </summary> /// <param name="companions">The companion ads that should show.</param> /// <param name="suggestedCompanionRules">The suggested rules for how to show companions.</param> /// <param name="creativeSource">The creative source associated with the companions.</param> /// <param name="adPlayer">The VPAID ad player associated with the companions.</param> /// <param name="creativeConcept">The creative concept for the companions. Can help provide info to assist with companion life cycle business logic.</param> /// <param name="adSource">The ad source from which the companion ads came.</param> protected virtual void LoadCompanions(IEnumerable <ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules, ICreativeSource creativeSource, IVpaid adPlayer, object creativeConcept, IAdSource adSource) { if (previouscreativeConcept != null && creativeConcept != previouscreativeConcept) { // remove all old companions UnloadCompanions(); } int failureCount = 0; int total = 0; companionUnloadActions.Clear(); try { if (companions != null) { foreach (var companion in companions) { Action undoAction; if (!TryLoadCompanion(companion, out undoAction)) { failureCount++; } else { companionUnloadActions.Add(undoAction); } total++; } } if (suggestedCompanionRules == CompanionAdsRequired.Any && total > 0 && failureCount == total) { throw new Exception("All companion ads failed"); } if (suggestedCompanionRules == CompanionAdsRequired.All && failureCount > 0) { throw new Exception("Not all companion ads succeeded"); } previouscreativeConcept = creativeConcept; } catch { UnloadCompanions(); throw; } }
/// <summary> /// Called when an ad player should be unloaded. /// </summary> /// <param name="player">The VPAID player to unload.</param> protected virtual void UnloadPlayer(IVpaid player) { var uiElement = player as UIElement; AdContainer.Children.Remove(uiElement); }
/// <summary> /// Called when a new VPAID player should be loaded. /// This does not mean it should be made visibile since it could be pre-loading. /// </summary> /// <param name="adPlayer">The VPAID player to load.</param> protected virtual void LoadPlayer(IVpaid adPlayer) { var uiElement = adPlayer as UIElement; AdContainer.Children.Add(uiElement); }
/// <inheritdoc /> public override bool AddChild(IVpaid adPlayer) { // nothing to do return true; }
/// <inheritdoc /> public override void RemoveChild(IVpaid adPlayer) { // nothing to do }
void OnUnloadPlayer(IVpaid player) { if (UnloadPlayer != null) UnloadPlayer(this, new UnloadPlayerEventArgs(player)); }
/// <inheritdoc /> public override void RemoveChild(IVpaid AdPlayer) { base.RemoveChild(AdPlayer); ((Border)target).Child = null; }
public UnloadPlayerEventArgs(IVpaid player) { Player = player; }
/// <inheritdoc /> public override void RemoveChild(IVpaid AdPlayer) { base.RemoveChild(AdPlayer); ((ContentControl)target).Content = null; }
private void HookupPlayer(IVpaid player) { player.AdLinearChanged += new EventHandler(player_AdLinearChanged); player.AdLog += new EventHandler<VpaidMessageEventArgs>(player_AdLog); player.AdUserAcceptInvitation += new EventHandler(player_AdUserAcceptInvitation); player.AdUserClose += new EventHandler(player_AdUserClose); player.AdExpandedChanged += new EventHandler(player_AdExpandedChanged); player.AdResumed += new EventHandler(player_AdResumed); player.AdPaused += new EventHandler(player_AdPaused); player.AdVolumeChanged += new EventHandler(player_AdVolumeChanged); player.AdClickThru += new EventHandler<ClickThroughEventArgs>(player_AdClickThru); player.AdError += new EventHandler<VpaidMessageEventArgs>(player_AdError); player.AdImpression += new EventHandler(player_AdImpression); player.AdVideoFirstQuartile += new EventHandler(player_AdVideoFirstQuartile); player.AdVideoMidpoint += new EventHandler(player_AdVideoMidpoint); player.AdVideoThirdQuartile += new EventHandler(player_AdVideoThirdQuartile); player.AdVideoComplete += new EventHandler(player_AdVideoComplete); player.AdRemainingTimeChange += new EventHandler(player_AdRemainingTimeChange); //we intercept these with the timeouthandler and invoke internally instead //player.AdLoaded += new EventHandler(player_AdLoaded); player.AdStopped += new EventHandler(player_AdStopped); }
private void UnhookPlayer(IVpaid player) { player.AdLinearChanged -= new EventHandler(player_AdLinearChanged); player.AdLog -= new EventHandler<VpaidMessageEventArgs>(player_AdLog); player.AdUserAcceptInvitation -= new EventHandler(player_AdUserAcceptInvitation); player.AdUserClose -= new EventHandler(player_AdUserClose); player.AdExpandedChanged -= new EventHandler(player_AdExpandedChanged); player.AdResumed -= new EventHandler(player_AdResumed); player.AdPaused -= new EventHandler(player_AdPaused); player.AdVolumeChanged -= new EventHandler(player_AdVolumeChanged); player.AdClickThru -= new EventHandler<ClickThroughEventArgs>(player_AdClickThru); player.AdError -= new EventHandler<VpaidMessageEventArgs>(player_AdError); player.AdImpression -= new EventHandler(player_AdImpression); player.AdVideoFirstQuartile -= new EventHandler(player_AdVideoFirstQuartile); player.AdVideoMidpoint -= new EventHandler(player_AdVideoMidpoint); player.AdVideoThirdQuartile -= new EventHandler(player_AdVideoThirdQuartile); player.AdVideoComplete -= new EventHandler(player_AdVideoComplete); player.AdRemainingTimeChange -= new EventHandler(player_AdRemainingTimeChange); //player.AdLoaded -= new EventHandler(player_AdLoaded); player.AdStopped -= new EventHandler(player_AdStopped); }
/// <summary> /// Handshakes with the current player to test version compatibility. /// </summary> /// <param name="adPlayer">The player to handshake with.</param> /// <returns>Flag indicating whether the player's version is supported.</returns> public bool Handshake(IVpaid adPlayer) { // handshake with the ad player to make sure the version of VAST is OK string strPlayerVersion = null; try { strPlayerVersion = adPlayer.HandshakeVersion(HandlerVersion.ToString()); } catch (Exception ex) { OnLog(new ActiveCreativeLogEventArgs(null, "VPAID.HandshakeVersion Exception: " + ex.Message)); } try { Version playerVersion = new Version(strPlayerVersion); return (playerVersion <= HandlerVersion); } catch { return false; } }
/// <summary> /// Called to help load companion ads. /// </summary> /// <param name="companions">The companion ads that should show.</param> /// <param name="suggestedCompanionRules">The suggested rules for how to show companions.</param> /// <param name="creativeSource">The creative source associated with the companions.</param> /// <param name="adPlayer">The VPAID ad player associated with the companions.</param> /// <param name="creativeConcept">The creative concept for the companions. Can help provide info to assist with companion life cycle business logic.</param> /// <param name="adSource">The ad source from which the companion ads came.</param> protected virtual void LoadCompanions(IEnumerable<ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules, ICreativeSource creativeSource, IVpaid adPlayer, object creativeConcept, IAdSource adSource) { if (previouscreativeConcept != null && creativeConcept != previouscreativeConcept) { // remove all old companions UnloadCompanions(); } int failureCount = 0; int total = 0; companionUnloadActions.Clear(); try { if (companions != null) { foreach (var companion in companions) { Action undoAction; if (!TryLoadCompanion(companion, out undoAction)) { failureCount++; } else { companionUnloadActions.Add(undoAction); } total++; } } if (suggestedCompanionRules == CompanionAdsRequired.Any && total > 0 && failureCount == total) throw new Exception("All companion ads failed"); if (suggestedCompanionRules == CompanionAdsRequired.All && failureCount > 0) throw new Exception("Not all companion ads succeeded"); previouscreativeConcept = creativeConcept; } catch { UnloadCompanions(); throw; } }
/// <inheritdoc /> public override void RemoveChild(IVpaid AdPlayer) { if (adPlayer != AdPlayer) throw new ArgumentException(); adPlayer = null; }
internal VpaidNonLinearAdViewModel(IVpaid vpaid, MediaPlayer mediaPlayer) : base(mediaPlayer) { Vpaid = vpaid; }