Example #1
0
 private static int CompareSequencerClips(SequencerClip a, SequencerClip b)
 {
     if (a.length == b.length)
     {
         return(a.name.CompareTo(b.name));
     }
     else
     {
         return(a.length - b.length);
     }
 }
Example #2
0
    public bool Insert(SequencerClip newClip, int beatIndex)
    {
        if (newClip == null)
        {
            return(false);
        }
        else if (beatIndex >= clips.Length || beatIndex < 0)
        {
            return(false);
        }
        else if (beatIndex + newClip.length > clips.Length)
        {
            return(false);
        }
        else
        {
            int           indexOfPreviousClip = beatIndex;
            SequencerClip previousClip        = clips [indexOfPreviousClip];
            while (previousClip == null && indexOfPreviousClip > 0)
            {
                indexOfPreviousClip--;
                previousClip = clips [indexOfPreviousClip];
            }
            if (previousClip != null && indexOfPreviousClip + previousClip.length > beatIndex)
            {
                return(false);
            }
            for (int x = beatIndex; x < beatIndex + newClip.length; x++)
            {
                if (clips [x] != null)
                {
                    return(false);
                }
            }

            clips [beatIndex] = newClip;
            return(true);
        }
    }
Example #3
0
 public void Initialize(SequencerClip clip)
 {
     m_sequencerClip     = clip;
     text.text           = clip.name + " (" + clip.length + ")";
     button.image.sprite = clip.bannerSprite;
 }
Example #4
0
        public GuiTestForm()
        {
            InitializeComponent();


            // TESTING SEQUENCER
            GUI = UserSession.Current.Gui.Context;


            var clip = new SequencerClip();

            // create clip view
            Renderer                  = new SequenceRenderer(new Bitmap(ClientSize.Width, ClientSize.Height - 100));
            Renderer.Clip             = clip;
            Renderer.Rendered        += (sender, e) => { this.Invalidate(); };
            Renderer.BackgroundType   = SequencerBackgrounds.Drum;
            Renderer.HeightInNotes    = 8;
            Renderer.WidthInBeats     = 16;
            Renderer.Clip.LaunchPad.Y = Renderer.FirstNote;

            Handler = new ClipUIHandler()
            {
                Clip       = Renderer.Clip,
                Renderer   = Renderer,
                ActiveArea = new Rectangle(0, 0, ClientSize.Width, ClientSize.Height - 100)
            };
            Handler.Mode = ClipEditModes.Drum;
            Renderer.Render();


            // create the full song view
            Renderer2                = new SequenceRenderer(new Bitmap(ClientSize.Width, 100));
            Renderer2.Clip           = clip;
            Renderer2.Rendered      += (sender, e) => { this.Invalidate(); };
            Renderer2.BackgroundType = SequencerBackgrounds.Overview;
            Renderer2.WidthInTicks   = 128 * 24;
            Renderer2.HeightInNotes  = 8;
            Renderer2.ZoomBox        = new Rectangle(Renderer.Clip.LaunchPad.X, Renderer.Clip.LaunchPad.Y, 24 * 16, 8);

            Handler2 = new ClipUIHandler()
            {
                Clip           = Renderer.Clip,
                Renderer       = Renderer2,
                ActiveArea     = new Rectangle(0, ClientSize.Height - 100, ClientSize.Width, 100),
                ParentRenderer = Renderer
            };

            Handler2.Mode = ClipEditModes.Overview;
            Renderer2.Render();



            // END TEST


            // send window events to gui controls
            this.MouseDown += (sender, e) =>
            {
                GUI.MouseDown(e.X, e.Y, Control.ModifierKeys);
            };
            this.MouseUp += (sender, e) =>
            {
                GUI.MouseUp(e.X, e.Y);
            };
            this.MouseMove += (sender, e) =>
            {
                GUI.MouseMove(e.X, e.Y);
            };
            this.KeyDown += (sender, e) =>
            {
                GUI.KeyDown(e.KeyCode);
            };

            this.Resize += (sender, e) =>
            {
                // TODO: need to pass more detailed information to GuiRenderers when the size changes
                //GUI.Resize(ClientSize.Width, ClientSize.Height);
                Invalidate();
            };

            // called when a GUI control changes value.
            GUI.NeedsRenderered += (sender, e) =>
            {
                this.Invalidate();
            };

            this.Paint += (sender, e) =>
            {
                try
                {
                    UserSession.Current.Gui.Render();
                    e.Graphics.DrawImage(GUI.Render(), 0, 0);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            };

            /*
             * this.Paint += (sender, e) =>
             * {
             *  double startValue = 0.0;
             *  var w = ((ClientSize.Width / 2) - (4 * 50)) / 4;
             *  var faderHeight = ClientSize.Height / 2;
             *  var options = new GuiLayoutOption() { Width = w, Height = w, LeftPadding = 25, RightPadding = 25, BottomPadding = 25 };
             *  var foptions = new GuiLayoutOption() { Width = w, Height = faderHeight, LeftPadding = w / 3, RightPadding = w / 3, TopPadding = 0, BottomPadding = 0 };
             *  var foptions2 = new GuiLayoutOption() { Width = w, Height = w / 3, LeftPadding = 2, RightPadding = 2, TopPadding = 10, BottomPadding = 2 };
             *  var seqOptions = new GuiLayoutOption() { Width = ClientSize.Width / 2 - 10, Height = ClientSize.Height - 60, LeftPadding = 5, RightPadding = 5, TopPadding = 5, BottomPadding = 5 };
             *  var seqOptions2 = new GuiLayoutOption() { Width = ClientSize.Width / 2, Height = 50 };
             *
             *
             *  GUI.BeginVertical();
             *  {
             *      GUI.BeginHorizontal();
             *      {
             *          // testing adding the sequencer at the start
             *          GUI.AddRenderer(Renderer, Handler, seqOptions);
             *
             *          // original knobs test
             *          double d = 0;
             *          for (var i = 0; i < 4; i++, d += 0.21)
             *          {
             *              GUI.BeginVertical();
             *              {
             *                  for (var y = 0; y < 2; y++)
             *                  {
             *                      GUI.Knob((startValue + d) / (y + 1), 0, 1, options);
             *                  }
             *                  GUI.VerticalFader((startValue + d), 0, 1, foptions);
             *                  GUI.HorizontalFader((startValue + d), 0, 1, foptions2);
             *              }
             *              GUI.EndVertical();
             *
             *          }
             *      }
             *      GUI.EndHorizontal();
             *
             *      // testing adding the overview at the bottom
             *      GUI.AddRenderer(Renderer2, Handler2, seqOptions2);
             *  }
             *  GUI.EndVertical();
             *
             *
             *  try
             *  {
             *      e.Graphics.DrawImage(GUI.Render(), 0, 0);
             *  }
             *  catch (Exception ex)
             *  {
             *  }
             * };*/
        }