コード例 #1
0
        internal BeepTimerCollection CreateBeepTimerCollection(TimerData td = null, bool startNow = false)
        {
            var btc = new BeepTimerCollection();

            btc.BeepTimers          = new DispatcherTimer[Count];
            btc.BeepDurations       = new int[Count];
            btc.BeepMsBeforeRinging = new int[Count];
            btc.BeepFrequecies      = new int[Count];

            int i = 0;

            foreach (Beep r in this)
            {
                var t = new DispatcherTimer(DispatcherPriority.Send);
                t.Tick += btc.TickHandler;

                btc.BeepTimers[i]          = t;
                btc.BeepMsBeforeRinging[i] = (int)r.MsBeforeRinging;
                btc.BeepDurations[i]       = (int)r.BeepDuration;
                btc.BeepFrequecies[i]      = (int)r.BeepFrequency;

                int interval = startNow ? 1 :
                               (int)td.CurrentTimeSpan.TotalMilliseconds -
                               btc.BeepMsBeforeRinging[i];

                if (interval > 0)
                {
                    t.Interval = TimeSpan.FromMilliseconds(interval);
                    t.Start();
                }

                ++i;
            }

            return(btc);
        }
コード例 #2
0
ファイル: ClockVM.cs プロジェクト: silviubogan/timed-silver
        internal void ChangeTypeOfClock(ClockM cd, Type newType)
        {
            Model.PropertyChanged -= Model_PropertyChanged;

            if (newType == typeof(TimerData))
            {
                if (cd.IsActive)
                {
                    cd.ActivateOrDeactivate();
                }

                var tdata = new TimerData(Model.MyDataFile, Model.MyDataFile.MultiAudioPlayer);

                tdata.GroupName     = cd.GroupName;
                tdata.Icon          = cd.Icon;
                tdata.Style         = cd.Style;
                tdata.UserBackColor = cd.UserBackColor;
                tdata.Tag           = cd.Tag;
                tdata.IsUnsaved     = true;
                tdata.ID            = cd.ID;
                tdata.Checkable     = cd.Checkable;
                tdata.Checked       = cd.Checked;

                Model = tdata;
            }
            else // AlarmData
            {
                if (cd.IsActive)
                {
                    cd.ActivateOrDeactivate();
                }

                var adata = new AlarmData(Model.MyDataFile, Model.MyDataFile.MultiAudioPlayer);

                adata.GroupName     = cd.GroupName;
                adata.Icon          = cd.Icon;
                adata.Style         = cd.Style;
                adata.UserBackColor = cd.UserBackColor;
                adata.Tag           = cd.Tag;
                adata.IsUnsaved     = true;
                adata.ID            = cd.ID;
                adata.Checkable     = cd.Checkable;
                adata.Checked       = cd.Checked;

                Model = adata;
            }

            Model.PropertyChanged += Model_PropertyChanged;

            RaisePropertyChanged("CurrentValue");
            RaisePropertyChanged("ResetToValue");
            RaisePropertyChanged("IsActive");
            RaisePropertyChanged("IsUnsaved");

            ClockTypeChanged?.Invoke(this, new ClockTypeChangedEventArgs()
            {
                ClockVM   = this,
                NewClockM = Model,
                OldClockM = cd
            });

            IsUnsaved = true;
        }