コード例 #1
0
 private void button3_Click(object sender, EventArgs e)
 {
     if (casparDevice.IsConnected)
     {
         casparDevice.SendString("INFO");
         string text = "";
         casparDevice.RetrieveData(text);
         System.Diagnostics.Debug.WriteLine(DateTime.Now + ": " + text);
         casparDevice.RetrieveData("MY_DATA");
     }
 }
コード例 #2
0
        private void cd_send_string(string action, string channel, string layer, string media, string loop)
        {
            if (layer != "")
            {
                layer = "-" + layer;
            }
            if (media != "")
            {
                //media = "\"" + media + "\"";
                media = media.Replace(@"\", "/");
            }

            try
            {
                cd.SendString(action + " " + channel + layer + " " + media + " " + loop);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "cd_send_string");
            }
            //MessageBox.Show(action + " " + channel + layer + " " + media + " " + loop);
        }
コード例 #3
0
        public bool FadeUp(int channel, int layer, int duration, string xmlStr)
        {
            if (caspar_ == null || !caspar_.IsConnected)
            {
                return(false);
            }

            lock (this._lockServer)
            {
                var layerLoad = layer * 2;
                var layerMain = layerLoad + 1;

                var cglayer = layers.Where(o => o.Layer == layerLoad).FirstOrDefault();

                if (cglayer != null)
                {
                    caspar_.Channels[channel].Clear(layerMain);
                    var cglayerOld = layers.Where(o => o.Layer == layerMain).FirstOrDefault();
                    if (cglayerOld != null)
                    {
                        layers.Remove(cglayerOld);
                    }
                    caspar_.Channels[channel].SetOpacity(layerMain, 0, 0, Easing.None);
                    caspar_.Channels[channel].SetVolume(layerMain, 0, 0, Easing.None);

                    bool fadeOk = false;

                    if (cglayer.Type == CGType.Template)
                    {
                        try
                        {
                            CGComponentCollection components = new CGComponentCollection();
                            components.AddComponent("FadeUp", duration.ToString());
                            casparRetrieved = false;
                            caspar_.Channels[channel].CG.Update(layerLoad, 1, toStandarXml(xmlStr));
                            for (int time = 0; !casparRetrieved && caspar_.IsConnected && time < timeOut_; time += 100)
                            {
                                Thread.Sleep(100);
                            }
                            if (casparRetrieved)
                            {
                                casparRetrieved = false;
                                caspar_.Channels[channel].CG.Invoke(layerLoad, 1, "fadeUp");
                                for (int time = 0; !casparRetrieved && caspar_.IsConnected && time < timeOut_; time += 100)
                                {
                                    Thread.Sleep(100);
                                }
                                if (casparRetrieved)
                                {
                                    fadeOk = true;
                                }
                            }
                        }
                        catch { }
                    }
                    else
                    {
                        try
                        {
                            casparPlayed = false;
                            caspar_.Channels[channel].Play(layerLoad);
                            for (int time = 0; !casparPlayed && caspar_.IsConnected && time < timeOut_; timeOut_ += 100)
                            {
                                Thread.Sleep(100);
                            }
                            if (casparPlayed)
                            {
                                fadeOk = true;
                            }
                        }
                        catch { }
                    }

                    if (fadeOk)
                    {
                        var channelID = caspar_.Channels[channel].ID;
                        casparSwapOK = false;
                        caspar_.SendString("SWAP " + channelID + "-" + layerLoad + " " + channelID + "-" + layerMain);
                        for (int time = 0; !casparSwapOK && caspar_.IsConnected && time < timeOut_; timeOut_ += 100)
                        {
                            Thread.Sleep(100);
                        }
                        if (casparSwapOK)
                        {
                            if (cglayer.Type == CGType.Template)
                            {
                                caspar_.Channels[channel].SetOpacity(layerMain, 1, 0, Easing.None);
                            }
                            else
                            {
                                caspar_.Channels[channel].SetOpacity(layerMain, 1, duration / 40, Easing.None);
                            }
                            caspar_.Channels[channel].SetVolume(layerMain, 1, duration / 40, Easing.None);
                            caspar_.Channels[channel].SetVolume(layerMain, 1, duration / 40, Easing.None);

                            cglayer.Layer = layerMain;
                            caspar_.Channels[channel].Clear(layerLoad);
                            return(true);
                        }
                    }
                }

                return(false);
            }
        }