Esempio n. 1
0
        private void _engine_EngineOperation(object sender, EngineOperationEventArgs e)
        {
            Debug.WriteLine($"Plugin notification received for {e.Event}");
            if (e.Event == null)
            {
                return;
            }
            if (MediaCategory != null && e.Event.Media?.MediaCategory != MediaCategory)
            {
                return;
            }
            try
            {
                if (e.Operation == TEngineOperation.Play)
                {
                    var data = new CasparCGDataCollection();
                    foreach (var dataItem in Data)
                    {
                        switch (dataItem.Value)
                        {
                        case DataValueKind.CurrentItemName:
                            data.SetData(dataItem.Name, e.Event.EventName);
                            break;

                        case DataValueKind.CurrentItemDurationInSeconds:
                            data.SetData(dataItem.Name, e.Event.Duration.TotalSeconds.ToString(CultureInfo.InvariantCulture));
                            break;

                        case DataValueKind.NextItemName:
                            data.SetData(dataItem.Name, e.Event.GetSuccessor()?.EventName ?? string.Empty);
                            break;

                        case DataValueKind.NextShowName:
                            data.SetData(dataItem.Name, FindNextShowName(e.Event)?.EventName ?? string.Empty);
                            break;

                        case DataValueKind.NextNextItemName:
                            data.SetData(dataItem.Name, e.Event.GetSuccessor()?.GetSuccessor()?.EventName ?? string.Empty);
                            break;

                        case DataValueKind.NextNextShowName:
                            data.SetData(dataItem.Name, FindNextNextShowName(e.Event)?.EventName ?? string.Empty);
                            break;
                        }
                    }
                    Engine.Execute($"{CommandOnPlay} {data.ToAMCPEscapedXml()}");
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
            }
        }
Esempio n. 2
0
 private void _engine_EngineOperation(object sender, EngineOperationEventArgs e)
 {
     Debug.WriteLine($"Plugin notification received for {e.Event}");
     if (e.Operation == TEngineOperation.Load)
     {
     }
     //if (e.Operation == TAS.Common.TEngineOperation.Play)
     //{
     //    IServerMedia media = e.Event?.Media as IServerMedia;
     //    if (media == null)
     //        return;
     //    if (!string.IsNullOrWhiteSpace(media.IdAux) || media.MediaCategory == TAS.Common.TMediaCategory.Commercial)
     //    {
     //        UriBuilder uri = new UriBuilder(@"http://localhost/live/app/registerEvent.php");
     //        Dictionary<string, string> parameters = new Dictionary<string, string>();
     //        parameters.Add("playoutServerTimestamp", (e.Event.StartTime.Ticks / TimeSpan.TicksPerMillisecond).ToString());
     //        if (!string.IsNullOrWhiteSpace(media.IdAux))
     //            parameters.Add("eventType", media.IdAux);
     //        else
     //            parameters.Add("eventType", "STARTING");
     //        parameters.Add("eventDuration", ((int)e.Event.Duration.TotalMilliseconds).ToString());
     //        uri.Query = string.Join("&", parameters.Select(kv => string.Format("{0}={1}", kv.Key, kv.Value)));
     //        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri.Uri);
     //        req.Proxy = null;
     //        using (MemoryStream jsonData = new MemoryStream())
     //        using (var writer = new System.IO.StreamWriter(jsonData))
     //        {
     //            new Newtonsoft.Json.JsonSerializer() { Formatting = Newtonsoft.Json.Formatting.Indented, PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None }
     //            .Serialize(writer, EventProxy.FromEvent(e.Event));
     //            req.Method = "POST";
     //            req.ContentLength = jsonData.Length;
     //            req.ContentType = "application/json";
     //            Stream reqStream = req.GetRequestStream();
     //            jsonData.WriteTo(reqStream);
     //            reqStream.Close();
     //        }
     //        Debug.WriteLine(req.GetResponse());
     //    }
     //}
 }
        private void _engineOperation(object sender, EngineOperationEventArgs a)
        {
            if (a.Operation == TEngineOperation.Play)
            {
                if (a.Event.Layer == VideoLayer.Program)
                {
                    if (_trackPlayingEvent)
                        Application.Current.Dispatcher.BeginInvoke((Action)delegate()
                        {
                            var pe = _engine.PlayingEvent();
                            if (pe != null)
                                SetOnTopView(pe);
                        }, null);
                }
                NotifyPropertyChanged("VisibleEvents");
            }

            NotifyPropertyChanged("CommandStartLoaded");

            if (a.Event != null
                && _selected != null
                && a.Event == _selected.Event)
                Application.Current.Dispatcher.BeginInvoke((Action)_onSelectedChanged, null);
        }
 private void _onEngineOperation(object sender, EngineOperationEventArgs e)
 {
     if (e.Operation == TEngineOperation.Clear)
         PlayingEvent = null;
     else
         if (e.Event != null && e.Event.Layer == VideoLayer.Program
             && (e.Operation == TEngineOperation.Load || e.Operation == TEngineOperation.Play || e.Operation == TEngineOperation.Start || e.Operation == TEngineOperation.Stop) )
         {
             PlayingEvent = _engine.PlayingEvent();
         }
 }