Пример #1
0
        private void buttonEqSave_Click(object sender, RoutedEventArgs e)
        {
            string fileName = BrowseSaveFile(m_ppwEqFilter);

            if (fileName.Length <= 0)
            {
                AddFirLog("EQ保存処理中断。\r\n");
                return;
            }

            FirSave p = new FirSave();

            p.FreqGainTable.Clear();
            p.FreqGainTable.AddRange(m_freqGainTable);
            var  xmlRW  = new WWXmlRW.XmlRW <FirSave>(fileName, false);
            bool result = xmlRW.Save(p);

            if (result)
            {
                AddFirLog(string.Format("EQ保存処理成功。{0}\r\n", fileName));
            }
            else
            {
                AddFirLog(string.Format("EQ保存処理失敗。{0}\r\n", fileName));
            }
        }
Пример #2
0
        private void buttonEqLoad_Click(object sender, RoutedEventArgs e)
        {
            string fileName = BrowseOpenFile(m_ppwEqFilter);

            if (fileName.Length <= 0)
            {
                AddFirLog("EQ読み出し処理中断。\r\n");
                return;
            }

            var     xmlRW = new WWXmlRW.XmlRW <FirSave>(fileName, false);
            FirSave p;
            bool    result = xmlRW.Load(out p);

            if (result == true && m_freqGainTable.Length == p.FreqGainTable.Count)
            {
                for (int i = 0; i < m_freqGainTable.Length; ++i)
                {
                    m_freqGainTable[i] = p.FreqGainTable[i];
                }
                DrawFreqResponse();

                AddFirLog(string.Format("EQ読み出し処理成功。{0}\r\n", fileName));
            }
            else
            {
                AddFirLog(string.Format("EQ読み出し処理失敗。{0}\r\n", fileName));
            }
        }
Пример #3
0
        public static PlaylistSave Load()
        {
            var          xmlRW = new WWXmlRW.XmlRW <PlaylistSave>(m_fileName, true);
            PlaylistSave p     = xmlRW.Load();

            OverwritePlaylist(p);

            return(p);
        }
Пример #4
0
        public static PlaylistSave LoadFrom(string path)
        {
            var          xmlRW = new WWXmlRW.XmlRW <PlaylistSave>(path, false);
            PlaylistSave p     = xmlRW.Load();

            OverwritePlaylist(p);

            return(p);
        }
Пример #5
0
        public static Preference Load()
        {
            var xmlRW = new WWXmlRW.XmlRW <Preference>(m_fileName);

            Preference p = xmlRW.Load();

            // (読み込んだ値が都合によりサポートされていない場合、このタイミングでロード後に強制的に上書き出来る)
            return(p);
        }
Пример #6
0
        public static Preference Load()
        {
            var xmlRW = new WWXmlRW.XmlRW <Preference>(m_fileName);

            Preference p = xmlRW.Load();

            // postprocess playlist columns order info...
            if (p.PlayListColumnsOrder.Count == 10)
            {
                // OK: older format. no playlist column info.
            }
            else if (p.PlayListColumnsOrder.Count == 20)
            {
                // OK: load success. delete former 10 items inserted by Reset()
                p.PlayListColumnsOrderRemoveRange(0, 10);
            }
            else
            {
                System.Console.WriteLine("E: Preference PlayListColumnOrder item count {0}", p.PlayListColumnsOrder.Count);
                p.Reset();
            }

            // (読み込んだ値が都合によりサポートされていない場合、このタイミングでロード後に強制的に上書き出来る)

            // サンプルレートの選択アルゴリズム。廃止された選択肢が選ばれていたらAutoSelectに設定する。
            switch (p.BitsPerSampleFixType)
            {
            case BitsPerSampleFixType.Variable:
            case BitsPerSampleFixType.VariableSint16Sint24:
            case BitsPerSampleFixType.VariableSint16Sint32V24:
                p.BitsPerSampleFixType = BitsPerSampleFixType.AutoSelect;
                break;

            default:
                break;
            }

            // 並列読み込みが有効のときはFLACのMD5計算を行わない。
            if (p.ParallelRead)
            {
                p.VerifyFlacMD5Sum = false;
            }

            // EnableNoiseShaping(古いフラグ)が無効のときはBpsConvNoiseShaping(新しい設定パラメータ)をNoneに設定。
            if (!p.EnableNoiseShaping)
            {
                p.BpsConvNoiseShaping = NoiseShapingType.None;
            }

            // DwmEnableMMCSSは、いつの頃からかエラーが出るようになったので呼び出さないようにする。
            p.DwmEnableMmcssCall = false;

            return(p);
        }
Пример #7
0
        public static PlaylistSave3 LoadFrom(string path, bool useIsolatedStorage = false)
        {
            var           xmlRW3 = new WWXmlRW.XmlRW <PlaylistSave3>(path, useIsolatedStorage);
            PlaylistSave3 p3     = xmlRW3.Load();

            if (p3.ItemNum == 0)
            {
                var           xmlRW2 = new WWXmlRW.XmlRW <PlaylistSave2>(path, useIsolatedStorage);
                PlaylistSave2 p2     = xmlRW2.Load();
                if (p2.ItemNum == 0)
                {
                    var xmlRW1 = new WWXmlRW.XmlRW <PlaylistSave>(path, useIsolatedStorage);
                    var p1     = xmlRW1.Load();
                    p2 = PlaylistSave2.ConvertFrom(p1);
                }
                p3 = PlaylistSave3.ConvertFrom(p2);
            }
            OverwritePlaylist(p3);

            return(p3);
        }
Пример #8
0
        private void InitFirTab()
        {
            m_FirWorker = new BackgroundWorker();
            m_FirWorker.WorkerReportsProgress = true;
            m_FirWorker.DoWork                    += new DoWorkEventHandler(m_FirWorker_DoWork);
            m_FirWorker.ProgressChanged           += new ProgressChangedEventHandler(m_FirWorker_ProgressChanged);
            m_FirWorker.RunWorkerCompleted        += new RunWorkerCompletedEventHandler(m_FirWorker_RunWorkerCompleted);
            m_FirWorker.WorkerSupportsCancellation = true;

            // ファイルからEQ設定を読み込んでグラフにセットする。
            var     xmlRW = new WWXmlRW.XmlRW <FirSave>(m_firGainFileName);
            FirSave p     = xmlRW.Load();

            InitializeFreqGainTable();
            if (m_freqGainTable.Length == p.FreqGainTable.Count)
            {
                for (int i = 0; i < m_freqGainTable.Length; ++i)
                {
                    m_freqGainTable[i] = p.FreqGainTable[i];
                }
            }

            DrawFreqResponse();
        }
 public static bool SaveAs(PlaylistSave p, string path)
 {
     var xmlRW = new WWXmlRW.XmlRW<PlaylistSave>(path, false);
     return xmlRW.Save(p);
 }
 public static bool Save(PlaylistSave p)
 {
     var xmlRW = new WWXmlRW.XmlRW<PlaylistSave>(m_fileName, true);
     return xmlRW.Save(p);
 }
        public static PlaylistSave LoadFrom(string path)
        {
            var xmlRW = new WWXmlRW.XmlRW<PlaylistSave>(path, false);
            PlaylistSave p = xmlRW.Load();

            OverwritePlaylist(p);

            return p;
        }
        public static PlaylistSave Load()
        {
            var xmlRW = new WWXmlRW.XmlRW<PlaylistSave>(m_fileName, true);
            PlaylistSave p = xmlRW.Load();

            OverwritePlaylist(p);

            return p;
        }
Пример #13
0
        public static bool SaveAs(PlaylistSave p, string path)
        {
            var xmlRW = new WWXmlRW.XmlRW <PlaylistSave>(path, false);

            return(xmlRW.Save(p));
        }
Пример #14
0
        private void buttonEqSave_Click(object sender, RoutedEventArgs e)
        {
            string fileName = BrowseSaveFile(m_ppwEqFilter);
            if (fileName.Length <= 0) {
                AddFirLog("EQ保存処理中断。\r\n");
                return;
            }

            FirSave p = new FirSave();
            p.FreqGainTable.Clear();
            p.FreqGainTable.AddRange(m_freqGainTable);
            var xmlRW = new WWXmlRW.XmlRW<FirSave>(fileName, false);
            bool result = xmlRW.Save(p);
            if (result) {
                AddFirLog(string.Format("EQ保存処理成功。{0}\r\n", fileName));
            } else {
                AddFirLog(string.Format("EQ保存処理失敗。{0}\r\n", fileName));
            }
        }
Пример #15
0
        public static Preference Load()
        {
            var xmlRW = new WWXmlRW.XmlRW<Preference>(m_fileName);

            Preference p = xmlRW.Load();

            // postprocess playlist columns order info...
            if (p.PlayListColumnsOrder.Count == 10) {
                // OK: older format. no playlist column info.
            } else if (p.PlayListColumnsOrder.Count == 20) {
                // OK: load success. delete former 10 items inserted by Reset()
                p.PlayListColumnsOrderRemoveRange(0, 10);
            } else {
                System.Console.WriteLine("E: Preference PlayListColumnOrder item count {0}", p.PlayListColumnsOrder.Count);
                p.Reset();
            }

            // (読み込んだ値が都合によりサポートされていない場合、このタイミングでロード後に強制的に上書き出来る)

            // サンプルレートの選択アルゴリズム。廃止された選択肢が選ばれていたらAutoSelectに設定する。
            switch (p.BitsPerSampleFixType) {
            case BitsPerSampleFixType.Variable:
            case BitsPerSampleFixType.VariableSint16Sint24:
            case BitsPerSampleFixType.VariableSint16Sint32V24:
                p.BitsPerSampleFixType = BitsPerSampleFixType.AutoSelect;
                break;
            default:
                break;
            }

            // 並列読み込みが有効のときはFLACのMD5計算を行わない。
            if (p.ParallelRead) {
                p.VerifyFlacMD5Sum = false;
            }

            // EnableNoiseShaping(古いフラグ)が無効のときはBpsConvNoiseShaping(新しい設定パラメータ)をNoneに設定。
            if (!p.EnableNoiseShaping) {
                p.BpsConvNoiseShaping = NoiseShapingType.None;
            }

            // DwmEnableMMCSSは、いつの頃からかエラーが出るようになったので呼び出さないようにする。
            p.DwmEnableMmcssCall = false;

            return p;
        }
Пример #16
0
        public static Preference Load()
        {
            var xmlRW = new WWXmlRW.XmlRW <Preference>(m_fileName);

            int nColumnCount = 13;

            Preference p = xmlRW.Load();

            // postprocess playlist columns order info...
            // at this point, column count must be nColumnCount * 2
            if (p.PlayListColumnsOrder.Count == nColumnCount)
            {
                // very old format. no playlist column info in preference file.
            }
            else if (p.PlayListColumnsOrder.Count == nColumnCount + 10)
            {
                // old format. delete latter 10 items inserted by file load.
                p.PlayListColumnsOrderRemoveRange(nColumnCount, 10);
            }
            else if (p.PlayListColumnsOrder.Count == nColumnCount + 11)
            {
                // PlayPcmWin 4.0.98 format. delete latter 11 items inserted by file load.
                p.PlayListColumnsOrderRemoveRange(nColumnCount, 11);
            }
            else if (p.PlayListColumnsOrder.Count == nColumnCount + 12)
            {
                // PlayPcmWin 5.0.16 format. delete latter 12 items inserted by file load.
                p.PlayListColumnsOrderRemoveRange(nColumnCount, 12);
            }
            else if (p.PlayListColumnsOrder.Count == nColumnCount * 2)
            {
                // Latest PlayPcmWin 5.0.32 format. saved data is okay. delete former nColumnCount items inserted by Reset()
                p.PlayListColumnsOrderRemoveRange(0, nColumnCount);
            }
            else
            {
                System.Console.WriteLine("E: Preference PlayListColumnOrder item count {0}", p.PlayListColumnsOrder.Count);
                System.Diagnostics.Debug.Assert(false);
                p.Reset();
            }

            // (読み込んだ値が都合によりサポートされていない場合、このタイミングでロード後に強制的に上書き出来る)

            // サンプルレートの選択アルゴリズム。廃止された選択肢が選ばれていたらAutoSelectに設定する。
            switch (p.BitsPerSampleFixType)
            {
            case BitsPerSampleFixType.Variable:
            case BitsPerSampleFixType.VariableSint16Sint24:
            case BitsPerSampleFixType.VariableSint16Sint32V24:
                p.BitsPerSampleFixType = BitsPerSampleFixType.AutoSelect;
                break;

            default:
                break;
            }

            // 再描画抑止は再生時間表示がなくなるのが紛らわしいので廃止。
            p.RefrainRedraw = false;

            // 並列読み込みが有効のときはFLACのMD5計算を行わない。
            if (p.ParallelRead)
            {
                p.VerifyFlacMD5Sum = false;
            }

            // EnableNoiseShaping(古いフラグ)が無効のときはBpsConvNoiseShaping(新しい設定パラメータ)をNoneに設定。
            if (!p.EnableNoiseShaping)
            {
                p.BpsConvNoiseShaping = NoiseShapingType.None;
            }

            // DwmEnableMMCSSは、いつの頃からかエラーが出るようになったので呼び出さないようにする。
            p.DwmEnableMmcssCall = false;

            if (p.TimePeriodHundredNanosec < Preference.TIME_PERIOD_ONE_MILLISEC)
            {
                // 0.5msモードは動作不安定なので廃止。
                p.TimePeriodHundredNanosec = Preference.TIME_PERIOD_ONE_MILLISEC;
            }

            return(p);
        }
Пример #17
0
        private void InitFirTab()
        {
            m_FirWorker = new BackgroundWorker();
            m_FirWorker.WorkerReportsProgress = true;
            m_FirWorker.DoWork += new DoWorkEventHandler(m_FirWorker_DoWork);
            m_FirWorker.ProgressChanged += new ProgressChangedEventHandler(m_FirWorker_ProgressChanged);
            m_FirWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(m_FirWorker_RunWorkerCompleted);
            m_FirWorker.WorkerSupportsCancellation = true;

            // ファイルからEQ設定を読み込んでグラフにセットする。
            var xmlRW = new WWXmlRW.XmlRW<FirSave>(m_firGainFileName);
            FirSave p = xmlRW.Load();

            InitializeFreqGainTable();
            if (m_freqGainTable.Length == p.FreqGainTable.Count) {
                for (int i=0; i < m_freqGainTable.Length; ++i) {
                    m_freqGainTable[i] = p.FreqGainTable[i];
                }
            }

            DrawFreqResponse();
        }
Пример #18
0
        public static bool Save(Preference p)
        {
            var xmlRW = new WWXmlRW.XmlRW <Preference>(m_fileName);

            return(xmlRW.Save(p));
        }
Пример #19
0
        public static bool Save(PlaylistSave p)
        {
            var xmlRW = new WWXmlRW.XmlRW <PlaylistSave>(m_fileName, true);

            return(xmlRW.Save(p));
        }
Пример #20
0
 public static bool Save(Preference p)
 {
     var xmlRW = new WWXmlRW.XmlRW<Preference>(m_fileName);
     return xmlRW.Save(p);
 }
Пример #21
0
        private void buttonEqLoad_Click(object sender, RoutedEventArgs e)
        {
            string fileName = BrowseOpenFile(m_ppwEqFilter);
            if (fileName.Length <= 0) {
                AddFirLog("EQ読み出し処理中断。\r\n");
                return;
            }

            var xmlRW = new WWXmlRW.XmlRW<FirSave>(fileName, false);
            FirSave p;
            bool result = xmlRW.Load(out p);
            if (result == true && m_freqGainTable.Length == p.FreqGainTable.Count) {
                for (int i=0; i < m_freqGainTable.Length; ++i) {
                    m_freqGainTable[i] = p.FreqGainTable[i];
                }
                DrawFreqResponse();

                AddFirLog(string.Format("EQ読み出し処理成功。{0}\r\n", fileName));
            } else {
                AddFirLog(string.Format("EQ読み出し処理失敗。{0}\r\n", fileName));
            }
        }