Ejemplo n.º 1
0
        private void InitPropGrid()
        {
            MotionArgs Args = new MotionArgs();

            this.pGridCamera.Items.Clear();

            this.mItemName = new CustomProperty(Translator.Instance.T("摄像头名称"), this.Camera.Name, false, Translator.Instance.T("摄像头设置"), Translator.Instance.T("为本摄像头分配一个名称"), true);
            this.pGridCamera.Items.Add(this.mItemName);

            string sv = "";

            if (this.Camera.PlugInVideoSource != null)
            {
                sv = this.Camera.PlugInVideoSource.LabelText;
            }
            this.mItemStream               = new CustomProperty(Translator.Instance.T("视频来源"), sv, false, Translator.Instance.T("摄像头设置"), Translator.Instance.T("设置视频来源"), true);
            this.mItemStream.ValueMember   = "Key";
            this.mItemStream.DisplayMember = "Value";
            this.mItemStream.Datasource    = this.Camera.VideoSourceCollection;
            //this.mItemStream.SelectedValue = this.Camera.Stream;
            this.pGridCamera.Items.Add(this.mItemStream);

            this.mItemCaptureFlag               = new CustomProperty(Translator.Instance.T("录像方式"), Args.GetValue(this.Camera.Capture), false, Translator.Instance.T("录像设置"), Translator.Instance.T("设置录像方式"), true);
            this.mItemCaptureFlag.ValueMember   = "Key";
            this.mItemCaptureFlag.DisplayMember = "Value";
            this.mItemCaptureFlag.Datasource    = Args.CAPTUREFLAGS;
            //this.mItemCaptureFlag.SelectedValue = this.Camera.Capture;
            this.pGridCamera.Items.Add(this.mItemCaptureFlag);

            this.mItemCaptureElapse               = new CustomProperty(Translator.Instance.T("存储方式"), Args.GetValue(this.Camera.CaptureElapse), false, Translator.Instance.T("录像设置"), Translator.Instance.T("设置录像存储的方式, 你可以选择将录像按照指定的时间段分割存储, 或者连续存储."), true);
            this.mItemCaptureElapse.ValueMember   = "Key";
            this.mItemCaptureElapse.DisplayMember = "Value";
            this.mItemCaptureElapse.Datasource    = Args.CAPTURE_ELAPSE;
            //this.mItemCaptureElapse.SelectedValue = this.Camera.CaptureElapse;
            this.pGridCamera.Items.Add(this.mItemCaptureElapse);

            CodecCollection cc = new CodecCollection();

            if (cc.KVs.Count > 0)
            {
                string codec = cc.GetValue(this.Camera.Codec, Translator.Instance.T("请指定录像编码格式."));
                this.mItemCodec                     = new CustomProperty(Translator.Instance.T("录像编码格式"), codec, false, Translator.Instance.T("录像设置"), Translator.Instance.T("设置录像采用的编码格式"), true);
                this.mItemCodec.ValueMember         = "Key";
                this.mItemCodec.DisplayMember       = "Value";
                this.mItemCodec.Datasource          = cc.KVs;
                this.mItemCodec.IsDropdownResizable = true;
                //this.mItemCodec.SelectedValue = this.Camera.Codec;
            }
            else
            {
                this.mItemCodec            = new CustomProperty(Translator.Instance.T("录像编码格式"), Translator.Instance.T("未找到合适的录像编码格式."), false, Translator.Instance.T("录像设置"), Translator.Instance.T("未找到合适的录像编码格式, 您需要安装视频编码驱动."), true);
                this.mItemCodec.IsReadOnly = true;
            }
            this.pGridCamera.Items.Add(this.mItemCodec);
            this.Camera.PlugIns.PropertyGridItemsInitialization(this.pGridCamera.Items);

            this.SetVideoSourceItemVisible(true);
            this.pGridCamera.Refresh();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Load encoder element
        /// </summary>
        /// <param name="encoderConfig"></param>
        /// <returns></returns>
        internal static IEncoder LoadEncoder(EncoderElement encoderConfig)
        {
            Debug.Assert(encoderConfig != null);

            // Create encoder
            IEncoder encoder = null;

            if (!string.IsNullOrEmpty(encoderConfig.Type))
            {
                encoder = ObjectBuilder.Build <IEncoder>(encoderConfig.Type);
            }
            else
            {
                // Create default encoder and load all local codec defs
                encoder = new Encoder();
                LoadCodecs(encoder, typeof(Encoder).Assembly, MatchHelper.WildcardToRegex(@"Owasp.Esapi.Codecs.*"));
            }

            CodecCollection codecs = encoderConfig.Codecs;

            // Load codec assemblies
            foreach (AddinAssemblyElement codecAssembly in codecs.Assemblies)
            {
                try {
                    Assembly assembly  = Assembly.Load(codecAssembly.Name);
                    Regex    typeMatch = MatchHelper.WildcardToRegex(codecAssembly.Types);

                    LoadCodecs(encoder, assembly, typeMatch);
                }
                catch (Exception exp) {
                    Esapi.Logger.Warning(LogLevels.WARN, "Failed to load codec assembly", exp);
                }
            }

            // Specific codecs
            foreach (CodecElement codecElement in codecs)
            {
                string failMessage = string.Format("Failed to load codec \"{0}\"", codecElement.Name);

                try {
                    ICodec codec = AddinBuilder <ICodec> .MakeInstance(codecElement);

                    encoder.AddCodec(codecElement.Name, codec);
                }
                catch (Exception exp) {
                    Esapi.Logger.Warning(LogLevels.WARN, failMessage, exp);
                }
            }

            return(encoder);
        }
Ejemplo n.º 3
0
        private void InitPropGrid()
        {
            MotionArgs Args = new MotionArgs();
            this.pGridCamera.Items.Clear();

            this.mItemName = new CustomProperty(Translator.Instance.T("摄像头名称"), this.Camera.Name, false, Translator.Instance.T("摄像头设置"), Translator.Instance.T("为本摄像头分配一个名称"), true);
            this.pGridCamera.Items.Add(this.mItemName);

            string sv = "";
            if (this.Camera.PlugInVideoSource != null)
            {
                sv = this.Camera.PlugInVideoSource.LabelText;
            }
            this.mItemStream = new CustomProperty(Translator.Instance.T("视频来源"), sv, false, Translator.Instance.T("摄像头设置"), Translator.Instance.T("设置视频来源"), true);
            this.mItemStream.ValueMember = "Key";
            this.mItemStream.DisplayMember = "Value";
            this.mItemStream.Datasource = this.Camera.VideoSourceCollection;
            //this.mItemStream.SelectedValue = this.Camera.Stream;
            this.pGridCamera.Items.Add(this.mItemStream);

            this.mItemCaptureFlag = new CustomProperty(Translator.Instance.T("录像方式"), Args.GetValue(this.Camera.Capture), false, Translator.Instance.T("录像设置"), Translator.Instance.T("设置录像方式"), true);
            this.mItemCaptureFlag.ValueMember = "Key";
            this.mItemCaptureFlag.DisplayMember = "Value";
            this.mItemCaptureFlag.Datasource = Args.CAPTUREFLAGS;
            //this.mItemCaptureFlag.SelectedValue = this.Camera.Capture;
            this.pGridCamera.Items.Add(this.mItemCaptureFlag);

            this.mItemCaptureElapse = new CustomProperty(Translator.Instance.T("存储方式"), Args.GetValue(this.Camera.CaptureElapse), false, Translator.Instance.T("录像设置"), Translator.Instance.T("设置录像存储的方式, 你可以选择将录像按照指定的时间段分割存储, 或者连续存储."), true);
            this.mItemCaptureElapse.ValueMember = "Key";
            this.mItemCaptureElapse.DisplayMember = "Value";
            this.mItemCaptureElapse.Datasource = Args.CAPTURE_ELAPSE;
            //this.mItemCaptureElapse.SelectedValue = this.Camera.CaptureElapse;
            this.pGridCamera.Items.Add(this.mItemCaptureElapse);

            CodecCollection cc = new CodecCollection();
            if (cc.KVs.Count > 0)
            {
                string codec = cc.GetValue(this.Camera.Codec, Translator.Instance.T("请指定录像编码格式."));
                this.mItemCodec = new CustomProperty(Translator.Instance.T("录像编码格式"), codec, false, Translator.Instance.T("录像设置"), Translator.Instance.T("设置录像采用的编码格式"), true);
                this.mItemCodec.ValueMember = "Key";
                this.mItemCodec.DisplayMember = "Value";
                this.mItemCodec.Datasource = cc.KVs;
                this.mItemCodec.IsDropdownResizable = true;
                //this.mItemCodec.SelectedValue = this.Camera.Codec;
            }
            else
            {
                this.mItemCodec = new CustomProperty(Translator.Instance.T("录像编码格式"), Translator.Instance.T("未找到合适的录像编码格式."), false, Translator.Instance.T("录像设置"), Translator.Instance.T("未找到合适的录像编码格式, 您需要安装视频编码驱动."), true);
                this.mItemCodec.IsReadOnly = true;
            }
            this.pGridCamera.Items.Add(this.mItemCodec);
            this.Camera.PlugIns.PropertyGridItemsInitialization(this.pGridCamera.Items);

            this.SetVideoSourceItemVisible(true);
            this.pGridCamera.Refresh();
        }