/// <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;
 }
Exemple #2
0
        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;
     }
 }
Exemple #5
0
        /// <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;
 }
 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;
 }
Exemple #11
0
        /// <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);
        }
 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);
     }
 }
Exemple #18
0
        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();
        }
        internal VpaidLinearAdViewModel(IVpaid vpaid, MediaPlayer mediaPlayer)
        {
            MediaPlayer = mediaPlayer;
            Vpaid       = vpaid;
            if (Vpaid is IVpaid2)
            {
                Vpaid2 = Vpaid as IVpaid2;
            }
            state = vPaidState.None;

            WireVpaid();
            WireMediaPlayer();
        }
Exemple #21
0
        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);
        }
Exemple #22
0
        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);
     }
 }
Exemple #26
0
        /// <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);
        }
Exemple #27
0
        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));
            }
        }
Exemple #28
0
        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();
        }
Exemple #29
0
 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);
 }
Exemple #30
0
 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);
            }
        }
Exemple #32
0
        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 /> 
 protected override void UnloadPlayer(IVpaid adPlayer)
 {
     base.UnloadPlayer(adPlayer);
     var uiElement = adPlayer as UIElement;
     MediaPlayer.RemoveInteractiveElement(uiElement);
 }
 /// <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
 }
 /// <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);
 }
 void OnUnloadPlayer(IVpaid player)
 {
     if (UnloadPlayer != null) UnloadPlayer(this, new UnloadPlayerEventArgs(player));
 }
        /// <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 void RemoveChild(IVpaid AdPlayer)
 {
     base.RemoveChild(AdPlayer);
     ((Border)target).Child = null;
 }
 private void HideIcons(IVpaid player)
 {
     if (activeIcons.ContainsKey(player))
     {
         foreach (var cts in activeIcons[player])
         {
             cts.Cancel();
         }
         activeIcons.Remove(player);
     }
 }
 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;
     }
 }
 public DeactivateAdUnitEventArgs(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource)
 {
     Player = player;
     CreativeSource = creativeSource;
     CreativeConcept = creativeConcept;
     AdSource = adSource;
 }
        /// <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;
            }
        }
 public UnloadPlayerEventArgs(IVpaid player)
 {
     Player = player;
 }
 public ActiveCreative(IVpaid Player, ICreativeSource Source, IAdTarget Target)
 {
     this.Player = Player;
     this.Source = Source;
     this.Target = Target;
 }
 /// <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;
 }