コード例 #1
0
ファイル: B回放_按时间.cs プロジェクト: xiaomiwk/K_gps
        protected virtual void On播放状态变化(E播放状态 __状态)
        {
            var handler = 播放状态变化;

            if (handler != null)
            {
                handler(__状态);
            }
        }
コード例 #2
0
ファイル: B回放_按频率.cs プロジェクト: xiaomiwk/K_gps
        public void 初始化(List <MGPS> __GPS数据)
        {
            _当前播放状态 = E播放状态.初始化;
            On播放状态变化(_当前播放状态);

            //查询GPS数据
            实际开始时间   = __GPS数据.First().时间;
            实际结束时间   = __GPS数据.Last().时间;
            _GPS数据列表 = new List <MGPS>(__GPS数据);
        }
コード例 #3
0
ファイル: B回放_按频率.cs プロジェクト: xiaomiwk/K_gps
 public void 停止()
 {
     if (_GPS数据列表.Count > 0)
     {
         On位置更新(_GPS数据列表[_GPS数据列表.Count - 1]);
     }
     _当前播放状态 = E播放状态.停止;
     On播放状态变化(_当前播放状态);
     On播放进度变化(100);
     On当前时间变化(实际结束时间);
     _播放定时器.Dispose();
 }
コード例 #4
0
ファイル: F回放_按频率.cs プロジェクト: xiaomiwk/K_gps
        public void 显示播放状态(E播放状态 状态)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new Action <E播放状态>(显示播放状态), 状态);
                return;
            }
            this.in速度.Enabled  = true;
            this.do暂停.Enabled  = true;
            this.do播放.Enabled  = true;
            this.do停止.Enabled  = true;
            this.out进度.Enabled = false;
            switch (状态)
            {
            case E播放状态.可用:
                this.do暂停.Enabled = false;
                this.do播放.Enabled = false;
                this.do停止.Enabled = false;
                this.in速度.Enabled = false;
                break;

            case E播放状态.初始化:
                this.do播放.BringToFront();
                this.do暂停.Enabled = false;
                this.do停止.Enabled = false;
                break;

            case E播放状态.播放:
                this.out进度.Enabled = true;
                this.do播放.Enabled  = false;
                this.do暂停.BringToFront();
                break;

            case E播放状态.暂停:
                this.do播放.BringToFront();
                this.do暂停.Enabled = false;
                break;

            case E播放状态.停止:
                this.do播放.BringToFront();
                this.do停止.Enabled = false;
                this.do暂停.Enabled = false;
                break;

            default:
                throw new ArgumentOutOfRangeException("状态");
            }
        }
コード例 #5
0
ファイル: B回放_按时间.cs プロジェクト: xiaomiwk/K_gps
 public void 播放(int __倍速)
 {
     _播放倍速 = __倍速;
     if (_当前播放状态 == E播放状态.初始化 || _当前播放状态 == E播放状态.停止)
     {
         _回放标识++;
         _当前播放时间 = 实际开始时间;
         _当前播放状态 = E播放状态.播放;
         _播放定时器  = new Timer(定时执行, _回放标识, 0, _定时器间隔);
     }
     else
     {
         _当前播放状态 = E播放状态.播放;
     }
     On播放状态变化(_当前播放状态);
 }
コード例 #6
0
ファイル: B回放_按频率.cs プロジェクト: xiaomiwk/K_gps
 public void 播放(int __频率)
 {
     _定时器间隔 = 1000 / __频率;
     if (_当前播放状态 == E播放状态.初始化 || _当前播放状态 == E播放状态.停止)
     {
         _回放标识++;
         _当前播放时间 = 实际开始时间;
         _播放索引   = 0;
         _当前播放状态 = E播放状态.播放;
         _播放定时器  = new Timer(定时执行, _回放标识, 0, _定时器间隔);
     }
     else
     {
         _当前播放状态 = E播放状态.播放;
     }
     On播放状态变化(_当前播放状态);
 }
コード例 #7
0
ファイル: B回放_按时间.cs プロジェクト: xiaomiwk/K_gps
 public void 停止()
 {
     if (_GPS数据列表 != null && _GPS数据列表.Count > 0)
     {
         foreach (var __kv in _GPS数据列表)
         {
             var __号码    = __kv.Key;
             var __GPS列表 = __kv.Value;
             if (__GPS列表.Count > 0)
             {
                 On位置更新(__号码, __GPS列表.Last());
             }
         }
     }
     _当前播放状态 = E播放状态.停止;
     On播放状态变化(_当前播放状态);
     On播放进度变化(100);
     On当前时间变化(实际结束时间);
     _播放定时器.Dispose();
 }
コード例 #8
0
ファイル: B回放_按时间.cs プロジェクト: xiaomiwk/K_gps
        public void 初始化(Dictionary <string, List <MGPS> > 回放参数)
        {
            _当前播放状态 = E播放状态.初始化;
            On播放状态变化(_当前播放状态);

            //查询GPS数据
            实际开始时间 = DateTime.MaxValue;
            实际结束时间 = DateTime.MinValue;
            foreach (var __kv in 回放参数)
            {
                if (__kv.Value.Count > 0)
                {
                    if (__kv.Value.First().时间 < 实际开始时间)
                    {
                        实际开始时间 = __kv.Value.First().时间;
                    }
                    if (__kv.Value.Last().时间 > 实际结束时间)
                    {
                        实际结束时间 = __kv.Value.Last().时间;
                    }
                    _GPS数据列表[__kv.Key] = new List <MGPS>(__kv.Value);
                }
            }
        }
コード例 #9
0
ファイル: B回放_按时间.cs プロジェクト: xiaomiwk/K_gps
 public void 暂停()
 {
     _当前播放状态 = E播放状态.暂停;
     On播放状态变化(_当前播放状态);
 }