Esempio n. 1
0
        private void frmChangeSongLength_Load(object sender, EventArgs e)
        {
            //* get current length
            lblCurrentLen.Text  = P.F.MaxBBT.MidiWholeNotes.ToString();
            lblCurrentBars.Text = (P.F.MaxBBT.Bar + 1).ToString();

            //* get last ev ticks/wholenotes
            int minlen = 10;

            clsCF.clsEv ev = null;
            for (int i = P.F.CF.Evs.Count - 1; i >= 0; i--)
            {
                ev = P.F.CF.Evs[i];
                if (ev != null)
                {
                    break;
                }
            }
            if (ev == null)
            {
                return;
            }
            int rem;
            int wholenotes = Math.DivRem(ev.OffTime, P.F.MTime.TicksPerQNote * 4, out rem);

            if (rem > 0)
            {
                wholenotes++;
            }

            ////* find lowest wholenotes that fits
            //clsMaxBBT maxbbt = null;
            //while (maxbbt == null || maxbbt.Ticks > ev.OffTime) {
            //  maxbbt = new clsMaxBBT(wholenotes * P.F.MTime.TicksPerQNote * 4);
            //  wholenotes--;
            //}

            wholenotes = Math.Max(minlen, ++wholenotes);
            clsMaxBBT maxbbt = new clsMaxBBT(wholenotes * P.F.MTime.TicksPerQNote * 4);

            //* update controls
            lblMinLen.Text    = wholenotes.ToString();
            lblMinBars.Text   = (maxbbt.Bar + 1).ToString();
            nudNewLen.Minimum = wholenotes;
            nudNewLen.Value   = Math.Max(wholenotes, P.F.MaxBBT.MidiWholeNotes);
        }
Esempio n. 2
0
        private void nudNewLen_ValueChanged(object sender, EventArgs e)
        {
            clsMaxBBT maxbbt = new clsMaxBBT((int)nudNewLen.Value * P.F.MTime.TicksPerQNote * 4);

            lblNewBars.Text = (maxbbt.Bar + 1).ToString();
        }