コード例 #1
0
ファイル: DvrPlanExec.cs プロジェクト: weedkiller/SRSManager
        private bool getDvrOnorOff(StreamDvrPlan sdp)
        {
            var dvr = VhostDvrApis.GetVhostDvr(sdp.DeviceId, sdp.VhostDomain, out ResponseStruct rs);

            if (dvr == null)
            {
                return(false);
            }
            string?dvrApply = dvr.Dvr_apply !;

            dvrApply = dvrApply.Replace(";", "");
            List <string> dvrStreams = new List <string>();

            if (dvrApply.Trim().ToLower().Equals("all"))
            {
                dvrApply = "";
            }
            if (!string.IsNullOrEmpty(dvrApply))
            {
                dvrStreams = Regex.Split(dvrApply, @"[\s]+").ToList();
                if (!dvrStreams.Contains((sdp.App + "/" + sdp.Stream).Trim()))
                {
                    return(false);
                }

                return(true);
            }


            return(false);
        }
コード例 #2
0
        private void setDvrOnorOff(StreamDvrPlan sdp, bool eanble)
        {
            var dvr = VhostDvrApis.GetVhostDvr(sdp.DeviceId, sdp.VhostDomain, out ResponseStruct rs);

            if (dvr != null)
            {
                string?       dvrApply   = dvr.Dvr_apply !;
                List <string> dvrStreams = new List <string>();
                if (!string.IsNullOrEmpty(dvrApply))
                {
                    dvrStreams = Regex.Split(dvrApply, @"[\s]+").ToList();
                }


                if (dvrStreams.Count == 0)
                {
                    dvrStreams.Add("");
                }

                for (int i = 0; i <= dvrStreams.Count - 1; i++)
                {
                    dvrStreams[i] = dvrStreams[i].TrimEnd(';').Trim();
                }

                bool needWrite = false;
                switch (eanble)
                {
                case true:
                    if (!dvrStreams.Contains((sdp.App + "/" + sdp.Stream).Trim()))
                    {
                        dvrStreams.Add((sdp.App + "/" + sdp.Stream).Trim());
                        needWrite = true;
                    }

                    break;

                case false:
                    if (dvrStreams.Contains((sdp.App + "/" + sdp.Stream).Trim()))
                    {
                        dvrStreams.Remove((sdp.App + "/" + sdp.Stream).Trim());
                        needWrite = true;
                    }

                    break;
                }

                if (needWrite)
                {
                    dvr.Dvr_apply = "";
                    foreach (var str in dvrStreams)
                    {
                        dvr.Dvr_apply += str + "\t";
                    }

                    dvr.Dvr_apply = dvr.Dvr_apply.TrimEnd('\t');
                    VhostDvrApis.SetVhostDvr(sdp.DeviceId, sdp.VhostDomain, dvr, out rs);
                    SystemApis.RefreshSrsObject(sdp.DeviceId, out rs);
                }
            }
        }
コード例 #3
0
ファイル: VhostDvrController.cs プロジェクト: yefy/SRSManager
        public JsonResult GetVhostDvr(string deviceId, string vhostDomain)
        {
            ResponseStruct rss = CommonFunctions.CheckParams(new object[] { deviceId, vhostDomain });

            if (rss.Code != ErrorNumber.None)
            {
                return(Program.CommonFunctions.DelApisResult(null !, rss));
            }

            var rt = VhostDvrApis.GetVhostDvr(deviceId, vhostDomain, out ResponseStruct rs);

            return(Program.CommonFunctions.DelApisResult(rt, rs));
        }