Esempio n. 1
0
        public virtual bool IsDownEventClose(GuitarMessage m2)
        {
            if (DownTick.IsNull() || m2.DownTick.IsNull())
            {
                return(false);
            }

            return(TickPair.IsCloseDownDown(m2.TickPair));
        }
Esempio n. 2
0
        public virtual bool IsUpEventClose(GuitarMessage m2)
        {
            if (UpTick.IsNull() || m2.UpTick.IsNull())
            {
                return(false);
            }

            return(TickPair.IsCloseUpUp(m2.TickPair));
        }
 public virtual void Remove(GuitarMessage mess)
 {
     if (mess != null)
     {
         var TMess = mess as T;
         if (TMess != null && messages.Contains(TMess))
         {
             messages.Remove(TMess);
             TMess.IsDeleted = true;
         }
     }
 }
Esempio n. 4
0
        public void Remove(GuitarMessage message)
        {
            if (message == null)
            {
                return;
            }

            if (!message.IsDeleted)
            {
                message.RemoveEvents();

                message.RemoveFromList();
            }
        }
        public void Add(GuitarMessage item)
        {
            if (item != null)
            {
                var TItem = (T)item;

                TItem.IsDeleted = false;
                if (!messages.Contains(item))
                {
                    var items = messages.Where(x => x.AbsoluteTicks == TItem.AbsoluteTicks);
                    if (items.Any())
                    {
                        if (TItem.Command == ChannelCommand.NoteOff)
                        {
                            messages.Insert(messages.IndexOf(items.First()), TItem);
                        }
                        else
                        {
                            messages.Insert(messages.IndexOf(items.Last()) + 1, TItem);
                        }
                    }
                    else
                    {
                        var gt = messages.FirstOrDefault(x => x.AbsoluteTicks > TItem.AbsoluteTicks);
                        if (gt == null)
                        {
                            messages.Add(TItem);
                        }
                        else
                        {
                            messages.Insert(messages.IndexOf(gt), TItem);
                        }
                    }
                }
            }
        }
        public void Remove(GuitarMessage message)
        {
            if (message == null)
                return;

            if (!message.IsDeleted)
            {
                message.RemoveEvents();

                message.RemoveFromList();
            }
        }
        private void DrawChords5(Graphics g, GuitarMessage c)
        {
            var chord = c as GuitarChord;
            if (chord != null)
            {

                for (int k = 0; k < 5; k++)
                {

                    var note = chord.Notes[k];
                    if (note == null)
                        continue;

                    var nb = Utility.G5Brush(note.NoteString);
                    if (chord.Selected)
                    {
                        nb = Utility.noteBGBrushSel;
                    }

                    var downTime = GetClientPointFromTime(note.StartTime);
                    var upTime = GetClientPointFromTime(note.EndTime);

                    var width = upTime - downTime;
                    if (width < Utility.MinimumNoteWidth)
                    {
                        width = Utility.MinimumNoteWidth;
                    }

                    var noteBrush = nb;

                    g.FillRectangle(noteBrush,
                                    downTime,
                                    GetNoteMinYOffset(note),
                                    width, NoteHeight);

                    var boundPen = Utility.noteBoundPen;

                    if (width >= 2)
                    {
                        g.DrawRectangle(boundPen,
                                    downTime,
                                    GetNoteMinYOffset(note),
                                    width, NoteHeight);
                    }
                }
            }
        }
        public Rectangle GetScreenRectFromMessage(GuitarMessage message)
        {
            var minMaxY = new Point(0, Height);
            if (message is GuitarChord)
            {
                minMaxY = GetChordYMinMax(message as GuitarChord);
            }
            var start = GetClientPointFromTick(message.DownTick);
            var end = GetClientPointFromTick(message.UpTick);

            return new Rectangle(start, minMaxY.X, end - start, minMaxY.Y - minMaxY.X);
        }
        public virtual bool IsUpEventClose(GuitarMessage m2)
        {
            if (UpTick.IsNull() || m2.UpTick.IsNull())
                return false;

            return TickPair.IsCloseUpUp(m2.TickPair);
        }
        public virtual bool IsDownEventClose(GuitarMessage m2)
        {
            if (DownTick.IsNull() || m2.DownTick.IsNull())
                return false;

            return TickPair.IsCloseDownDown(m2.TickPair);
        }
        private void DrawChords5(Graphics g, GuitarMessage c)
        {
            var chord = c as GuitarChord;
            if (chord != null)
            {

                for (int k = 0; k < 5; k++)
                {

                    var note = chord.Notes[k];
                    if (note == null)
                        continue;

                    var nb = Utility.G5Brush(note.NoteString);
                    if (chord.Selected)
                    {
                        nb = Utility.noteBGBrushSel;
                    }

                    var downTime = GetScreenPointFromTick(note.DownTick);
                    var upTime = GetScreenPointFromTick(note.UpTick);

                    var width = upTime - downTime;
                    if (width < Utility.MinimumNoteWidth)
                    {
                        width = Utility.MinimumNoteWidth;
                    }

                    var noteBrush = nb;

                    g.FillRectangle(noteBrush,
                                    downTime,
                                    GetNoteMinYOffset(note),
                                    width, NoteHeight);

                    var boundPen = Utility.noteBoundPen;
                    if (ZoomedOutRealFar)
                    {
                        boundPen = new Pen(Color.FromArgb(40, Utility.noteBoundPen.Color));
                    }
                    g.DrawRectangle(boundPen,
                                downTime,
                                GetNoteMinYOffset(note),
                                width, NoteHeight);

                    if (ZoomedOutRealFar)
                    {
                        boundPen.Dispose();
                    }

                }
            }
        }