pointer_gui = pFilter_1;pointer_sound = pFilter_2;...pointer_gui->init(/* параметры фильтра */);swap(pointer_gui, pointer_sound);
C++ (Qt)std::shared_ptr <SoundData> theMainData(new SoundData); // глобальная переменная theMainData->Init(...); // заполняем данныеsoundThread.start(); // запускаем звуковой // установка новых данных "на ходу"void SetNewData( ... ){ std::shared_ptr <SoundData> temp(new SoundData); // создаем новые данные temp->Init(...); // заполняем их ... theMainData = temp; // устанавливаем новый указатель }
C++ (Qt)std::weak_ptr <SoundData> theCurrentData = theMainData; // текущие данные// работаем с текущими данными theCurrentData ...// перегружаем данные theCurrentData = theMainData;
C++ (Qt)// звуковой SoundData * data;...if (data->param1 && data->param2) ...