diff --git a/.gitignore b/.gitignore index dab56759ac189861e61cea19c3446e9e102a3a41..b1fe24b62d553800696eea6987741a592ce45c0e 100644 --- a/.gitignore +++ b/.gitignore @@ -76,4 +76,6 @@ examples/sound_input.gif src/Debug/** src/Release/** examples/Debug/** -examples/Release/** \ No newline at end of file +examples/Release/** +Debug/** +Release/** diff --git a/DSPE_lib.sln b/DSPE_lib.sln index 152598c13595e4e285b18bde498c8e157311f22f..3eba6e61cea909102739f3c59669cf4556c3c94e 100644 --- a/DSPE_lib.sln +++ b/DSPE_lib.sln @@ -7,6 +7,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPElib", "src\DSPElib.vcxp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPElib_examples", "examples\DSPElib_examples.vcxproj", "{94E43F8A-C081-44B7-9279-C9A454D1B5BD}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo", "examples\echo.vcxproj", "{00E43F8A-C081-44B7-9279-C9A454D1B5BD}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -31,6 +33,14 @@ Global {94E43F8A-C081-44B7-9279-C9A454D1B5BD}.Release|x64.Build.0 = Release|x64 {94E43F8A-C081-44B7-9279-C9A454D1B5BD}.Release|x86.ActiveCfg = Release|Win32 {94E43F8A-C081-44B7-9279-C9A454D1B5BD}.Release|x86.Build.0 = Release|Win32 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Debug|x64.ActiveCfg = Debug|x64 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Debug|x64.Build.0 = Debug|x64 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Debug|x86.ActiveCfg = Debug|Win32 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Debug|x86.Build.0 = Debug|Win32 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Release|x64.ActiveCfg = Release|x64 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Release|x64.Build.0 = Release|x64 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Release|x86.ActiveCfg = Release|Win32 + {00E43F8A-C081-44B7-9279-C9A454D1B5BD}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/examples/DSPElib_examples.cpp b/examples/DSPElib_examples.cpp index dc07b1fd37b4ccd31302a7165b51996cc28ee8af..479bb7b95da6414831d1dcc7dae161937691b238 100644 --- a/examples/DSPElib_examples.cpp +++ b/examples/DSPElib_examples.cpp @@ -1,6 +1,8 @@ ďťż// DSPElib_examples.cpp : Ten plik zawiera funkcjÄ âmainâ. W nim rozpoczyna siÄ i koĹczy wykonywanie programu. // +//! \TODO remove usage of sprintf (just use stringstream) so _CRT_SECURE_NO_WARNINGS can be removed from directives + #include <time.h> #include <DSP_sockets.h> @@ -341,8 +343,8 @@ int test_1(int argc, char* argv[]) DSP::Clock_ptr MasterClock, Fp1Zegar; MasterClock = NULL; - char InputName[] = "test.wav"; - char OutputName[] = "output.flt"; + string InputName = "test.wav"; + string OutputName = "output.flt"; // DSP::u::WaveInput WaveInput(InputName, ".", 1); DSP::u::FileInput WaveInput(MasterClock, InputName, 1, DSP::e::SampleType::ST_float); DSP::u::FileOutput FileOutput(OutputName, DSP::e::SampleType::ST_float, 2); @@ -477,64 +479,74 @@ int test_1(int argc, char* argv[]) -long int CheckFs(const char* WaveName, const char* Dir) +long int CheckFs(const string &WaveName, const string &Dir) { - T_WAVEchunk WaveParams; + DSP::T_WAVEchunk WaveParams; if (DSP::f::GetWAVEfileParams(WaveName, Dir, &WaveParams)) return WaveParams.nSamplesPerSec; return 0; } -int ReadResamplerCoef(const char* name, const char* dir) +int ReadResamplerCoef(const string &name, const string &dir) { //reads impulse response length - DSP::Float temp; + DSP::Float_vector temp; int FilterOffset; int N_LPF; //ignore filter specification details - DSP::f::ReadCoefficientsFromFile(&temp, 1, + DSP::f::ReadCoefficientsFromFile(temp, 1, name, dir, DSP::e::SampleType::ST_float, 2 * sizeof(float)); - FilterOffset = (int)temp; - FilterOffset *= 5; - FilterOffset += 3; + if (temp.size() == 1) { + FilterOffset = (int)temp[0]; + FilterOffset *= 5; + FilterOffset += 3; + } + else { + FilterOffset = 0; + } - temp = 0.0; + temp.clear(); //read filter response length - DSP::f::ReadCoefficientsFromFile(&temp, 1, + DSP::f::ReadCoefficientsFromFile(temp, 1, name, dir, DSP::e::SampleType::ST_float, DWORD(FilterOffset * sizeof(float))); - N_LPF = (int)temp; + if (temp.size() == 1) { + N_LPF = (int)temp[0]; + } + else { + N_LPF = 0; + } return N_LPF; } -long int ReadResamplerCoef(const char* name, const char* dir, - long int N_LPF_in, DSP::Float_ptr h_LPF) +long int ReadResamplerCoef(const string &name, const string &dir, + long int N_LPF_in, DSP::Float_vector &h_LPF) { long int Fs; - DSP::Float temp; + DSP::Float_vector temp; int FilterOffset; int N_LPF; - DSP::f::ReadCoefficientsFromFile(&temp, 1, + DSP::f::ReadCoefficientsFromFile(temp, 1, name, dir, DSP::e::SampleType::ST_float, 0); - Fs = (long int)temp; + Fs = (long int)temp[0]; // DSP_ReadCoefficientsFromFile(&temp, 1, // name, dir, DSP::e::SampleType::ST_float,sizeof(float)); // M1=(int)temp; //ignore filter specification details - DSP::f::ReadCoefficientsFromFile(&temp, 1, + DSP::f::ReadCoefficientsFromFile(temp, 1, name, dir, DSP::e::SampleType::ST_float, 2 * sizeof(float)); - FilterOffset = (int)temp; + FilterOffset = (int)temp[0]; FilterOffset *= 5; FilterOffset += 3; //read filter response length - DSP::f::ReadCoefficientsFromFile(&temp, 1, + DSP::f::ReadCoefficientsFromFile(temp, 1, name, dir, DSP::e::SampleType::ST_float, DWORD(FilterOffset * sizeof(float))); - N_LPF = (int)temp; + N_LPF = (int)temp[0]; if (N_LPF != N_LPF_in) return 0; @@ -545,36 +557,35 @@ long int ReadResamplerCoef(const char* name, const char* dir, return Fs; } -int ReadIIRCoef(const char* name, const char* dir) +int ReadIIRCoef(const string &name, const string &dir) { //Read IIR filter order - DSP::Float temp; + DSP::Float_vector temp; DWORD ile; - temp = 0.0; - ile = DSP::f::ReadCoefficientsFromFile(&temp, 1, + ile = DSP::f::ReadCoefficientsFromFile(temp, 1, name, dir, DSP::e::SampleType::ST_float, 0); assert(ile > 0); - return (int)temp; + return (int)temp[0]; } -int ReadIIRCoef(const char* name, const char* dir, int Order, - DSP::Complex_ptr A, DSP::Complex_ptr B) +int ReadIIRCoef(const string &name, const string &dir, unsigned long Order, + DSP::Complex_vector &A, DSP::Complex_vector &B) { //returns mean bandpass group delay (int) - DSP::Float temp; + DSP::Float_vector temp; - DSP::f::ReadCoefficientsFromFile((DSP::Float_ptr)A, 2 * (Order + 1), + DSP::f::ReadCoefficientsFromFile(A, 2 * (Order + 1), name, dir, DSP::e::SampleType::ST_float, sizeof(float)); - DSP::f::ReadCoefficientsFromFile((DSP::Float_ptr)B, 2 * (Order + 1), + DSP::f::ReadCoefficientsFromFile(B, 2 * (Order + 1), name, dir, DSP::e::SampleType::ST_float, (2 * (Order + 1) + 1) * sizeof(float)); - DSP::f::ReadCoefficientsFromFile(&temp, 1, + DSP::f::ReadCoefficientsFromFile(temp, 1, name, dir, DSP::e::SampleType::ST_float, (4 * (Order + 1) + 1) * sizeof(float)); - return (int)temp; + return (int)temp[0]; } -void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = NULL) +void Process(long int Fs, const string &WaveName, const string &Dir, char* tekst = NULL) { int ind; @@ -586,8 +597,8 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N DSP::Float_vector h_LPF2; int IIR_order[5], IIR_delay[5]; - DSP::Complex_ptr IIR_A[5], IIR_B[5]; - char IIR_name[] = "IIR_1.flt"; + DSP::Complex_vector IIR_A[5], IIR_B[5]; + string IIR_name = "IIR_1.flt"; long czas0, czas1, czas2; @@ -597,7 +608,7 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N // ************************************************* // DSP::u::WaveInput FileIn(MasterClock, WaveName, Dir, 1); - // DSP::u::FileInput FileIn("waves/test.wav", DSP_ST_short, 1); + // DSP::u::FileInput FileIn("waves/test.wav", DSP::e::SampleType::ST_short, 1); // DSP::u::COSpulse FileIn(false, 1.0, 0.0, 0.0, 0.0, 0, 10, 0, NULL); // DSP::u::COSpulse FileIn(false, 1.0); Zegar1 = FileIn.GetOutputClock(); @@ -608,7 +619,7 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N N_LPF1 = ReadResamplerCoef("Stage1_fp44100.flt", "coef"); h_LPF1.resize(N_LPF1); Decym_Fs = ReadResamplerCoef("Stage1_fp44100.flt", "coef", - N_LPF1, h_LPF1.data()); + N_LPF1, h_LPF1); if (Fs > Decym_Fs) //input sampling frequency is too high { return; @@ -632,7 +643,7 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N N_LPF2 = ReadResamplerCoef("Stage2_fp4000.flt", "coef"); h_LPF2.resize(N_LPF2); Decym2_Fs = ReadResamplerCoef("Stage2_fp4000.flt", "coef", - N_LPF2, h_LPF2.data()); + N_LPF2, h_LPF2); if (Decym2_Fs != 4000) //input sampling frequency is wrong { return; @@ -648,8 +659,8 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N for (ind = 0; ind < 5; ind++) { IIR_order[ind] = 0; - IIR_A[ind] = NULL; - IIR_B[ind] = NULL; + IIR_A[ind].clear(); + IIR_B[ind].clear(); IIR_delay[ind] = 0; } for (ind = 0; ind < 5; ind++) @@ -658,20 +669,13 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N IIR_order[ind] = ReadIIRCoef(IIR_name, "coef"); if (IIR_order[ind] == 0) break; - IIR_A[ind] = new DSP::Complex[IIR_order[ind] + 1]; - IIR_B[ind] = new DSP::Complex[IIR_order[ind] + 1]; + IIR_A[ind].resize(IIR_order[ind] + 1, 0.0); + IIR_B[ind].resize(IIR_order[ind] + 1, 0.0); IIR_delay[ind] = ReadIIRCoef(IIR_name, "coef", IIR_order[ind], IIR_A[ind], IIR_B[ind]); } if (IIR_order[4] == 0) { - for (ind = 0; ind < 5; ind++) - { - if (IIR_A[ind] != NULL) - delete[] IIR_A[ind]; - if (IIR_B[ind] != NULL) - delete[] IIR_B[ind]; - } return; } @@ -691,19 +695,11 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N DSP::u::FIR IIRfilter5(false, 1, h_temp); */ - DSP::u::IIR IIRfilter1(IIR_order[0] + 1, IIR_A[0], IIR_order[0] + 1, IIR_B[0]); - DSP::u::IIR IIRfilter2(IIR_order[1] + 1, IIR_A[1], IIR_order[1] + 1, IIR_B[1]); - DSP::u::IIR IIRfilter3(IIR_order[2] + 1, IIR_A[2], IIR_order[2] + 1, IIR_B[2]); - DSP::u::IIR IIRfilter4(IIR_order[3] + 1, IIR_A[3], IIR_order[3] + 1, IIR_B[3]); - DSP::u::IIR IIRfilter5(IIR_order[4] + 1, IIR_A[4], IIR_order[4] + 1, IIR_B[4]); - - for (ind = 0; ind < 5; ind++) - { - if (IIR_A[ind] != NULL) - delete[] IIR_A[ind]; - if (IIR_B[ind] != NULL) - delete[] IIR_B[ind]; - } + DSP::u::IIR IIRfilter1(IIR_A[0], IIR_B[0]); + DSP::u::IIR IIRfilter2(IIR_A[1], IIR_B[1]); + DSP::u::IIR IIRfilter3(IIR_A[2], IIR_B[2]); + DSP::u::IIR IIRfilter4(IIR_A[3], IIR_B[3]); + DSP::u::IIR IIRfilter5(IIR_A[4], IIR_B[4]); // ************************************************* // DSP::u::Splitter SplitIIR1(true, 2); @@ -860,11 +856,7 @@ void Process(long int Fs, const char* WaveName, const char* Dir, char* tekst = N DSP::Clock::FreeClocks(); - if (tekst != NULL) - { - sprintf(tekst, "(%ld ms + %ld ms)", czas1 - czas0, czas2 - czas1); - } - DSP::f::InfoMessage("MAIN", tekst); + DSP::log << "MAIN" << DSP::e::LogMode::second << "(" << czas1 - czas0 << " ms + " << czas2 - czas1 << " ms)" << endl; /*! \todo DSP::u::CCPC instead of DSP::u::ABS + DSP::u::Angle */ } @@ -956,8 +948,8 @@ int test_3() DSP::Clock_ptr MasterClock; //, MasterClock2, Zegar1, Zegar2, Zegar3; - DSP::f::SetLogState(DSP_LS_console | DSP_LS_file_append); - DSP::f::SetLogFileName("log_file.log"); + DSP::log.SetLogState(DSP::e::LogState::console | DSP::e::LogState::file_append); + DSP::log.SetLogFileName("log_file.log"); MasterClock = DSP::Clock::CreateMasterClock(); @@ -1037,9 +1029,9 @@ int test_3() // // DSP::u::FileOutput FileOut("test_.out", DSP::e::SampleType::ST_float, 2); // Select.Output("out") >>FileOut.Input("in1")); - //sprintf(log_buffer,">> %i A <<", log_ind++); DSP_block::LogInnerState(log_buffer); + //sprintf(log_buffer,">> %i A <<", log_ind++); DSP::Block::LogInnerState(log_buffer); // Sum.Output("out") >>FileOut.Input("in2")); - //sprintf(log_buffer,">> %i B <<", log_ind++); DSP_block::LogInnerState(log_buffer); + //sprintf(log_buffer,">> %i B <<", log_ind++); DSP::Block::LogInnerState(log_buffer); // // Zegar3=Select.GetOutputClock(); // DSP::u::Hold Hold1(Zegar3, MasterClock, true, 1); @@ -1051,7 +1043,7 @@ int test_3() // Hold1.Output("out") >> FileOutS.Input("in1")); // //sprintf(log_buffer,">> %i <<", log_ind++); - //DSP_block::LogInnerState(log_buffer); + //DSP::Block::LogInnerState(log_buffer); // //// return(0); // @@ -1064,7 +1056,7 @@ int test_3() DSP::Clock::FreeClocks(); - // DSP::f::ErrorMessage("Koniec"); + // DSP::log << DSP::e::LogMode::Error << "Koniec"); return 0; } @@ -1087,7 +1079,7 @@ int MeduzaSimulation(void) h_forming[ind] = 1.0; MasterClock = DSP::Clock::CreateMasterClock(); - DSP::u::FileInput BinaryInput(MasterClock, "Tekst.txt", 10, DSP_ST_bit); + DSP::u::FileInput BinaryInput(MasterClock, "Tekst.txt", 10, DSP::e::SampleType::ST_bit); ZerosOutClock = DSP::Clock::GetClock(MasterClock, (long)(Fs / Fb), 1); // InterpOutClock=DSP::Clock::GetClock(ZerosOutClock, (long)(Fs2/Fs), 1); @@ -1103,9 +1095,9 @@ int MeduzaSimulation(void) DSP::u::Addition Sumator(11); for (ind = 0; ind < 10; ind++) { - DBPSKencoder[ind] = new DSP::u::PSKencoder(DSP_DBPSK); + DBPSKencoder[ind] = new DSP::u::PSKencoder(DSP::e::PSK_type::DBPSK); sprintf(temp, "out%i", ind + 1); - BinaryInput.Output(temp), DBPSKencoder[ind]->Input("in")); + BinaryInput.Output(temp) >> DBPSKencoder[ind]->Input("in"); // Zeros[ind]= new DSP::u::Zeroinserter(MasterClock, (long)(Fs/Fb), false); @@ -1117,7 +1109,7 @@ int MeduzaSimulation(void) DBPSKencoder[ind]->Output("out") >> Interp[ind]->Input("in"); DDScos[ind] = new DSP::u::DDScos(ZerosOutClock, DSP::Float(1.0), - DSP::Float(M_PIx2 * (F1 + DSP::Float(ind) * F_channel) / Fs)); + DSP::Float(DSP::M_PIx2 * (F1 + DSP::Float(ind) * F_channel) / Fs)); Multip[ind] = new DSP::u::RealMultiplication(2); // Filter[ind]->Output("out") >> Multip[ind]->Input("real_in1")); @@ -1129,7 +1121,7 @@ int MeduzaSimulation(void) } DSP::u::DDScos DDSpilot(ZerosOutClock, DSP::Float(1.0), - DSP::Float(M_PIx2 * (F1 + 11 * F_channel) / Fs)); + DSP::Float(DSP::M_PIx2 * (F1 + 11 * F_channel) / Fs)); DDSpilot.Output("out") >> Sumator.Input("real_in11"); @@ -1143,7 +1135,7 @@ int MeduzaSimulation(void) InterpOut.Output("out") >> AudioOut.Input("in"); //sprintf(log_buffer,">> %i <<", log_ind++); - //DSP_block::LogInnerState(log_buffer); + //DSP::Block::LogInnerState(log_buffer); for (int temp_ind = 0; temp_ind < 40; temp_ind++) { DSP::Clock::Execute(Sumator.GetOutputClock(), (long)(Fs / 4)); @@ -1176,15 +1168,15 @@ int test_4() char tekst[1024]; // char filename[]="03-pcz.wav"; - char filename[] = "S2.wav"; - char dir_name[] = "c:/Meduza_2004/Input"; + string filename = "S2.wav"; + string dir_name = "c:/Meduza_2004/Input"; // char dir_name[]="e:/Meduza2004"; // char filename[]="test.wav"; // char dir_name[]="."; - // DSP::f::SetLogState(DSP_LS_console | DSP_LS_file | DSP_LS_errors_only); - DSP::f::SetLogState(DSP_LS_console | DSP_LS_file_append); - DSP::f::SetLogFileName("log_file.log"); + // DSP::f::SetLogState(DSP::e::LogState::console | DSP::e::LogState::file | DSP::e::LogState::errors_only); + DSP::log.SetLogState(DSP::e::LogState::console | DSP::e::LogState::file_append); + DSP::log.SetLogFileName("log_file.log"); DSP::Float Fp, Fp1, Fp2; //sampling frequencies DSP::Float Fo = 15800.0; //pilot frequency @@ -1210,7 +1202,7 @@ int test_4() /*************************************************************/ /* Heterodyna wejciowa: wyj?cie sygna? podstawowo-pasmowy na 48kHz */ - wo = DSP_M_PIx2 * (Fo - Band / 2) / Fp; // dw_channel=2*pi*(df_channel)/fp; + wo = DSP::M_PIx2 * (Fo - Band / 2) / Fp; // dw_channel=2*pi*(df_channel)/fp; DSP::u::DDScos MainHeter(MasterClock, true, 1.0, -wo, 0.0); DSP::u::Multiplication Mul1(1, 1); @@ -1244,15 +1236,15 @@ int test_4() /*************************************************************/ L1 = (int)(Fp1 / Fb); sprintf(tekst, "L1=%i (Fp1=%.1fHz)", L1, Fp1); - DSP::f::InfoMessage("MAIN", tekst); + DSP::log << "MAIN" << DSP::e::LogMode::second << tekst << endl; int M2 = 5; // DSP::u::DCO pilot_DCO(0.0, 00, 0.0); //Open loop // DSP::u::DCO pilot_DCO(0.0, -1.0/(100*M2), 0.0); //frequency loop closed // DSP::u::DCO pilot_DCO(0.0, -1.0/(100*M2), -1.0/(1000*M2)); //closed loop - DSP::u::DCO pilot_DCO(-DSP_M_PIx2 * (5 * dF_channel) / Fp1, - +DSP_M_PIx2 * (0.1 * dF_channel) / Fp1, + DSP::u::DCO pilot_DCO(-DSP::M_PIx2 * (5 * dF_channel) / Fp1, + +DSP::M_PIx2 * (0.1 * dF_channel) / Fp1, DSP::Float(-1.0) / (200 * M2), DSP::Float(-1.0) / (4000 * M2)); //closed loop pilot_DCO.SetName("pilot_DCO"); @@ -1261,7 +1253,7 @@ int test_4() pilot_DCO.Output("out") >> DCO_Main_Mul.Input("cplx_in1"); MainDecimator.Output("out") >> DCO_Main_Mul.Input("cplx_in2"); - DSP::u::DDScos pilot_Heter(FirstStageClock, true, 1.0f, -M_PIx2f * (2 * dF_channel) / Fp1, 0.0); + DSP::u::DDScos pilot_Heter(FirstStageClock, true, 1.0f, -DSP::M_PIx2 * (2 * dF_channel) / Fp1, 0.0); pilot_Heter.SetName("pilot_Heter"); DSP::u::Multiplication pilot_heter_Mul(0, 2); @@ -1288,20 +1280,20 @@ int test_4() /*************************************************************/ L2 = (int)(Fp2 / Fb); sprintf(tekst, "L2=%i (Fp2=%.1fHz)", L2, Fp2); - DSP::f::InfoMessage("MAIN", tekst); + DSP::log << "MAIN" << DSP::e::LogMode::second << tekst << endl; /*************************************************************/ // automatic gain control DSP::u::AGC PilotAGC(0.01f, 0.0002f); PilotAGC.SetName("PilotAGC"); - PilotDecimator.Output("out") >> PilotAGC.Input("in")); + PilotDecimator.Output("out") >> PilotAGC.Input("in"); /*************************************************************/ // frequency and phase error detectors DSP::Float error_alfa = 0.9f; //0.99 - DSP::Float error_IIR_a[] = { 1, -error_alfa }; - // DSP::Float error_IIR_b[]={1.0/(1-error_alfa)}; - DSP::Float error_IIR_b[] = { ((DSP::Float)M2) * (1 - error_alfa) }; + DSP::Float_vector error_IIR_a = { 1, -error_alfa }; + // DSP::Float_vector error_IIR_b={1.0/(1-error_alfa)}; + DSP::Float_vector error_IIR_b = { ((DSP::Float)M2) * (1 - error_alfa) }; //* frequency error = filtered interpolated imaginary part of PilotAGC output multiplied // by conjugate of previous PilotAGC output @@ -1318,7 +1310,7 @@ int test_4() */ freq_CMPO.Output("out.im") >> Freq_error_zeroins.Input("in"); - DSP::u::IIR Freq_error_filter(2, error_IIR_a, 1, error_IIR_b); + DSP::u::IIR Freq_error_filter(error_IIR_a, error_IIR_b); Freq_error_filter.SetName("Freq_error_filter"); Freq_error_zeroins.Output("out") >> Freq_error_filter.Input("in"); @@ -1328,7 +1320,7 @@ int test_4() // PilotAGC.Output("out.im") >> phase_error_zeroins.Input("in")); PilotAGC.Output("out.im") >> phase_error_zeroins.Input("in"); - DSP::u::IIR Phase_error_filter(2, error_IIR_a, 1, error_IIR_b); + DSP::u::IIR Phase_error_filter(error_IIR_a, error_IIR_b); Phase_error_filter.SetName("Phase_error_filter"); phase_error_zeroins.Output("out") >> Phase_error_filter.Input("in"); @@ -1351,7 +1343,7 @@ int test_4() vector <DSP::u::RawDecimator*> MatchedDecimators(NoOfChannels); vector <DSP::u::AGC*> MatchedAGC(NoOfChannels); vector <DSP::u::Multiplication*> MatchedDDS_Muls(NoOfChannels - 1); - DSP::u::DDScos channels_Heter(FirstStageClock, true, 1.0, M_PIx2f * (dF_channel) / Fp1, 0.0); + DSP::u::DDScos channels_Heter(FirstStageClock, true, 1.0, DSP::M_PIx2 * (dF_channel) / Fp1, 0.0); // DSP::u::GardnerSampling GardnerSampling(L2, 0.0005, NoOfChannels); DSP::u::GardnerSampling GardnerSampling(DSP::Float(L2), 0.01f, 1.0f, NoOfChannels); vector <DSP::u::CMPO*> OutputDiff(NoOfChannels); @@ -1377,39 +1369,30 @@ int test_4() if (channel_ind > 1) { - channels_Heter.Output("out"), - MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in1")); - MatchedDDS_Muls[channel_ind - 2]->Output("out"), - MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in2")); + channels_Heter.Output("out") >> MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in1"); + MatchedDDS_Muls[channel_ind - 2]->Output("out") >> MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in2"); } else { - channels_Heter.Output("out"), - MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in1")); - DCO_Main_Mul.Output("out"), - MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in2")); + channels_Heter.Output("out") >> MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in1"); + DCO_Main_Mul.Output("out") >> MatchedDDS_Muls[channel_ind - 1]->Input("cplx_in2"); } - MatchedDDS_Muls[channel_ind - 1]->Output("out"), - MatchedFilters[channel_ind]->Input("in")); + MatchedDDS_Muls[channel_ind - 1]->Output("out") >> MatchedFilters[channel_ind]->Input("in"); } else { - DCO_Main_Mul.Output("out"), - MatchedFilters[channel_ind]->Input("in")); + DCO_Main_Mul.Output("out") >> MatchedFilters[channel_ind]->Input("in"); } - MatchedFilters[channel_ind]->Output("out"), - MatchedDecimators[channel_ind]->Input("in")); - MatchedDecimators[channel_ind]->Output("out"), - MatchedAGC[channel_ind]->Input("in")); + MatchedFilters[channel_ind]->Output("out") >> MatchedDecimators[channel_ind]->Input("in"); + MatchedDecimators[channel_ind]->Output("out") >> MatchedAGC[channel_ind]->Input("in"); sprintf(tekst, "in%i", channel_ind + 1); - MatchedAGC[channel_ind]->Output("out"), - GardnerSampling.Input(tekst)); + MatchedAGC[channel_ind]->Output("out") >> GardnerSampling.Input(tekst); OutputDiff[channel_ind] = new DSP::u::CMPO; sprintf(tekst, "out%i", channel_ind + 1); - GardnerSampling.Output(tekst), OutputDiff[channel_ind]->Input("in")); + GardnerSampling.Output(tekst) >> OutputDiff[channel_ind]->Input("in"); } // DCO_Mul_pilot_signal.Output("out") >> LPF_Pilot.Input("in")); @@ -1445,13 +1428,12 @@ int test_4() SubchannelsGardnerOut[channel_ind] = new DSP::u::FileOutput(tekst, DSP::e::SampleType::ST_float, 2); sprintf(tekst, "out%i", channel_ind + 1); - GardnerSampling.Output(tekst), SubchannelsGardnerOut[channel_ind]->Input("in")); + GardnerSampling.Output(tekst) >> SubchannelsGardnerOut[channel_ind]->Input("in"); sprintf(tekst, "outputs/subchannels_diff_%02i.out", channel_ind); SubchannelsDifferatorOut[channel_ind] = new DSP::u::FileOutput(tekst, DSP::e::SampleType::ST_float, 2); - OutputDiff[channel_ind]->Output("out"), - SubchannelsDifferatorOut[channel_ind]->Input("in")); + OutputDiff[channel_ind]->Output("out") >> SubchannelsDifferatorOut[channel_ind]->Input("in"); } FileIn.Output("out") >> FileInOut.Input("in"); @@ -1493,7 +1475,7 @@ int test_4() elapsed_time, 500 * (ind + 1) / elapsed_time / 1000, Fp1 / 1000, GardnerSampling.GetSamplingPeriod()); // PilotAGC.GetPower(), (Fo-Band/2)-pilot_DCO.GetFrequency(Fp1)); - DSP::f::InfoMessage("MAIN", tekst); + DSP::log << "MAIN" << DSP::e::LogMode::second << tekst << endl; #ifdef WIN32 MSG temp_msg; @@ -1522,7 +1504,7 @@ int test_4() } DSP::Clock::FreeClocks(); - DSP::f::ErrorMessage("MAIN", "Finished"); + DSP::log << DSP::e::LogMode::Error << "MAIN" << DSP::e::LogMode::second << "Finished" << endl; return 0; } @@ -1546,14 +1528,14 @@ int test_5() AudioIn.SetName("Test"); DSP::u::DDScos AudioIn2(MasterClock); - DSP::u::DDScos AudioIn3(MasterClock, 0.4f, M_PIx2f * 8 * 400.0 / 8000); + DSP::u::DDScos AudioIn3(MasterClock, 0.4f, DSP::M_PIx2 * 8 * 400.0 / 8000); AudioIn2.SetConstInput("ampl", 0.05f); //Amplitude AudioIn2.SetConstInput("phase", 0.0f); //Initial phase - DSP::u::COSpulse AudioIn2_frequ(MasterClock, M_PIx2f * 0.5f / Fp); - DSP::Float a_in[] = { 1.0, -1.0 }; - DSP::u::IIR Acum(2, a_in); + DSP::u::COSpulse AudioIn2_frequ(MasterClock, DSP::M_PIx2 * 0.5f / Fp); + DSP::Float_vector a_in = { 1.0, -1.0 }; + DSP::u::IIR Acum(a_in); AudioIn2_frequ.Output("out") >> Acum.Input("in"); Acum.Output("out") >> AudioIn2.Input("puls"); @@ -1573,15 +1555,14 @@ int test_5() Sum.Output("out") >> FileOut2.Input("in"); - DSP::Clock::SchemeToMfile(MasterClock, "test_scheme_file.m"); + DSP::Clock::SchemeToDOTfile(MasterClock, "test_scheme_file.dot"); for (int temp = 0; temp < 40; temp++) { DSP::Clock::Execute(MasterClock, Fp / 8); - sprintf(tekst, "%i\n", temp); // 1 sec. - DSP::f::InfoMessage("MAIN", tekst); + DSP::log << "MAIN" << DSP::e::LogMode::second << temp << endl; } - DSP::f::ErrorMessage("MAIN", "end"); + DSP::log << DSP::e::LogMode::pause << "MAIN" << DSP::e::LogMode::second << "end" << endl; DSP::Clock::FreeClocks(); return 0; @@ -1609,7 +1590,7 @@ int test_6() //akum = new DSP::u::Accumulator(); //akum->SetInitialState(1.0); - temp_file = new DSP::u::FileOutput("temp.flt", DSP_ST_int, 1, DSP_FT_flt_no_scaling, 100); + temp_file = new DSP::u::FileOutput("temp.flt", DSP::e::SampleType::ST_int, 1, DSP::e::FileType::FT_flt_no_scaling, 100); //const_->Output("out") >> akum->Input("in"); //akum->Output("out") >> temp_file->Input("in1"); @@ -1626,7 +1607,7 @@ int test_6() delete tester; delete const_; - DSP::f::ErrorMessage("MAIN", "end"); + DSP::log << DSP::e::LogMode::Error << "MAIN" << DSP::e::LogMode::second << "end" << endl; DSP::Clock::FreeClocks(); return 0; @@ -1693,11 +1674,10 @@ int test_7() int temp; long int Fp; - DSP::f::SetLogState(DSP_LS_console | DSP_LS_file); - DSP::f::SetLogFileName("log_file.log"); + DSP::log.SetLogState(DSP::e::LogState::console | DSP::e::LogState::file); + DSP::log.SetLogFileName("log_file.log"); - DSP::f::InfoMessage(DSP_lib_version_string()); - DSP::f::InfoMessage(); + DSP::log << DSP::lib_version_string() << endl << endl; MasterClock = DSP::Clock::CreateMasterClock(); @@ -1706,13 +1686,13 @@ int test_7() AudioIn = new DSP::u::WaveInput(MasterClock, "test.wav", "."); Fp = AudioIn->GetSamplingRate(); DDS_macro* DDS; - DDS = new DDS_macro(MasterClock, 0.15f * M_PIx1f); + DDS = new DDS_macro(MasterClock, 0.15f * DSP::M_PIx1); DSP::u::Amplifier* gain; gain = new DSP::u::Amplifier(1.0 / 2); DSP::u::AudioOutput* AudioOut; AudioOut = new DSP::u::AudioOutput(Fp, 2); DSP::u::FileOutput* FileOut; - FileOut = new DSP::u::FileOutput("test_out.wav", DSP_ST_short, 2, DSP_FT_wav, Fp); + FileOut = new DSP::u::FileOutput("test_out.wav", DSP::e::SampleType::ST_short, 2, DSP::e::FileType::FT_wav, Fp); AudioIn->Output("out") >> gain->Input("in"); gain->Output("out") >> DDS->Input("in"); @@ -1723,7 +1703,7 @@ int test_7() DSP::Clock::SchemeToDOTfile(MasterClock, "macro_wraped.dot"); DSP::Clock::SchemeToDOTfile(MasterClock, "macro_DDS.dot", DDS); - DDS->SetDOTmode(DSP_DOT_macro_unwrap); + DDS->SetDOTmode(DSP::e::DOTmode::DOT_macro_unwrap); DSP::Clock::SchemeToDOTfile(MasterClock, "macro_unwraped.dot"); //! \todo 2010.03.31 DSP::Clock::ListOfAllComponents should show number of AutoSplitters and DSP::u::Copy objects @@ -1735,9 +1715,7 @@ int test_7() { DSP::Clock::Execute(MasterClock, Fp / 8); - string tekst = to_string(temp); - tekst += '\n'; - DSP::f::InfoMessage("MAIN", tekst); + DSP::log << "MAIN" << DSP::e::LogMode::second << temp << endl; temp++; } while (AudioIn->GetBytesRead() != 0); @@ -1750,7 +1728,7 @@ int test_7() DSP::Clock::ListOfAllComponents(); DSP::Clock::FreeClocks(); - DSP::f::InfoMessage("MAIN", "end"); + DSP::log << "MAIN" << DSP::e::LogMode::second << "end" << endl; return 0; } @@ -1780,7 +1758,7 @@ int test_8() //DSP::u::AudioOutput AudioOut(Fp); DSP::u::RawDecimator DecM44(MasterClock, 8); //DSP::u::RawDecimator DecM11(MasterClock, 11); - DSP::u::FileOutput WAVEfile("out.wav", DSP_ST_short, 1, DSP_FT_wav, Fp/8); + DSP::u::FileOutput WAVEfile("out.wav", DSP::e::SampleType::ST_short, 1, DSP::e::FileType::FT_wav, Fp/8); AudioIn.Output("out") >> DecM44.Input("in")); //DecM4.Output("out") >> DecM11.Input("in")); DecM44.Output("out") >> WAVEfile.Input("in")); @@ -1790,7 +1768,7 @@ int test_8() if (Fp == 44100) { DecM4 = new DSP::u::RawDecimator(MasterClock, 4); DecM11 = new DSP::u::RawDecimator(Clock4, 11); - WAVEfile = new DSP::u::FileOutput("out.wav", DSP_ST_short, 1, DSP_FT_wav, Fp / 44); + WAVEfile = new DSP::u::FileOutput("out.wav", DSP::e::SampleType::ST_short, 1, DSP::e::FileType::FT_wav, Fp / 44); AudioIn->Output("out") >> DecM4->Input("in"); DecM4->Output("out") >> DecM11->Input("in"); DecM11->Output("out") >> WAVEfile->Input("in"); @@ -1798,7 +1776,7 @@ int test_8() else if (Fp == 8000) { DecM8 = new DSP::u::RawDecimator(MasterClock, 8); - WAVEfile = new DSP::u::FileOutput("out.wav", DSP_ST_short, 1, DSP_FT_wav, Fp / 8); + WAVEfile = new DSP::u::FileOutput("out.wav", DSP::e::SampleType::ST_short, 1, DSP::e::FileType::FT_wav, Fp / 8); AudioIn->Output("out") >> DecM8->Input("in"); DecM8->Output("out") >> WAVEfile->Input("in"); } @@ -1832,19 +1810,19 @@ DSP::Float_ptr read_buffer = NULL; int buffer_size; int No_of_samples = 0; -void FFTout_clbk(unsigned int NoOfInputs, unsigned int NoOfOutputs, DSP::Float_ptr OutputSamples, DSP_void_ptr* UserDataPtr, unsigned int UserDefinedIdentifier, DSP::Component_ptr Caller) +void FFTout_clbk(unsigned int NoOfInputs, unsigned int NoOfOutputs, DSP::Float_vector &OutputSamples, DSP::void_ptr* UserDataPtr, unsigned int UserDefinedIdentifier, DSP::Component_ptr Caller) { DSP::u::OutputBuffer* dsp_buffer; int counter; dsp_buffer = (DSP::u::OutputBuffer*)Caller->Convert2Block(); - if (NoOfInputs == DSP_Callback_Init) + if (NoOfInputs == DSP::Callback_Init) { buffer_size = dsp_buffer->GetBufferSize(2); read_buffer = new DSP::Float[buffer_size]; return; } - if (NoOfInputs == DSP_Callback_Delete) + if (NoOfInputs == DSP::Callback_Delete) { delete[] read_buffer; read_buffer = NULL; @@ -1868,11 +1846,10 @@ int test_9() /*************************************************************/ // Log file setup - DSP::f::SetLogFileName("log_file.txt"); - DSP::f::SetLogState(DSP_LS_file | DSP_LS_console); + DSP::log.SetLogFileName("log_file.txt"); + DSP::log.SetLogState(DSP::e::LogState::file | DSP::e::LogState::console); - DSP::f::InfoMessage(DSP_lib_version_string()); - DSP::f::InfoMessage(); + DSP::log << DSP::lib_version_string() << endl << endl; /*************************************************************/ /* @@ -1886,7 +1863,7 @@ int test_9() */ - DSP_LoadCoef coef_info; + DSP::LoadCoef coef_info; unsigned int L_IFIR; unsigned int N_sh, N_ir; DSP::Float_vector tmp; @@ -1912,23 +1889,23 @@ int test_9() InputClock = DSP::Clock::CreateMasterClock(); - DSP::u::FileInput InputSignal(InputClock, "matlab/delta_44100.wav", 1U, DSP_ST_short, DSP_FT_wav); + DSP::u::FileInput InputSignal(InputClock, "matlab/delta_44100.wav", 1U, DSP::e::SampleType::ST_short, DSP::e::FileType::FT_wav); int Fp1 = InputSignal.GetSamplingRate(); /*if (Fp1_tmp != Fp1) { - DSP::f::ErrorMessage("Problem z sygnaĹem wejĹciowym"); + DSP::log << DSP::e::LogMode::Error << "Problem z sygnaĹem wejĹciowym"); } */ DSP::u::FIR H_sh(h_sh, 0, 1, L_IFIR); DSP::u::FIR H_ir(h_ir); // DSP::u::AudioOutput SoundOut(Fp2, 1, 16); - DSP::u::FileOutput FileOut_a("matlab/cw3_zad2.wav", DSP_ST_short, 1, DSP_FT_wav, Fp1); - DSP::u::FileOutput FileOut_b("matlab/cw3_zad2.flt", DSP::e::SampleType::ST_float, 1, DSP_FT_flt, Fp1); + DSP::u::FileOutput FileOut_a("matlab/cw3_zad2.wav", DSP::e::SampleType::ST_short, 1, DSP::e::FileType::FT_wav, Fp1); + DSP::u::FileOutput FileOut_b("matlab/cw3_zad2.flt", DSP::e::SampleType::ST_float, 1, DSP::e::FileType::FT_flt, Fp1); stringstream tekst; tekst << "Fp1 = " << Fp1 << ", L_IFIR = " << L_IFIR; - DSP::f::InfoMessage(tekst.str()); + DSP::log << tekst.str() << endl; /*************************************************************/ @@ -1951,7 +1928,7 @@ int test_9() int SamplesInSegment = 512; __int64 NoOfSamplesProcessed = 0; // 10 seconds -#define MAX_SAMPLES_TO_PROCESS 10*Fp1 + const long long MAX_SAMPLES_TO_PROCESS = (long long)10 * Fp1; while (NoOfSamplesProcessed < MAX_SAMPLES_TO_PROCESS) { @@ -1987,7 +1964,7 @@ int test_10(int argn, char* args[]) InputClock = DSP::Clock::CreateMasterClock(); long int F_p; - DSP_LoadCoef coef_info; + DSP::LoadCoef coef_info; DSP::Complex_vector h_C; int N_C; @@ -1995,7 +1972,7 @@ int test_10(int argn, char* args[]) N_C = coef_info.GetSize(0); if (N_C < 1) { - DSP::f::ErrorMessage("No test.coef: aboarding"); + DSP::log << DSP::e::LogMode::Error << "No test.coef: aboarding" << endl; return -1; } else @@ -2004,8 +1981,8 @@ int test_10(int argn, char* args[]) F_p = coef_info.Fp; } - DSP::u::FileInput InputSignal(InputClock, "matlab/test_in.flt", 2U, DSP::e::SampleType::ST_float, DSP_FT_flt); - DSP::u::FileOutput OutputSignal("matlab/test_out.flt", DSP::e::SampleType::ST_float, 2U, DSP_FT_flt, F_p); + DSP::u::FileInput InputSignal(InputClock, "matlab/test_in.flt", 2U, DSP::e::SampleType::ST_float, DSP::e::FileType::FT_flt); + DSP::u::FileOutput OutputSignal("matlab/test_out.flt", DSP::e::SampleType::ST_float, 2U, DSP::e::FileType::FT_flt, F_p); DSP::u::FIR FIR(true, h_C); @@ -2016,7 +1993,7 @@ int test_10(int argn, char* args[]) int SamplesInSegment = 512; __int64 NoOfSamplesProcessed = 0; // 10 seconds -// #define MAX_SAMPLES_TO_PROCESS 1*F_p +// const long long MAX_SAMPLES_TO_PROCESS = 1*F_p while (NoOfSamplesProcessed < 10000) { @@ -2047,16 +2024,15 @@ int test_11(int argn, char* args[]) */ /*************************************************************/ // Log file setup - DSP::f::SetLogFileName("log_file.log"); - //DSP::f::SetLogState(DSP_LS_file | DSP_LS_console); - DSP::f::SetLogState(DSP_LS_file); + DSP::log.SetLogFileName("log_file.log"); + //DSP::log.SetLogState(DSP::e::LogState::file | DSP::e::LogState::console); + DSP::log.SetLogState(DSP::e::LogState::file); - DSP::f::InfoMessage(DSP_lib_version_string()); - DSP::f::InfoMessage(); + DSP::log << DSP::lib_version_string() << endl << endl; /*************************************************************/ long int Fp2, F_symb; - DSP_LoadCoef coef_info; + DSP::LoadCoef coef_info; int N_rc, N2; //unsigned int L; DSP::Float_vector h_rc; @@ -2066,7 +2042,7 @@ int test_11(int argn, char* args[]) N_rc = coef_info.GetSize(0); if (N_rc < 1) { - DSP::f::ErrorMessage("No cw5_zad1_h_rc.coef: aboarding"); + DSP::log << DSP::e::LogMode::Error << "No cw5_zad1_h_rc.coef: aboarding" << endl; return -1; } else @@ -2086,19 +2062,19 @@ int test_11(int argn, char* args[]) F_symb = 1500; // dla L = 32 => Fp2 = 48000 - int K = 32; + unsigned int K = 32; Fp2 = K * F_symb; stringstream tekst; tekst << "Fsymb = " << F_symb << ", Fp2 = " << Fp2 << ", L = " << K; - DSP::f::InfoMessage(tekst.str()); + DSP::log << tekst.str() << endl; SymbolClock = DSP::Clock::GetClock(InputClock, 1, K); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // // WielokanaĹowy sygnaĹ wejĹciowy - DSP::u::FileInput InputSignal(InputClock, "cw5_zad1.flt", 2U, DSP::e::SampleType::ST_float, DSP_FT_flt); + DSP::u::FileInput InputSignal(InputClock, "cw5_zad1.flt", 2U, DSP::e::SampleType::ST_float, DSP::e::FileType::FT_flt); DSP::u::Vacuum DumpImag; DSP::u::Delay SymbolTimigDelay(1U); @@ -2107,8 +2083,8 @@ int test_11(int argn, char* args[]) InputSignal.Output("out.im") >> DumpImag.Input("in"); DSP::u::OutputBuffer OutputBuffer(K, // unsigned int BufferSize_in, - 1, // unsigned int NoOfInputs_in, - DSP_stop_when_full, //DSPe_buffer_type cyclic, + 1U, // unsigned int NoOfInputs_in, + DSP::e::BufferType::stop_when_full, //DSPe_buffer_type cyclic, InputClock, //DSP::Clock_ptr ParentClock, SymbolClock, //DSP::Clock_ptr NotificationsClock, K, //unsigned int NoOfOutputs_in, @@ -2143,7 +2119,7 @@ int test_11(int argn, char* args[]) { Discard[current] = new DSP::u::Vacuum(true); sprintf(text, "out%i", ind); - fft->Output(text), Discard[current++]->Input("in")); + fft->Output(text) >> Discard[current++]->Input("in"); } } @@ -2151,33 +2127,33 @@ int test_11(int argn, char* args[]) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // // Pierwszy kanaĹ danych - DSP::u::PSKdecoder PSKdecoder1(DSP_QPSK_A); - // DSP::u::FileOutput BinData1("cw5_zad1.dat", DSP_ST_bit, 2U, DSP_FT_raw, F_symb); - DSP::u::FileOutput SymbData1("cw5_zad2a.flt", DSP::e::SampleType::ST_float, 2U, DSP_FT_flt, F_symb); - DSP::u::FileOutput BinData1("cw5_zad2a.dat", DSP_ST_bit_text, 2U, DSP_FT_raw); + DSP::u::PSKdecoder PSKdecoder1(DSP::e::PSK_type::QPSK_A); + // DSP::u::FileOutput BinData1("cw5_zad1.dat", DSP::e::SampleType::ST_bit, 2U, DSP::e::FileType::FT_raw, F_symb); + DSP::u::FileOutput SymbData1("cw5_zad2a.flt", DSP::e::SampleType::ST_float, 2U, DSP::e::FileType::FT_flt, F_symb); + DSP::u::FileOutput BinData1("cw5_zad2a.dat", DSP::e::SampleType::ST_bit_text, 2U, DSP::e::FileType::FT_raw); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // // drugi kanaĹ danych - DSP::u::PSKdecoder PSKdecoder2(DSP_QPSK_A); - DSP::u::FileOutput BinData2("cw5_zad2b.dat", DSP_ST_bit, 2U, DSP_FT_raw, F_symb); + DSP::u::PSKdecoder PSKdecoder2(DSP::e::PSK_type::QPSK_A); + DSP::u::FileOutput BinData2("cw5_zad2b.dat", DSP::e::SampleType::ST_bit, 2U, DSP::e::FileType::FT_raw, F_symb); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // // trzeci kanaĹ danych - DSP::u::PSKdecoder PSKdecoder3(DSP_QPSK_A); - DSP::u::FileOutput BinData3("cw5_zad2c.dat", DSP_ST_bit, 2U, DSP_FT_raw, F_symb); + DSP::u::PSKdecoder PSKdecoder3(DSP::e::PSK_type::QPSK_A); + DSP::u::FileOutput BinData3("cw5_zad2c.dat", DSP::e::SampleType::ST_bit, 2U, DSP::e::FileType::FT_raw, F_symb); // podĹÄ cz kanaĹy wÄ skopasmowe ST // kanaĹ nr 8 string name; name = "out"; name += to_string(channel1); - fft->Output(name), PSKdecoder1.Input("in")); + fft->Output(name) >> PSKdecoder1.Input("in"); // kanaĹ nr 10 name = "out"; name += to_string(channel2); - fft->Output(name), PSKdecoder2.Input("in")); - fft->Output(name), SymbData1.Input("in")); + fft->Output(name) >> PSKdecoder2.Input("in"); + fft->Output(name) >> SymbData1.Input("in"); // kanaĹ nr 13 name = "out"; name += to_string(channel3); - fft->Output(name), PSKdecoder3.Input("in")); + fft->Output(name) >> PSKdecoder3.Input("in"); PSKdecoder1.Output("out") >> BinData1.Input("in"); PSKdecoder2.Output("out") >> BinData2.Input("in"); @@ -2198,7 +2174,7 @@ int test_11(int argn, char* args[]) int SamplesInSegment = 512; __int64 NoOfSamplesProcessed = 0; // 10 seconds -#define MAX_SAMPLES_TO_PROCESS 1*Fp2 + const long long MAX_SAMPLES_TO_PROCESS = (long long)(1 * Fp2); while (NoOfSamplesProcessed < MAX_SAMPLES_TO_PROCESS) { @@ -2222,7 +2198,7 @@ int test_11(int argn, char* args[]) // ********************************************************** // //sprintf(tekst, "NoOfSamplesProcessed = %i", int(NoOfSamplesProcessed)); - //DSP::f::InfoMessage(tekst); + //DSP::log << tekst); } /*************************************************************/ @@ -2246,14 +2222,14 @@ int test_11(int argn, char* args[]) #define buffer_size 4 //DSP::Float_ptr read_buffer = NULL; -void BufferCallback(unsigned int NoOfInputs, unsigned int NoOfOutputs, DSP::Float_ptr OutputSamples, DSP_void_ptr * UserDataPtr, unsigned int UserDefinedIdentifier, DSP::Component_ptr Caller) +void BufferCallback(unsigned int NoOfInputs, unsigned int NoOfOutputs, DSP::Float_vector &OutputSamples, DSP::void_ptr * UserDataPtr, unsigned int UserDefinedIdentifier, DSP::Component_ptr Caller) { - if (NoOfInputs == DSP_Callback_Init) + if (NoOfInputs == DSP::Callback_Init) { read_buffer = new DSP::Float[buffer_size]; return; } - if (NoOfInputs == DSP_Callback_Delete) + if (NoOfInputs == DSP::Callback_Delete) { delete[] read_buffer; read_buffer = NULL; @@ -2304,10 +2280,10 @@ int test_12(void) DSP::u::Amplifier* Scale; DSP::u::Multiplexer* Multiplexer2; - DSP::f::SetLogState(DSP_LS_console | DSP_LS_file); - DSP::f::SetLogFileName("log_file.log"); + DSP::log.SetLogState(DSP::e::LogState::console | DSP::e::LogState::file); + DSP::log.SetLogFileName("log_file.log"); - DSP::f::InfoMessage(DSP_lib_version_string()); + DSP::log << DSP::lib_version_string() << endl << endl; MasterClock = DSP::Clock::CreateMasterClock(); @@ -2319,7 +2295,7 @@ int test_12(void) callback_type = 1; // inverse spectrum OutputBuffer = new DSP::u::OutputBuffer(buffer_size, 1, - DSP_standard, + DSP::e::BufferType::standard, MasterClock, -1, buffer_size, @@ -2357,8 +2333,7 @@ int test_12(void) { DSP::Clock::Execute(MasterClock, Fp / 8); - sprintf(tekst, "%i\n", temp); - DSP::f::InfoMessage("MAIN", tekst); + DSP::log << "MAIN" << DSP::e::LogMode::second << temp << endl; temp++; } while (AudioIn->GetBytesRead() != 0); @@ -2372,7 +2347,7 @@ int test_12(void) DSP::Clock::ListOfAllComponents(); DSP::Clock::FreeClocks(); - DSP::f::InfoMessage("MAIN", "end"); + DSP::log << "MAIN" << DSP::e::LogMode::second << "end" << endl; return 0; } @@ -2386,7 +2361,7 @@ int test_SolveMatrix(int mode) { DSP::Float_vector X; // vector reserved for solution { - DSP::f::InfoMessage("A=["); + DSP::log << "A=[" << endl; for (const auto& row : A_in) { unsigned int ind = 0; stringstream ss; @@ -2399,9 +2374,9 @@ int test_SolveMatrix(int mode) { } } ss << "]"; - DSP::f::InfoMessage(ss.str()); + DSP::log << ss.str() << endl; } - DSP::f::InfoMessage(" ]"); + DSP::log << " ]" << endl; } { unsigned int ind = 0; @@ -2415,21 +2390,21 @@ int test_SolveMatrix(int mode) { } } ss << "]"; - DSP::f::InfoMessage(ss.str()); + DSP::log << ss.str() << endl; } switch (mode) { case 0: - DSP::f::InfoMessage("DSP::f::SolveMatrixEqu(A_in, X, B_in);"); + DSP::log << "DSP::f::SolveMatrixEqu(A_in, X, B_in);" << endl; DSP::f::SolveMatrixEqu(A_in, X, B_in); break; case 1: - DSP::f::InfoMessage("DSP::f::SolveMatrixEqu_prec(A_in, X, B_in);"); + DSP::log << "DSP::f::SolveMatrixEqu_prec(A_in, X, B_in);" << endl; DSP::f::SolveMatrixEqu_prec(A_in, X, B_in); break; default: - DSP::f::InfoMessage("test_SolveMatrix", "unsupported mode"); + DSP::log << "test_SolveMatrix" << DSP::e::LogMode::second << "unsupported mode" << endl; break; } { @@ -2444,7 +2419,7 @@ int test_SolveMatrix(int mode) { } } ss << "]"; - DSP::f::InfoMessage(ss.str()); + DSP::log << ss.str() << endl; } // \TODO test also DSP::f::LPF_LS(); @@ -2460,15 +2435,15 @@ int test_SolveMatrix(int mode) { } int test_SolveMatrix_prec(int mode) { - vector<DSP_prec_float_vector> A_in = + vector<DSP::Prec_Float_vector> A_in = { {3.0, 1.0, 1.0}, {0.5, 1.0, 1.5}, // {0.5, 2.0, 1.5}, {0.1, 1.0, 0.1} }; // matrix coefficients (table of rows) - DSP_prec_float_vector B_in = { 1, 1, 1 }; - DSP_prec_float_vector X; // vector reserved for solution + DSP::Prec_Float_vector B_in = { 1, 1, 1 }; + DSP::Prec_Float_vector X; // vector reserved for solution { - DSP::f::InfoMessage("A=["); + DSP::log << "A=[" << endl; for (const auto& row : A_in) { unsigned int ind = 0; stringstream ss; @@ -2481,9 +2456,9 @@ int test_SolveMatrix_prec(int mode) { } } ss << "]"; - DSP::f::InfoMessage(ss.str()); + DSP::log << ss.str() << endl; } - DSP::f::InfoMessage(" ]"); + DSP::log << " ]" << endl; } { unsigned int ind = 0; @@ -2497,26 +2472,26 @@ int test_SolveMatrix_prec(int mode) { } } ss << "]"; - DSP::f::InfoMessage(ss.str()); + DSP::log << ss.str() << endl; } switch (mode) { case 0: - DSP::f::InfoMessage("DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 0);"); + DSP::log << "DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 0);" << endl; DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 0); break; case 1: - DSP::f::InfoMessage("DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 1);"); + DSP::log << "DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 1);" << endl; DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 1); break; case 2: - DSP::f::InfoMessage("DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 2);"); + DSP::log << "DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 2);" << endl; DSP::f::SolveMatrixEqu_prec(A_in, X, B_in, 2); break; default: - DSP::f::InfoMessage("test_SolveMatrix_prec", "unsupported mode"); + DSP::log << "test_SolveMatrix_prec" << DSP::e::LogMode::second << "unsupported mode" << endl; break; } { @@ -2531,7 +2506,7 @@ int test_SolveMatrix_prec(int mode) { } } ss << "]"; - DSP::f::InfoMessage(ss.str()); + DSP::log << ss.str() << endl; } // \TODO test also DSP::f::LPF_LS(); @@ -2547,22 +2522,24 @@ int test_SolveMatrix_prec(int mode) { } int test_SymbolMapper() { + //! \TODO Need fixing: fails in release mode DSP::Clock_ptr BitClock, SymbolClock; map<string, shared_ptr<DSP::Component> > blocks; int bits_per_symbol = 3; BitClock = DSP::Clock::CreateMasterClock(); - blocks["binary_stream"] = shared_ptr<DSP_source>(new DSP::u::binrand(BitClock)); + blocks["binary_stream"] = shared_ptr<DSP::Source>(new DSP::u::BinRand(BitClock)); - blocks["file_bin"] = shared_ptr<DSP_block>(new DSP::u::FileOutput("bin_input.txt", DSP_ST_bit_text, 1, DSP_FT_raw)); + blocks["file_bin"] = shared_ptr<DSP::Block>(new DSP::u::FileOutput("bin_input.txt", DSP::e::SampleType::ST_bit_text, 1, DSP::e::FileType::FT_raw)); // sources["binary_stream"]->Output("out"),blocks["file_bin"]->Input("in")); blocks["binary_stream"]->Output("out") >> blocks["file_bin"]->Input("in"); blocks["SPconv"] = make_shared<DSP::u::Serial2Parallel>(BitClock, bits_per_symbol); - blocks["mapper"] = make_shared<DSP::u::SymbolMapper>(DSP_MT_ASK, bits_per_symbol); + blocks["mapper"] = make_shared<DSP::u::SymbolMapper>(DSP::e::ModulationType::ASK, bits_per_symbol); + + blocks["binary_stream"]->Output("out") >> blocks["SPconv"]->Input("in"); blocks["SPconv"]->Output("out") >> blocks["mapper"]->Input("in"); - blocks["binary_stream"]->Output("out") >> blocks["mapper"]->Input("in"); // SymbolClock = blocks["mapper"]->GetOutputClock(); // SymbolClock = DSP::Clock::GetClock(BitClock, 1, ((DSP::u::SymbolMapper *)blocks["mapper"])->getBitsPerSymbol()); SymbolClock = DSP::Clock::GetClock(BitClock, 1, bits_per_symbol); @@ -2570,17 +2547,17 @@ int test_SymbolMapper() { if (dynamic_cast<DSP::u::SymbolMapper*>(blocks["mapper"].get())->isOutputReal() == false) noChannels = 2; - blocks["file_symb"] = shared_ptr<DSP_block>(new DSP::u::FileOutput("symb_output.flt", DSP::e::SampleType::ST_float, noChannels, DSP_FT_flt)); + blocks["file_symb"] = shared_ptr<DSP::Block>(new DSP::u::FileOutput("symb_output.flt", DSP::e::SampleType::ST_float, noChannels, DSP::e::FileType::FT_flt)); blocks["mapper"]->Output("out") >> blocks["file_symb"]->Input("in"); - blocks["demapper"] = make_shared<DSP::u::SymbolDemapper>(DSP_MT_ASK, bits_per_symbol); + blocks["demapper"] = make_shared<DSP::u::SymbolDemapper>(DSP::e::ModulationType::ASK, bits_per_symbol); blocks["mapper"]->Output("out") >> blocks["demapper"]->Input("in"); - blocks["PSconv"] = make_shared<DSP::u::Parallel2Serial>(BitClock, bits_per_symbol); + blocks["PSconv"] = make_shared<DSP::u::Parallel2Serial>(SymbolClock, bits_per_symbol); blocks["demapper"]->Output("out") >> blocks["PSconv"]->Input("in"); - blocks["file_bin_recovered"] = shared_ptr<DSP_block>(new DSP::u::FileOutput("bin_output.flt", DSP::e::SampleType::ST_float, 1, DSP_FT_flt)); - blocks["file_bin_recovered2"] = shared_ptr<DSP_block>(new DSP::u::FileOutput("bin_output.txt", DSP_ST_bit_text, 1, DSP_FT_raw)); + blocks["file_bin_recovered"] = shared_ptr<DSP::Block>(new DSP::u::FileOutput("bin_output.flt", DSP::e::SampleType::ST_float, 1, DSP::e::FileType::FT_flt)); + blocks["file_bin_recovered2"] = shared_ptr<DSP::Block>(new DSP::u::FileOutput("bin_output.txt", DSP::e::SampleType::ST_bit_text, 1, DSP::e::FileType::FT_raw)); blocks["PSconv"]->Output("out") >> blocks["file_bin_recovered"]->Input("in"); blocks["PSconv"]->Output("out") >> blocks["file_bin_recovered2"]->Input("in"); @@ -2608,7 +2585,7 @@ int test_SymbolMapper() { int test_ZPSTC_cw_3() { long int Fp1, Fp2, F_symb; - DSP_LoadCoef coef_info; + DSP::LoadCoef coef_info; int N_rc, N2; unsigned int L1, L2; DSP::Float_vector h_rc, h2; @@ -2617,7 +2594,7 @@ int test_ZPSTC_cw_3() N_rc = coef_info.GetSize(0); if (N_rc < 1) { - DSP::f::ErrorMessage("No cw3_zad3_h_rc.coef: aboarding"); + DSP::log << DSP::e::LogMode::Error << "No cw3_zad3_h_rc.coef: aboarding" << endl; return -1; } else @@ -2631,7 +2608,7 @@ int test_ZPSTC_cw_3() N2 = coef_info.GetSize(0); if (N2 < 1) { - DSP::f::ErrorMessage("No cw3_zad3_h2.coef: aboarding"); + DSP::log << DSP::e::LogMode::Error << "No cw3_zad3_h2.coef: aboarding" << endl; return -1; } else @@ -2649,15 +2626,13 @@ int test_ZPSTC_cw_3() //DSP::u::WaveInput AudioIn(MasterClock, "test.wav", "."); //F_symb = AudioIn.GetSamplingRate(); - DSP::u::FileInput BinData(SymbolClock, "/Dev-Cpp/ZPSTC/Cw3/Cw3_zad3.cpp", 2U, DSP_ST_bit, DSP_FT_raw); + DSP::u::FileInput BinData(SymbolClock, "/Dev-Cpp/ZPSTC/Cw3/Cw3_zad3.cpp", 2U, DSP::e::SampleType::ST_bit, DSP::e::FileType::FT_raw); F_symb = 2400; - DSP::u::PSKencoder PSKencoder(DSP_QPSK_A); + DSP::u::PSKencoder PSKencoder(DSP::e::PSK_type::QPSK_A); L1 = Fp1 / F_symb; L2 = Fp2 / Fp1; - stringstream ss; - ss << "Fsymb = " << F_symb << ", Fp1 = " << Fp1 << ", Fp2 = " << Fp2 << ", L1 = " << L1 << ", L2 = " << L2; - DSP::f::InfoMessage(ss.str()); + DSP::log << "Fsymb = " << F_symb << ", Fp1 = " << Fp1 << ", Fp2 = " << Fp2 << ", L1 = " << L1 << ", L2 = " << L2 << endl; SecondClock = DSP::Clock::GetClock(SymbolClock, L2, 1); @@ -2666,20 +2641,20 @@ int test_ZPSTC_cw_3() DSP::u::SamplingRateConversion SRC1(true, SymbolClock, L2, 1, h2); SRC1.SetName("SRC2"); - DSP::u::DDScos Heter(SRC2.GetOutputClock(), true, 0.5, M_PIx2 * 2500 / Fp2); + DSP::u::DDScos Heter(SRC2.GetOutputClock(), true, 0.5, DSP::M_PIx2 * 2500 / Fp2); DSP::u::Multiplication Mul(0, 2); DSP::u::Vacuum V1; // Output to the soundcard DSP::u::AudioOutput SoundOut(Fp2, 1, 16); - DSP::u::FileOutput FileOut1("cw3_zad3a.flt", DSP::e::SampleType::ST_float, 2, DSP_FT_flt, Fp1); + DSP::u::FileOutput FileOut1("cw3_zad3a.flt", DSP::e::SampleType::ST_float, 2, DSP::e::FileType::FT_flt, Fp1); // Output to the mono 16bit *.wav file - DSP::u::FileOutput FileOut2a("cw3_zad3b.wav", DSP_ST_short, 1, DSP_FT_wav, Fp2); - DSP::u::FileOutput FileOut2b("cw3_zad3b.flt", DSP::e::SampleType::ST_float, 1, DSP_FT_flt, Fp2); + DSP::u::FileOutput FileOut2a("cw3_zad3b.wav", DSP::e::SampleType::ST_short, 1, DSP::e::FileType::FT_wav, Fp2); + DSP::u::FileOutput FileOut2b("cw3_zad3b.flt", DSP::e::SampleType::ST_float, 1, DSP::e::FileType::FT_flt, Fp2); // ??? - DSP::u::FileOutput FileOut_test("test.flt", DSP::e::SampleType::ST_float, 2, DSP_FT_flt, Fp2); + DSP::u::FileOutput FileOut_test("test.flt", DSP::e::SampleType::ST_float, 2, DSP::e::FileType::FT_flt, Fp2); /*************************************************************/ // Connections definitions @@ -2715,7 +2690,7 @@ int test_ZPSTC_cw_3() int SamplesInSegment = 4 * 512; __int64 NoOfSamplesProcessed = 0; // 10 seconds -#define MAX_SAMPLES_TO_PROCESS 10*Fp1 + const long long MAX_SAMPLES_TO_PROCESS = (long long)10 * Fp1; while (NoOfSamplesProcessed < MAX_SAMPLES_TO_PROCESS) { @@ -2724,9 +2699,7 @@ int test_ZPSTC_cw_3() // ********************************************************** // int bytes_read = BinData.GetBytesRead(); - stringstream ss2; - ss << "BinData.GetBytesRead() = " << bytes_read; - DSP::f::InfoMessage(ss2.str()); + DSP::log << "BinData.GetBytesRead() = " << bytes_read << endl; if (bytes_read > 0) { NoOfSamplesProcessed = 0; // Play the whole file @@ -2749,11 +2722,11 @@ int test_ZPSTC_cw_3() int main(int argc, char* argv[]) { - // DSP::f::SetLogState(DSP_LS_console | DSP_LS_file); - DSP::f::SetLogState(DSP_LS_console | DSP_LS_file); - DSP::f::SetLogFileName("DSPElib_test_log.txt"); + // DSP::log.SetLogState(DSP::e::LogState::console | DSP::e::LogState::file); + DSP::log.SetLogState(DSP::e::LogState::console | DSP::e::LogState::file); + DSP::log.SetLogFileName("DSPElib_test_log.txt"); - DSP::f::InfoMessage("Starting SolveMatrix test"); + DSP::log << "Starting SolveMatrix test" << endl; for (auto i = 0; i < 3; i++) { test_SolveMatrix(i); } @@ -2761,67 +2734,67 @@ int main(int argc, char* argv[]) test_SolveMatrix_prec(i); } //! \TODO test DSP::f::LPF_LS - DSP::f::ErrorMessage("Finished SolveMatrix test"); + DSP::log << DSP::e::LogMode::Error << "Finished SolveMatrix test" << endl; - DSP::f::InfoMessage("Starting SymbolMapper test"); + DSP::log << "Starting SymbolMapper test" << endl; test_SymbolMapper(); - DSP::f::ErrorMessage("Finished SymbolMapper test"); + DSP::log << DSP::e::LogMode::Error << "Finished SymbolMapper test" << endl; - DSP::f::InfoMessage("Starting test_ZPSTC_cw_3"); + DSP::log << "Starting test_ZPSTC_cw_3" << endl; test_ZPSTC_cw_3(); - DSP::f::ErrorMessage("Finished test_ZPSTC_cw_3"); + DSP::log << DSP::e::LogMode::Error << "Finished test_ZPSTC_cw_3" << endl; - //DSP::f::InfoMessage("Starting test_hello"); + //DSP::log << "Starting test_hello"); //test_hello(); - //DSP::f::ErrorMessage("Finished test_hello"); + //DSP::log << DSP::e::LogMode::Error << "Finished test_hello" << endl; - DSP::f::InfoMessage("Starting test_1"); + DSP::log << "Starting test_1" << endl; test_1(argc, argv); - DSP::f::ErrorMessage("Finished test_1"); + DSP::log << DSP::e::LogMode::Error << "Finished test_1" << endl; - DSP::f::InfoMessage("Starting test_2"); + DSP::log << "Starting test_2" << endl; test_2(); - DSP::f::ErrorMessage("Finished test_2"); + DSP::log << DSP::e::LogMode::Error << "Finished test_2" << endl; - DSP::f::InfoMessage("Starting test_3"); + DSP::log << "Starting test_3" << endl; test_3(); - DSP::f::ErrorMessage("Finished test_3"); + DSP::log << DSP::e::LogMode::Error << "Finished test_3" << endl; - DSP::f::InfoMessage("Starting test_4"); + DSP::log << "Starting test_4" << endl; test_4(); - DSP::f::ErrorMessage("Finished test_4"); + DSP::log << DSP::e::LogMode::Error << "Finished test_4" << endl; - DSP::f::InfoMessage("Starting test_5"); + DSP::log << "Starting test_5" << endl; test_5(); - DSP::f::ErrorMessage("Finished test_5"); + DSP::log << DSP::e::LogMode::Error << "Finished test_5" << endl; - DSP::f::InfoMessage("Starting test_6"); + DSP::log << "Starting test_6" << endl; test_6(); - DSP::f::ErrorMessage("Finished test_6"); + DSP::log << DSP::e::LogMode::Error << "Finished test_6" << endl; - DSP::f::InfoMessage("Starting test_7"); + DSP::log << "Starting test_7" << endl; test_7(); - DSP::f::ErrorMessage("Finished test_7"); + DSP::log << DSP::e::LogMode::Error << "Finished test_7" << endl; - DSP::f::InfoMessage("Starting test_8"); + DSP::log << "Starting test_8" << endl; test_8(); - DSP::f::ErrorMessage("Finished test_8"); + DSP::log << DSP::e::LogMode::Error << "Finished test_8" << endl; - DSP::f::InfoMessage("Starting test_9"); + DSP::log << "Starting test_9" << endl; test_9(); - DSP::f::ErrorMessage("Finished test_9"); + DSP::log << DSP::e::LogMode::Error << "Finished test_9" << endl; - DSP::f::InfoMessage("Starting test_10"); + DSP::log << "Starting test_10" << endl; test_10(argc, argv); - DSP::f::ErrorMessage("Finished test_10"); + DSP::log << DSP::e::LogMode::Error << "Finished test_10" << endl; - DSP::f::InfoMessage("Starting test_11"); + DSP::log << "Starting test_11" << endl; test_11(argc, argv); - DSP::f::ErrorMessage("Finished test_11"); + DSP::log << DSP::e::LogMode::Error << "Finished test_11" << endl; - DSP::f::InfoMessage("Starting test_12"); + DSP::log << "Starting test_12" << endl; test_12(); - DSP::f::ErrorMessage("Finished test_12"); + DSP::log << DSP::e::LogMode::Error << "Finished test_12" << endl; } diff --git a/examples/DSPElib_examples.vcxproj b/examples/DSPElib_examples.vcxproj index 8bc54aeccc412624de567126290caf0fe5d4d3b4..1298bf0a5ed987a55fbf4520bcf06043ccd7afb2 100644 --- a/examples/DSPElib_examples.vcxproj +++ b/examples/DSPElib_examples.vcxproj @@ -37,7 +37,7 @@ <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v142</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> @@ -50,7 +50,7 @@ <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v142</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> @@ -72,19 +72,23 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <LinkIncremental>true</LinkIncremental> - <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\</OutDir> + <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir> <IntDir>$(Configuration)\$(Platform)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> - <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\</OutDir> + <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir> <IntDir>$(Configuration)\$(Platform)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir> + <IntDir>$(Configuration)\$(Platform)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir> + <IntDir>$(Configuration)\$(Platform)\</IntDir> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> @@ -95,12 +99,13 @@ <SDLCheck>true</SDLCheck> <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> - <AdditionalIncludeDirectories>D:\VisualStudio_Apps\source_DSPE\DSPElib_library\src\include\dbg;D:\VisualStudio_Apps\source_DSPE\DSPElib_library\src\include;D:\VisualStudio_Apps\source_DSPE\DSPElib_examples\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\dbg;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalDependencies>winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> @@ -110,15 +115,15 @@ <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> <SDLCheck>true</SDLCheck> - <PreprocessorDefinitions>WIN64,_AMD64_;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN64;_AMD64_;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> - <AdditionalIncludeDirectories>D:\VisualStudio_Apps\source_DSPE\DSPElib_library\src\include\dbg;D:\VisualStudio_Apps\source_DSPE\DSPElib_library\src\include;D:\VisualStudio_Apps\source_DSPE\DSPElib_examples\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\dbg;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>D:\VisualStudio_Apps\source_DSPE\DSPElib\Debug\Win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>winmm.lib;DSPElib.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> @@ -132,14 +137,15 @@ <SDLCheck>true</SDLCheck> <PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> - <AdditionalIncludeDirectories>D:\VisualStudio_Apps\source_DSPE\DSPElib_library\src\include\rls;D:\VisualStudio_Apps\source_DSPE\DSPElib_library\src\include;D:\VisualStudio_Apps\source_DSPE\DSPElib_examples\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\rls;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalDependencies>winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> @@ -151,21 +157,24 @@ <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> <SDLCheck>true</SDLCheck> - <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN64;_AMD64_;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\rls;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="DSPElib_examples.cpp" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\DSPElib_library\DSPElib.vcxproj"> + <ProjectReference Include="..\src\DSPElib.vcxproj"> <Project>{8b31df82-cf28-464b-a1fa-90aa08c50f4c}</Project> </ProjectReference> </ItemGroup> diff --git a/examples/echo.vcxproj b/examples/echo.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..fc905e3817ef4640a02949d0e90f29c0e04970d1 --- /dev/null +++ b/examples/echo.vcxproj @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <VCProjectVersion>16.0</VCProjectVersion> + <ProjectGuid>{00E43F8A-C081-44B7-9279-C9A454D1B5BD}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>echo</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>$(SolutionDir)\examples\$(Configuration)\$(Platform)\</OutDir> + <ExeOutDir>$(SolutionDir)\examples\</ExeOutDir> + <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>$(SolutionDir)\examples\$(Configuration)\$(Platform)\</OutDir> + <ExeOutDir>$(SolutionDir)\examples\</ExeOutDir> + <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)\examples\$(Configuration)\$(Platform)\</OutDir> + <ExeOutDir>$(SolutionDir)\examples\</ExeOutDir> + <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)\examples\$(Configuration)\$(Platform)\</OutDir> + <ExeOutDir>$(SolutionDir)\examples\</ExeOutDir> + <IntDir>$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\dbg;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(ExeOutDir)$(TargetName)_dbg$(TargetExt)</OutputFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN64;_AMD64_;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\dbg;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(ExeOutDir)$(TargetName)_dbg$(TargetExt)</OutputFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\rls;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(ExeOutDir)$(TargetName)$(TargetExt)</OutputFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN64;_AMD64_;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>$(SolutionDir)src\include\rls;$(SolutionDir)src\include;.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>$(SolutionDir)..\_DSPE_lib_VStudio_\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>DSPElib.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(ExeOutDir)$(TargetName)$(TargetExt)</OutputFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="echo.cpp" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\src\DSPElib.vcxproj"> + <Project>{8b31df82-cf28-464b-a1fa-90aa08c50f4c}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/examples/echo.vcxproj.user b/examples/echo.vcxproj.user new file mode 100644 index 0000000000000000000000000000000000000000..88a550947edbc3c5003a41726f0749201fdb6822 --- /dev/null +++ b/examples/echo.vcxproj.user @@ -0,0 +1,4 @@ +ďťż<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project> \ No newline at end of file diff --git a/examples/echo_dbg.exe b/examples/echo_dbg.exe new file mode 100644 index 0000000000000000000000000000000000000000..0fbbb57d316e2bbd5172880a8f3fea4e7fe94327 Binary files /dev/null and b/examples/echo_dbg.exe differ diff --git a/src/DSPElib.vcxproj b/src/DSPElib.vcxproj index 84c46e1fa4542d687d163d9315edef6a6ba62dc1..113645f124b6413073e7687fd65d4bce0499d87c 100644 --- a/src/DSPElib.vcxproj +++ b/src/DSPElib.vcxproj @@ -182,6 +182,7 @@ <ClCompile Include="cpp\DSP_clocks.cpp" /> <ClCompile Include="cpp\DSP_Fourier.cpp" /> <ClCompile Include="cpp\DSP_modules_misc.cpp" /> + <ClCompile Include="cpp\DSP_AudioMixer.cpp" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/src/include/DSP_clocks.h b/src/include/DSP_clocks.h index 2e8955369a2ab397206ed238f461b161db7137c9..95f2fc0c0b42db75ec8c4a5cc29e378378b9a11b 100644 --- a/src/include/DSP_clocks.h +++ b/src/include/DSP_clocks.h @@ -370,7 +370,7 @@ class DSP::Clock private: //!Saves components information to m-file /*! For all components linked with this clock info is stored - * in dot-file format. Called from DSP::Clock::SchemeToMfile + * in dot-file format. Called from DSP::Clock::SchemeToDOTfile */ bool ClockComponentsToDOTfile(std::ofstream &m_plik, vector<bool> &ComponentDoneTable, long max_components_number, diff --git a/src/include/DSP_types.h b/src/include/DSP_types.h index 50f2857bca84c7b9f8e3f2cefba4fa42bd1c0f5c..76060cebe21f62a65848e64d350d2d74ee1f4b29 100644 --- a/src/include/DSP_types.h +++ b/src/include/DSP_types.h @@ -192,7 +192,7 @@ namespace DSP { //! Pointer to the buffer callback function /*! void func(unsigned int NoOfInputs, - * unsigned int NoOfOutputs, DSP::Float_ptr OutputSamples, + * unsigned int NoOfOutputs, DSP::Float_vector &OutputSamples, * DSP::void_ptr *UserDataPtr, unsigned int UserDefinedIdentifier, * DSP::Component_ptr Caller) *