Esempio n. 1
0
        void Background_DoWork(object sender, DoWorkEventArgs e)
        {
            var args = e.Argument as RunWorkerArgs;
            int rv   = 0;

            mLastReportedTick = 0;

            var af = new WWAudioFilterCore.AudioFilterCore();

            try {
                rv = af.Run(args.FromPath, mFilters, args.ToPath, args.SampleFormat, args.Dither, ProgressReportCallback);
                if (rv < 0)
                {
                    e.Result = rv;
                    return;
                }
            } catch (Exception ex) {
                Console.WriteLine(ex);
                mBackgroundWorker.ReportProgress(100, new WWAudioFilterCore.AudioFilterCore.ProgressArgs(ex.ToString(), rv));
                e.Result = -1;
                return;
            }

            mBackgroundWorker.ReportProgress(100, new WWAudioFilterCore.AudioFilterCore.ProgressArgs("", rv));
            e.Result = rv;
        }
Esempio n. 2
0
        public bool ParseCommandLine()
        {
            var argDictionary = new Dictionary <string, string>();

            var args = Environment.GetCommandLineArgs();

            if ((5 != args.Length && 7 != args.Length) || !COMMAND_CONVERT.Equals(args[1]))
            {
                PrintUsage(args[0]);
                return(false);
            }

            bool   dither     = true;
            var    outFmt     = WWAFUtil.AFSampleFormat.Auto;
            string filterFile = string.Empty;
            string inputFile  = string.Empty;
            string outputFile = string.Empty;

            if (5 == args.Length)
            {
                filterFile = args[2];
                inputFile  = args[3];
                outputFile = args[4];
            }
            else if (7 == args.Length)
            {
                filterFile = args[4];
                inputFile  = args[5];
                outputFile = args[6];

                if (COMMAND_OUTFMT.Equals(args[2]))
                {
                    switch (args[3])
                    {
                    case "16":
                        outFmt = WWAFUtil.AFSampleFormat.PcmInt16;
                        break;

                    case "24":
                        outFmt = WWAFUtil.AFSampleFormat.PcmInt24;
                        break;

                    case "32":
                        outFmt = WWAFUtil.AFSampleFormat.PcmInt32;
                        break;

                    case "F32":
                        outFmt = WWAFUtil.AFSampleFormat.PcmFloat32;
                        break;

                    case "64":
                        outFmt = WWAFUtil.AFSampleFormat.PcmInt64;
                        break;

                    case "F64":
                        outFmt = WWAFUtil.AFSampleFormat.PcmFloat64;
                        break;

                    default:
                        Console.WriteLine("Error: unknown outFmt {0}", args[3]);
                        PrintUsage(args[0]);
                        return(false);
                    }
                }
                else
                {
                    Console.WriteLine("Error: unknown command {0}", args[3]);
                    PrintUsage(args[0]);
                    return(false);
                }
            }

            try {
                var filters = WWAudioFilterCore.AudioFilterCore.LoadFiltersFromFile(filterFile);
                if (filters == null)
                {
                    Console.WriteLine("E: failed to load filter file: {0}", filterFile);
                    PrintUsage(args[0]);
                    return(false);
                }

                var af = new WWAudioFilterCore.AudioFilterCore();

                int rv = af.Run(inputFile, filters, outputFile, outFmt, dither,
                                (int percentage, WWAudioFilterCore.AudioFilterCore.ProgressArgs args2) => { });
                if (rv < 0)
                {
                    Console.WriteLine("E: failed to process. {0}", WWFlacRWCS.FlacRW.ErrorCodeToStr(rv));
                }
            } catch (Exception ex) {
                Console.WriteLine(ex);
            }

            return(true);
        }