Exemple #1
0
        static bool Menu()
        {
            if (_files == null)
            {
                _files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory).Where(s => Path.GetExtension(s) == ".mid").Select(Path.GetFileName).ToArray();
            }
            Clear();
            if (!_useAutoPlay || _ptr == -1)
            {
                foreach (ValueTuple <string, int> fs in _files.Select((s, i) => new ValueTuple <string, int>(s, i)))
                {
                    WriteLine($"{fs.Item2})\t{fs.Item1}");
                }
                WriteLine();
                Write("再生するものを選んでください(-1で終了) >");
                int a;
                while (!int.TryParse(ReadLine(), out a) || a >= _files.Length || a < 0)
                {
                    if (a == -1)
                    {
                        return(false);
                    }
                    Write("ちゃんと選べ。 >");
                }
                _ptr = a;
            }

            if (_ptr >= _files.Length)
            {
                _ptr = 0;
            }
            try
            {
                if (_files.Length > 0)
                {
                    _player.Play(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _files[_ptr]), _useAutoPlay ? 2 : 2, 8000);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"ERROR!!! {ex}");
            }
            if (_useAutoPlay)
            {
                _ptr++;
            }
            return(true);
        }