예제 #1
0
 public Function()
 {
     _queueReader = new SongQueueReader();
     _queueWriter = new SongQueueWriter();
     _library     = new LibraryWriter();
     _songs       = new SongReader();
 }
예제 #2
0
        private SongReader GetSong2()
        {
            SongReader songReader = new SongReader(new Chord("Es"));

            songReader.Read("Es f.7 B F");
            return(songReader);
        }
예제 #3
0
        private SongReader GetSong1()
        {
            SongReader songReader = new SongReader(new Chord("a"));

            songReader.Read("a C d G");
            return(songReader);
        }
예제 #4
0
        public void TransposeTest()
        {
            SongReader      songReader      = GetSong1();
            ChordTransposer chordTransposer = new ChordTransposer(songReader);
            var             songTransposed  = chordTransposer.Transpose(new Chord("d"));

            Assert.AreEqual("d F g C", songTransposed.ToString());
        }
예제 #5
0
        public void TransposeUpTest3()
        {
            SongReader      songReader           = GetSong2();
            ChordTransposer chordTransposer      = new ChordTransposer(songReader);
            SongReader      songReaderTransposed = chordTransposer.Transpose(new Chord("F"));

            Assert.AreEqual("F g.7 C G", songReaderTransposed.ToString());
        }
예제 #6
0
        public void TransposeUpTest()
        {
            SongReader      songReader           = GetSong1();
            ChordTransposer chordTransposer      = new ChordTransposer(songReader);
            SongReader      songReaderTransposed = chordTransposer.Transpose(5, true);

            Assert.AreEqual("d F g C", songReaderTransposed.ToString());
        }
예제 #7
0
        public void ReadTest2()
        {
            const string sContents  = "a\n C  \ne F";
            SongReader   songReader = new SongReader(new Chord("a"));

            songReader.Read(sContents);
            var identities = songReader.SongIdentities;

            Assert.AreEqual(6, identities.Count);
        }
예제 #8
0
        private static void ListView_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (Form.TreeView.SelectedNode == null ||
                Form.TreeView.SelectedNode.Parent == null)
            {
                return;
            }

            var item = Form.ListView.SelectedItems.Cast <ListViewItem>().FirstOrDefault();

            if (item == null)
            {
                return;
            }

            var node = Form.TreeView.SelectedNode;

            if (node.Name == "Songs")
            {
                var song    = int.Parse(item.Name);
                var address = int.Parse(item.SubItems[1].Text, System.Globalization.NumberStyles.HexNumber);

                var position = address;

                var length = SuperNintendo.Console.Memory[position++] | (SuperNintendo.Console.Memory[position++] << 8);

                //Array.Copy(SuperNintendo.Console.Memory, position, SuperNintendo.Apu.Memory, 0x2000, length);

                for (var index = 0; index < length; index++)
                {
                    var source = ((position & 0xff0000) >> 1) | (position & 0x7fff);
                    source += index;
                    source  = ((source & 0x7f8000) << 1) | (source & 0x7fff) | 0x8000;

                    var destination = 0x2000 + index;

                    SuperNintendo.Apu.Memory[destination] = SuperNintendo.Console.Memory[source];
                }

                SongReader.Position = 0x2000;
                SongReader.Read();

                MidiPlayer.Song = song;
                SongPlayer.Reset();

                SongWindow.Show();
            }
        }
예제 #9
0
    protected override void Awake()
    {
        base.Awake();

        DontDestroyOnLoad(gameObject);

        foreach (Song song in Songs)
        {
            SongReader fileReader = new SongReader(song.SongTimingPath);
            fileReader.ReadSongTiming(ref song.SongTiming);
            fileReader = new SongReader(song.WallIndexPath);
            fileReader.ReadSongIndex(ref song.WallIndex);
            fileReader = new SongReader(song.NoteIndexPath);
            fileReader.ReadSongIndex(ref song.NoteIndex);
        }
    }
예제 #10
0
        public void ReadTest()
        {
            const string sContents  = "a C [x2] \n [ref:] e F";
            SongReader   songReader = new SongReader(new Chord("a"));

            songReader.Read(sContents);
            var identities = songReader.SongIdentities;

            Assert.AreEqual(7, identities.Count);
            Assert.AreEqual(new SongEntity("a").ToString(), identities[0].ToString());
            Assert.AreEqual(new SongEntity("C").ToString(), identities[1].ToString());
            Assert.AreEqual(new SongEntity("[x2]").ToString(), identities[2].ToString());
            Assert.AreEqual(new SongEntity("\n").ToString(), identities[3].ToString());
            Assert.AreEqual(new SongEntity("[ref:]").ToString(), identities[4].ToString());
            Assert.AreEqual(new SongEntity("e").ToString(), identities[5].ToString());
            Assert.AreEqual(new SongEntity("F").ToString(), identities[6].ToString());
        }
예제 #11
0
 internal void LoadSongs(SongReader songReader)
 {
     songs = songReader.GetSongs();
 }