示例#1
0
 private void GetSlotsPositions()
 {
     FormInstances.Instance().harpSlotsForm.Top = harpSlotsFormTop;
     FormInstances.Instance().harpSlotsForm.Left = harpSlotsFormLeft;
     FormInstances.Instance().harpSlotsForm.Height = harpSlotsFormHeight;
     FormInstances.Instance().harpSlotsForm.Width = harpSlotsFormWidth;
 }
示例#2
0
 private void GetAttributePositions()
 {
     FormInstances.Instance().soundAttributeForm.Top = soundAttributesFormTop;
     FormInstances.Instance().soundAttributeForm.Left = soundAttributesFormLeft;
     FormInstances.Instance().soundAttributeForm.Height = soundAttributesFormHeight;
     FormInstances.Instance().soundAttributeForm.Width = soundAttributesFormWidth;
 }
示例#3
0
 private void Notify_OnRaiseInfoHandler(object sender, MessageEventArgs k)
 {
     if (k.Key.ToString() == NotifyInfoCodes.DataSaved)
     {
         LoadDatas(FormInstances.Instance().DatabaseFile);
     }
 }
示例#4
0
        public void RunCompleteHarpSequence(string[] lines)
        {
            FormInstances.Instance().harpPlayForm.RunCompleteHarpSequenceFromButtons();

            /*
             * StringBuilder allnotes = new StringBuilder();
             *
             * foreach (string line in lines)
             * {
             *  if (line.Trim().StartsWith("\"")) continue;
             *  if (line.Trim().StartsWith(Statics.CommentKey)) continue;
             *  allnotes.Append(line);
             * }
             *
             * harpPlayForm.SetIsPlayingUI();
             * harpPlayForm.flowLayoutPanel1.Visible = false;
             * hc.ClearPlayHarp();
             * harpPlayForm.flowLayoutPanel1.Visible = true;
             * string cmd = hc.RemoveUselessCharacters(allnotes.ToString());
             * hc.CreatePlayHarp(harpPlayForm.flowLayoutPanel1, songSequenceForm.rtbSong, cmd);
             *
             * hc.PlaySequence(hc.RemoveUselessCharacters(cmd));
             * harpPlayForm.SetPlayUI();
             */
        }
示例#5
0
        public void RunSelectedHarpSequence(string selectedText)
        {
            string[] cmdstr  = selectedText.Replace("\"", "\"#\"").Split(new char[] { '"' }, StringSplitOptions.RemoveEmptyEntries);
            bool     comment = false;
            var      sb      = new StringBuilder();

            foreach (string cstr in cmdstr)
            {
                if (cstr == Statics.CommentKey)
                {
                    comment = !comment;
                }
                if (!comment && cstr != Statics.CommentKey)
                {
                    sb.Append(cstr);
                }
            }
            harpPlayForm.flowLayoutPanel1.Visible = false;
            hc.ClearPlayHarp();
            harpPlayForm.flowLayoutPanel1.Visible = true;
            string cmd = hc.RemoveUselessCharacters(sb.ToString());

            hc.CreatePlayHarp(FormInstances.Instance().harpPlayForm.flowLayoutPanel1, songSequenceForm.rtbSong, cmd);

            hc.PlaySequence(hc.RemoveUselessCharacters(sb.ToString()));
        }
示例#6
0
        private void PlaySingleNote(string HarpCode)
        {
            int kz = StaticFunctionsClass.ToIntDef(HarpCode, 0);

            //FormInstances.Instance().hc.SetTranspose(FormInstances.Instance().Transpose);
            if (kz >= 0)
            {
                if (kz < 100)
                {
                    FormInstances.Instance().hc.Play(kz, eBreathDirection.blow, 1000);
                }
                else
                {
                    FormInstances.Instance().hc.Play(kz - 100, eBreathDirection.blowPushed, 1000);
                }
            }
            else
            {
                if (kz > -100)
                {
                    FormInstances.Instance().hc.Play(Math.Abs(kz), eBreathDirection.draw, 1000);
                }
                else
                {
                    FormInstances.Instance().hc.Play(Math.Abs(kz + 100), eBreathDirection.drawPushed, 1000);
                }
            }
        }
示例#7
0
        private void cbHarpInstrument_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FormInstances.Instance().hc == null)
            {
                return;
            }

            if (cbHarpSoundInstrument.SelectedItem == null)
            {
                if (cbHarpSoundInstrument.Items.Count > 0)
                {
                    cbHarpSoundInstrument.SelectedIndex = 0;
                }
            }

            if (cbReferenzHarpInstruments.SelectedItem == null)
            {
                if (cbReferenzHarpInstruments.Items.Count > 0)
                {
                    cbReferenzHarpInstruments.SelectedIndex = 0;
                }
            }

            if (FormInstances.Instance().hc != null)
            {
                FormInstances.Instance().hc.DeleteSlots();
            }

            //FormInstances.Instance().hc.SetTranspose(FormInstances.Instance().Transpose);
            if (!FirstRun)
            {
                int x = FormInstances.Instance().hc.CreateHarp(FormInstances.Instance().harpSlotsForm.pnlSlots, FormInstances.Instance().songSequenceForm.rtbSong, FormInstances.Instance().sa, (Harp)cbHarpInstrument.SelectedItem, (Harp)cbReferenzHarpInstruments.SelectedItem);
                FormInstances.Instance().harpSlotsForm.Width = x;
            }
        }
示例#8
0
 private void cmsHarpSongNotation_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
 {
     cmsHarpSongNotation.Close();
     if (e.ClickedItem == tsmiLoadHarpSong)
     {
         LoadHarpSong();
     }
     else if (e.ClickedItem == tsmiSaveHarpSong)
     {
         SaveHarpSong();
     }
     else if (e.ClickedItem == tsmiPlayHarpSong)
     {
         FormInstances.Instance().RunCompleteHarpSequence(rtbSongHarp.Lines);
     }
     else if (e.ClickedItem == tsmiPlayHarpSongDelayed)
     {
         new CounterForm().ShowDialog();
         FormInstances.Instance().RunCompleteHarpSequence(rtbSongHarp.Lines);
     }
     else if (e.ClickedItem == tsmiPlaySelectedHarpText)
     {
         FormInstances.Instance().RunSelectedHarpSequence(rtbSongHarp.SelectedText);
     }
 }
示例#9
0
        private void RunCompleteHarpSequence()
        {
            var allnotes = new StringBuilder();

            foreach (string line in FormInstances.Instance().harpSequenceForm.rtbSongHarp.Lines)
            {
                if (line.Trim().StartsWith("\""))
                {
                    continue;
                }
                if (line.Trim().StartsWith(Statics.CommentKey))
                {
                    continue;
                }
                allnotes.Append(line);
            }

            FormInstances.Instance().harpPlayForm.flowLayoutPanel1.Visible = false;
            FormInstances.Instance().hc.ClearPlayHarp();
            FormInstances.Instance().harpPlayForm.flowLayoutPanel1.Visible = true;
            string cmd = FormInstances.Instance().hc.RemoveUselessCharacters(allnotes.ToString());

            FormInstances.Instance().hc.CreatePlayHarp(this.flowLayoutPanel1, FormInstances.Instance().songSequenceForm.rtbSong, cmd);
            FormInstances.Instance().hc.PlaySequence(FormInstances.Instance().hc.RemoveUselessCharacters(cmd));
        }
示例#10
0
 private void cmsSongNotation_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
 {
     if (e.ClickedItem == tsmiLoadSong)
     {
         LoadSong();
     }
     else if (e.ClickedItem == tsmiSaveSong)
     {
         cmsSongNotation.Close();
         SaveSong();
     }
     else if (e.ClickedItem == tsmiTranslateNotationToHarpSequence)
     {
         FormInstances.Instance().TranslateSongNotationToHarpNotation(rtbSong.Lines, StaticFunctionsClass.ToIntDef(txtRowOffset.Text, 0), songFormat, ((TranslateOrder)cbTranslateType.SelectedItem).TranslateType);
     }
     else if (e.ClickedItem == tsmiTranslatoToHarpAndPlay)
     {
         FormInstances.Instance().TranslateSongNotationToHarpNotation(rtbSong.Lines, StaticFunctionsClass.ToIntDef(txtRowOffset.Text, 0), songFormat, ((TranslateOrder)cbTranslateType.SelectedItem).TranslateType);
         FormInstances.Instance().RunCompleteHarpSequence(FormInstances.Instance().harpSequenceForm.rtbSongHarp.Lines);
     }
     else if (e.ClickedItem == tsmiEditMode)
     {
         rtbSong.ContextMenuStrip = cmsInsertNotes;
     }
     else if (e.ClickedItem == tsmiNewSong)
     {
         FormInstances.Instance().NewSong();
     }
 }
示例#11
0
 private void hsSaveInit_Click(object sender, EventArgs e)
 {
     sfvSaveDB.FileName = FormInstances.Instance().DatabaseFile;
     if (sfvSaveDB.ShowDialog() == DialogResult.OK)
     {
         SaveInitialHarps(sfvSaveDB.FileName);
     }
 }
示例#12
0
 private void NotifyInfoHandler(object sender, MessageEventArgs k)
 {
     if (k.Data.GetType() == typeof(RemoteDataClass))
     {
         var hdc = (RemoteDataClass)k.Data;
         FormInstances.Instance().hc.SetCancel(hdc.Cancel);
     }
 }
示例#13
0
 private void hsCancel_Click(object sender, EventArgs e)
 {
     FormInstances.Instance().hc.CancelPlay = true;
     hsPausePlaying.Marked  = false;
     hsPausePlaying.Visible = false;
     hsCancel.Visible       = false;
     hsPlay.Visible         = true;
 }
示例#14
0
 public void SetPlayUI()
 {
     FormInstances.Instance().hc.CancelPlay = true;
     hsPausePlaying.Marked  = false;
     hsPausePlaying.Visible = false;
     hsCancel.Visible       = false;
     hsPlay.Visible         = true;
 }
示例#15
0
        public void RunCompleteHarpSequenceFromButtons()
        {
            this.flowLayoutPanel1.Visible = true;

            FormInstances.Instance().hc.PlaySequenceFromButtons(
                FormInstances.Instance().soundAttributeForm.GetVolume(),
                FormInstances.Instance().soundAttributeForm.GetVelocity(),
                FormInstances.Instance().soundAttributeForm.GetTranspose());
        }
示例#16
0
        public HarpSlotsForm()
        {
            InitializeComponent();

            sharedFolder = $@"{Application.StartupPath}\temp\";


            FormInstances.Instance().HarpNotifies.Register4Info(NotifyInfoHandler);
            LanguageClass.Instance().RegisterChangeNotifiy(languageChanged);
        }
示例#17
0
        private void cbReferenzHarpInstruments_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FormInstances.Instance().hc == null)
            {
                return;
            }
            Harp harp = (Harp)cbReferenzHarpInstruments.SelectedItem;

            //  FormInstances.Instance().hc.ReferenceHarpInstrument = HarpInstrumentFactory.HarpDatabaeObject2HarpInstrument(harp);
        }
示例#18
0
        static public FormInstances Create(System.Windows.Forms.Form frm)
        {
            lock (_lock_this)
            {
                if (instance == null)
                {
                    instance    = new FormInstances();
                    instance.sa = new SimpleApi();
                    instance.hc = new HarpClass();
                    //CompanyForm cf = new CompanyForm();
                    //cf.MdiParent = frm;
                    //cf.WindowState = FormWindowState.Maximized;
                    //cf.Show();

                    instance.soundAttributeForm = new SoundAttributesForm();

                    instance.soundAttributeForm.Visible   = false;
                    instance.soundAttributeForm.MdiParent = frm;


                    instance.harpSlotsForm           = new HarpSlotsForm();
                    instance.harpSlotsForm.Visible   = false;
                    instance.harpSlotsForm.MdiParent = frm;


                    instance.harpPlayForm           = new HarpPlayForm();
                    instance.harpPlayForm.Visible   = false;
                    instance.harpPlayForm.MdiParent = frm;

                    instance.harpPlayForm.Left = instance.harpSlotsForm.Width + 16;



                    instance.songSequenceForm         = new SongSequenceForm();
                    instance.songSequenceForm.Visible = false;
                    // instance.songSequenceForm.WindowState = System.Windows.Forms.FormWindowState.Minimized;
                    instance.songSequenceForm.MdiParent = frm;

                    instance.songSequenceForm.Top = instance.harpSlotsForm.Height + 16;

                    instance.harpSequenceForm           = new HarpSequenceForm();
                    instance.harpSequenceForm.Visible   = false;
                    instance.harpSequenceForm.MdiParent = frm;
                    instance.harpSequenceForm.Top       = instance.harpSlotsForm.Height + 16;



                    instance.HarpNotifies.Register4Error(instance.Notify_OnRaiseErrorHandler);
                    instance.HarpNotifies.Register4Info(instance.Notify_OnRaiseInfoHandler);
                    instance.FirstRun = false;
                }
                ;
            }
            return(instance);
        }
示例#19
0
        private void LoadDatas(string fileName)
        {
            sq = new SQLDataClass(fileName);
            List <Harp> lst = sq.GetAll();

            dgvDATA.DataSource = lst;

            SetAirSlots(lst[0]);
            FormInstances.Instance().hc.AddHarps(lst);
            HarpInstrumentFactory.HarpDatabaeObject2HarpInstrument(lst[0]);
        }
示例#20
0
        private void hsLoad_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = FormInstances.Instance().DatabaseFile;



            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                LoadDatas(openFileDialog1.FileName);
            }
        }
示例#21
0
        private void txtTranspose_TextChanged(object sender, EventArgs e)
        {
            byte transpose = 0;

            if (doEvents)
            {
                transpose = (byte)StaticFunctionsClass.ToIntDef(txtTranspose.Text, 0);
                FormInstances.Instance().hc.SetTranspose(transpose);
            }
            doEvents = false;
            //txtTranspose.Text = transpose.ToString();
            doEvents = true;
        }
示例#22
0
 private void ShowPlaySlots()
 {
     if (FormInstances.Instance().harpPlayForm.Visible)
     {
         FormInstances.Instance().harpPlayForm.BringToFront();
     }
     else
     {
         FormInstances.Instance().harpPlayForm.Visible = true;
         GetPlayPositions();
     }
     FormInstances.Instance().harpPlayForm.WindowState = FormWindowState.Normal;
 }
示例#23
0
 public void ShowHarpSlots()
 {
     if (FormInstances.Instance().harpSlotsForm.Visible)
     {
         FormInstances.Instance().harpSlotsForm.BringToFront();
     }
     else
     {
         FormInstances.Instance().harpSlotsForm.Visible = true;
         GetSlotsPositions();
     }
     FormInstances.Instance().harpSlotsForm.WindowState = FormWindowState.Normal;
 }
示例#24
0
 private void ShowSongSequence()
 {
     if (FormInstances.Instance().songSequenceForm.Visible)
     {
         FormInstances.Instance().songSequenceForm.BringToFront();
     }
     else
     {
         FormInstances.Instance().songSequenceForm.Visible = true;
         GetSequencePositions();
     }
     FormInstances.Instance().songSequenceForm.WindowState = FormWindowState.Normal;
 }
示例#25
0
 private void ShowSongAttributes()
 {
     if (FormInstances.Instance().soundAttributeForm.Visible)
     {
         FormInstances.Instance().soundAttributeForm.BringToFront();
     }
     else
     {
         FormInstances.Instance().soundAttributeForm.Visible = true;
         GetAttributePositions();
     }
     FormInstances.Instance().soundAttributeForm.WindowState = FormWindowState.Normal;
 }
示例#26
0
        private void AppMainForm_Load(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;

            this.Visible = true;
            this.LayoutMdi(System.Windows.Forms.MdiLayout.ArrangeIcons);

            Assembly asb = System.Reflection.Assembly.GetExecutingAssembly();

            AppName    = asb.GetName().ToString().Split(',')[0];
            AppVersion = asb.GetName().Version.ToString();
            string nm = asb.GetName().Name;

            object[] cp = asb.GetCustomAttributes(true);
            s = (AssemblyCompanyAttribute)cp[6];

            LanguageClass.Instance().InitEmbedded(this.GetType().Assembly, "HarpMeNow", "LanguageResource", "_", SelectedClass.Instance().Culture, LanguageClass.English);
            LanguageClass.Instance().ChangeLanguage(SelectedClass.Instance().Culture);
            SetLanguageControls();
            FormInstances.Create(this);
            FormInstances.Instance().LoadHarps();


            FormInstances.Instance().soundAttributeForm.Show();
            FormInstances.Instance().soundAttributeForm.SendToBack();
            FormInstances.Instance().harpSlotsForm.Show();
            FormInstances.Instance().harpSlotsForm.SendToBack();
            FormInstances.Instance().songSequenceForm.Show();
            FormInstances.Instance().songSequenceForm.SendToBack();
            FormInstances.Instance().harpSequenceForm.Show();
            FormInstances.Instance().harpSequenceForm.SendToBack();
            FormInstances.Instance().harpPlayForm.Show();
            FormInstances.Instance().harpPlayForm.SendToBack();

            FormInstances.Instance().harpPlayForm.Top = FormInstances.Instance().harpSlotsForm.Top;
            FormInstances.Instance().harpPlayForm.Left = FormInstances.Instance().harpSlotsForm.Left + FormInstances.Instance().harpSlotsForm.Width + 16;
            FormInstances.Instance().harpPlayForm.Height = FormInstances.Instance().harpSlotsForm.Height;
            FormInstances.Instance().songSequenceForm.Top = FormInstances.Instance().harpSlotsForm.Top + FormInstances.Instance().harpSlotsForm.Height + 16;
            FormInstances.Instance().songSequenceForm.Left = FormInstances.Instance().harpSlotsForm.Left;
            FormInstances.Instance().harpSequenceForm.Top = FormInstances.Instance().harpSlotsForm.Top + FormInstances.Instance().harpSlotsForm.Height + 16;
            FormInstances.Instance().harpSequenceForm.Left = FormInstances.Instance().songSequenceForm.Left + FormInstances.Instance().songSequenceForm.Width + 16;
            FormInstances.Instance().soundAttributeForm.Top = FormInstances.Instance().harpSequenceForm.Top;
            FormInstances.Instance().soundAttributeForm.Left = FormInstances.Instance().harpSequenceForm.Left + FormInstances.Instance().harpSequenceForm.Width + 16;

            this.WindowState = FormWindowState.Maximized;
            var cf = FBXInfo.Instance(this);

            cf.MdiParent = this;
            cf.Show();
            SetPositions();
        }
示例#27
0
 private void LoadSong()
 {
     ofdSong.InitialDirectory = Application.StartupPath + "\\songs\\";
     if (ofdSong.ShowDialog() == DialogResult.OK)
     {
         rtbSong.LoadFile(ofdSong.FileName, RichTextBoxStreamType.PlainText);
         this.Text = $@"Song sequence File:{ofdSong.FileName}";
         if (ofdSong.FileName.ToUpper().EndsWith(".ABC"))
         {
             songFormat = eSongFormat.abc;
         }
         FormInstances.Instance().TranslateSongNotationToHarpNotation(rtbSong.Lines, StaticFunctionsClass.ToIntDef(txtRowOffset.Text, 0), songFormat, ((TranslateOrder)cbTranslateType.SelectedItem).TranslateType);
     }
 }
示例#28
0
        private void AppMainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            FormInstances.Instance().hc.CancelPlay = true;
            FormInstances.Instance().harpPlayForm.Close();
            FormInstances.Instance().harpPlayForm.Dispose();
            FormInstances.Instance().harpSequenceForm.Close();
            FormInstances.Instance().harpSequenceForm.Dispose();
            FormInstances.Instance().harpSlotsForm.Close();
            FormInstances.Instance().harpSlotsForm.Dispose();
            FormInstances.Instance().songSequenceForm.Close();
            FormInstances.Instance().songSequenceForm.Dispose();
            FormInstances.Instance().soundAttributeForm.Close();
            FormInstances.Instance().soundAttributeForm.Dispose();

            Application.Exit();
        }
示例#29
0
        private void windowsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (sender == harpSequenceToolStripMenuItem)
            {
                ShowHarpSequence();
            }
            else if (sender == songSequenceToolStripMenuItem)
            {
                ShowSongSequence();
            }
            else if (sender == harpSlotsToolStripMenuItem)
            {
                ShowHarpSlots();
            }
            else if (sender == playSotsToolStripMenuItem)
            {
                ShowPlaySlots();
            }
            else if (sender == songAttributesToolStripMenuItem)
            {
                ShowSongAttributes();
            }
            else if (sender == toolStripMenuItemCloseApplication)
            {
                FormInstances.Instance().harpPlayForm.Close();
                FormInstances.Instance().harpPlayForm.Dispose();
                FormInstances.Instance().harpSequenceForm.Close();
                FormInstances.Instance().harpSequenceForm.Dispose();
                FormInstances.Instance().harpSlotsForm.Close();
                FormInstances.Instance().harpSlotsForm.Dispose();
                FormInstances.Instance().songSequenceForm.Close();
                FormInstances.Instance().songSequenceForm.Dispose();
                FormInstances.Instance().soundAttributeForm.Close();
                FormInstances.Instance().soundAttributeForm.Dispose();

                Application.Exit();
            }
            else if (sender == instrumentsToolStripMenuItem)
            {
                if (FormInstances.Instance().instrumentsForm == null)
                {
                    FormInstances.Instance().instrumentsForm = new InstrumentsForm();
                    FormInstances.Instance().instrumentsForm.MdiParent = this;
                    FormInstances.Instance().instrumentsForm.Show();
                }
            }
        }
示例#30
0
        public void SaveInitialHarps(string fileName)
        {
            if (File.Exists(FormInstances.Instance().DatabaseFile))
            {
                File.Delete(FormInstances.Instance().DatabaseFile);
            }
            HarpInstrumentClass hi = HarpInstrumentFactory.SeydelDeLuxeSteelOrchestra(eKey.C_DUR);

            Harp ins = new Harp();
            List <AirSlotAttributesClass> airSlots = new List <AirSlotAttributesClass>();

            airSlots.AddRange(hi.InstrumentNotesDefinition.Keys);
            ins.AirSlots    = airSlots;
            ins.Name        = hi.Name;
            ins.Description = hi.Name;
            ins.Stamp       = DateTime.Now;
            ins.Key         = hi.Key;
            var sq = new SQLDataClass(fileName);

            sq.InsertDatas(ins);


            hi       = HarpInstrumentFactory.HohnerUnsereLieblinge(eKey.C_DUR);
            ins      = new Harp();
            airSlots = new List <AirSlotAttributesClass>();
            airSlots.AddRange(hi.InstrumentNotesDefinition.Keys);
            ins.AirSlots    = airSlots;
            ins.Name        = hi.Name;
            ins.Description = hi.Name;
            ins.Stamp       = DateTime.Now;
            ins.Key         = hi.Key;

            sq.InsertDatas(ins);

            hi       = HarpInstrumentFactory.ChroamticStandard(eKey.C_DUR);
            ins      = new Harp();
            airSlots = new List <AirSlotAttributesClass>();
            airSlots.AddRange(hi.InstrumentNotesDefinition.Keys);
            ins.AirSlots    = airSlots;
            ins.Name        = hi.Name;
            ins.Description = hi.Name;
            ins.Stamp       = DateTime.Now;
            ins.Key         = hi.Key;

            sq.InsertDatas(ins);
        }