Exemple #1
0
int main()
{
    try
    {
        Chain chain;
        chain.addFilter(new FileEmiter("input.txt"));

        int choise;
        do
        {
            printMenu();
            char str[256];
            cin.getline(str, 256);
            choise = -1;
            if(regex_match(str, regex("^(0|[1-9]\\d*)$")))
                choise = atoi(str);
            switch(choise)
            {
            case 0://exit
                break;
            case 1:
                chain.addFilter(new Sumator(50));
                chain.addFilter(new Multiplyer(1.0 / 50.0));
                break;
            case 2:
                chain.addFilter(new Percintilizer(11));
                break;
            case 3:
                chain.addFilter(new Loop(50, 5));
                chain.addFilter(new Multiplyer(1.0 / 50.0));
                break;
            case 4:
                chain.addFilter(new Oscilator(20.0, 2.0, 0.01));
                break;
            default:
                cerr << "imposible input";
            }

        } while(choise);


        chain.addFilter(new FileReciver("output.txt"));

        while(chain.canWork())
            chain.processSample();
        cout << "work done\n";
    }
    catch(exception &e)
    {
        cerr << e.what() << endl;
    }
    catch(...)
    {
        cerr << "something unexpected occurs\n";
    }

    return 0;
}