git-svn-id: https://svn.code.sf.net/p/freetel/code@551 01035d8c-6547-0410-b346-abe4f9...
authorwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 15 Jun 2012 14:26:24 +0000 (14:26 +0000)
committerwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 15 Jun 2012 14:26:24 +0000 (14:26 +0000)
fdmdv2/.clang/.gitignore [new file with mode: 0644]
fdmdv2/audiostream.cpp [new file with mode: 0644]
fdmdv2/audiostream.h [new file with mode: 0644]
fdmdv2/fdmdv2.mk
fdmdv2/fdmdv2_main.cpp
fdmdv2/fdmdv2_main.h
fdmdv2/fdmdv2_thread_audio.cpp [deleted file]
fdmdv2/fdmdv2_wsp.mk
fdmdv2/paclass.cpp
fdmdv2/paclass.h

diff --git a/fdmdv2/.clang/.gitignore b/fdmdv2/.clang/.gitignore
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/fdmdv2/audiostream.cpp b/fdmdv2/audiostream.cpp
new file mode 100644 (file)
index 0000000..afb66d5
--- /dev/null
@@ -0,0 +1,110 @@
+//============================================================
+// AudioStream.h
+//
+//
+//============================================================
+#include "audiostream.h"\r
+
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
+// Class AudioStream constructor
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
+AudioStream::AudioStream(int tableSize) : tableSize_(tableSize), leftPhase_(0), rightPhase_(0)
+{
+    const double PI = 3.14159265;
+    table_ = new float[tableSize];
+    for (int i = 0; i < tableSize; ++i)
+    {
+        table_[i] = 0.125f * (float)sin(((double)i/(double)tableSize)*PI*2.);
+    }
+}
+
+//------------------------------------------------------------
+// Class AudioStream destructor
+//------------------------------------------------------------
+AudioStream::~AudioStream()
+{
+    delete[] table_;
+}
+
+//------------------------------------------------------------
+// generate()
+//------------------------------------------------------------
+int AudioStream::generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
+{
+    assert(outputBuffer != NULL);
+
+    float **out = static_cast<float **>(outputBuffer);
+
+    for (unsigned int i = 0; i < framesPerBuffer; ++i)
+    {
+        out[0][i] = table_[leftPhase_];
+        out[1][i] = table_[rightPhase_];
+
+        leftPhase_ += 1;
+        if (leftPhase_ >= tableSize_)
+            leftPhase_ -= tableSize_;
+
+        rightPhase_ += 3;
+        if (rightPhase_ >= tableSize_)
+            rightPhase_ -= tableSize_;
+    }
+
+    return paContinue;
+}
+\r
+//------------------------------------------------------------
+// Open()
+//------------------------------------------------------------
+void AudioStream::Open()
+{
+    wxString estr;\r
+    try\r
+    {\r
+        // Create a SineGenerator object:\r
+        AudioStream AudioStream(TABLE_SIZE);\r
+\r
+        // Set up the System:\r
+        portaudio::AutoSystem autoSys;\r
+        portaudio::System &sys = portaudio::System::instance();\r
+        // Set up the parameters required to open a (Callback)Stream:\r
+        portaudio::DirectionSpecificStreamParameters outParams(sys.defaultOutputDevice(), 2, portaudio::FLOAT32, false, sys.defaultOutputDevice().defaultLowOutputLatency(), NULL);\r
+        portaudio::StreamParameters params(portaudio::DirectionSpecificStreamParameters::null(), outParams, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff);\r
+\r
+        wxMessageBox(wxT("Opening stereo output stream..."), wxT("Info"), wxOK);\r
+        // Create (and open) a new Stream, using the SineGenerator::generate function as a callback:\r
+        portaudio::MemFunCallbackStream<AudioStream> stream(params, AudioStream, &AudioStream::generate);\r
+        wxMessageBox(wxT("Starting playback for %i  seconds."), wxT("Info"), wxOK);\r
+        // Start the Stream (audio playback starts):\r
+//        stream.start();\r
+        // Wait for 5 seconds:\r
+        sys.sleep(NUM_SECONDS * 1000);\r
+        wxMessageBox(wxT("Closing stream..."), wxT("Info"), wxOK);\r
+        // Stop the Stream (not strictly needed as termintating the System will also stop all open Streams):\r
+//        stream.stop();\r
+        // Close the Stream (not strictly needed as terminating the System will also close all open Streams):\r
+//        stream.close();\r
+        // Terminate the System (not strictly needed as the AutoSystem will also take care of this when it\r
+        // goes out of scope):\r
+        sys.terminate();\r
+        wxMessageBox(wxT("Test finished."), wxT(""), wxOK);\r
+    }\r
+    catch (const portaudio::PaException &e)\r
+    {\r
+        estr.Format(wxT("A PortAudio error occured: %s"), e.paErrorText());\r
+        wxMessageBox(estr, wxT("Error"), wxOK);\r
+    }\r
+    catch (const portaudio::PaCppException &e)\r
+    {\r
+        estr.Format(wxT("A PortAudioCpp error occured: %s"), e.what());\r
+        wxMessageBox(estr, wxT("Error"), wxOK);\r
+    }\r
+    catch (const std::exception &e)\r
+    {\r
+        estr.Format(wxT("A generic exception occured: %s"), e.what());\r
+        wxMessageBox(estr, wxT("Error"), wxOK);\r
+    }\r
+    catch (...)\r
+    {\r
+        wxMessageBox(wxT("An unknown exception occured."), wxT("Error"), wxOK);\r
+    }\r
+}\r
diff --git a/fdmdv2/audiostream.h b/fdmdv2/audiostream.h
new file mode 100644 (file)
index 0000000..f3562de
--- /dev/null
@@ -0,0 +1,46 @@
+//============================================================
+// AudioStream.h
+//
+//
+//============================================================
+#include <cmath>
+#include <cassert>
+#include <cstddef>
+#include "portaudiocpp/PortAudioCpp.hxx"
+#include <wx/wx.h>\r
+#include <wx/thread.h>
+#include "libsndfile/include/sndfile.h"\r
+#include "extern/include/portaudio.h"
+#include "extern/include/portaudiocpp/PortAudioCpp.hxx"
+
+#ifndef __AudioStream__
+#define __AudioStream__
+
+const int NUM_SECONDS = 5;
+const double SAMPLE_RATE = 44100.0;
+const int FRAMES_PER_BUFFER = 64;
+const int TABLE_SIZE = 200;
+
+class AudioStream
+{
+public:
+//    AudioStream(int tableSize) : tableSize_(tableSize), leftPhase_(0), rightPhase_(0);
+    AudioStream(int tableSize);
+    ~AudioStream();
+
+    int generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags);
+
+private:
+    float *table_;
+    int tableSize_;
+    int leftPhase_;
+    int rightPhase_;
+
+    void Open();
+
+protected:
+
+private:
+};\r
+
+#endif // __AudioStream__
index 7e6365db35b93a80aad72f3cb3946634371a1bb3..5350737d1bfc1605a7613d971ef34af9da2f060d 100644 (file)
@@ -13,7 +13,7 @@ CurrentFileName        :=
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=wittend\r
-Date                   :=6/12/2012\r
+Date                   :=6/15/2012\r
 CodeLitePath           :="C:\Program Files\CodeLite"\r
 LinkerName             :=g++\r
 ArchiveTool            :=ar rcus\r
@@ -52,7 +52,7 @@ LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch)./libsndfile
 ## User defined environment variables\r
 ##\r
 CodeLiteDir:=C:\Program Files\CodeLite\r
-WXWIN:=C:\bin\wxWidgets-2.9.2\r
+WXWIN:=C:\bin\wxWidgets-2.9.4\r
 PATH:=$(WXWIN)\lib\gcc_dll;$(PATH)\r
 WXCFG:=gcc_dll\mswu\r
 UNIT_TEST_PP_SRC_DIR:=C:\bin\UnitTest++-1.3\r
index ae28ff618595992feb5a970eed41c3c2dc6775c0..b707ed16910b22fddf5320b53484737160fc6f99 100644 (file)
@@ -44,16 +44,18 @@ bool MainApp::OnInit()
 }\r
 \r
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
-// Class MainFrame(wxFrame* parent) : TopFrame(parent)\r
+// Class MainFrame(wxFrame* pa->ent) : TopFrame(pa->ent)\r
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
 MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)\r
 {\r
     m_radioRunning      = false;\r
-//    m_bitmap = bitmap;\r
-    m_sound = NULL;\r
-    m_zoom  = 1.;\r
-    m_SquelchActive = false;\r
-\r
+    m_sound             = NULL;\r
+    m_zoom              = 1.;\r
+    m_SquelchActive     = false;\r
+    if(Pa_Initialize())\r
+    {\r
+        wxMessageBox(wxT("Port Audio failed to initialize"), wxT("Pa_Initialize"), wxOK);\r
+    }\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -68,6 +70,7 @@ MainFrame::~MainFrame()
 //-------------------------------------------------------------------------\r
 void MainFrame::OnCloseFrame(wxCloseEvent& event)\r
 {\r
+    Pa_Terminate();\r
     Destroy();\r
 }\r
 \r
@@ -80,7 +83,7 @@ void MainFrame::OnExitClick(wxCommandEvent& event)
 }\r
 \r
 //-------------------------------------------------------------------------\r
-// OnPaint()\r
+// Onpa->nt()\r
 //-------------------------------------------------------------------------\r
 void MainFrame::OnPaint(wxPaintEvent& WXUNUSED(event))\r
 {\r
@@ -160,7 +163,7 @@ void MainFrame::OnTogBtnTXClick(wxCommandEvent& event)
 //-------------------------------------------------------------------------\r
 void MainFrame::OnTogBtnRxID(wxCommandEvent& event)\r
 {\r
-    wxMessageBox("Got Click!", "OnTogBtnRxID", wxOK);\r
+    wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnRxID"), wxOK);\r
     event.Skip();\r
 }\r
 \r
@@ -169,7 +172,7 @@ void MainFrame::OnTogBtnRxID(wxCommandEvent& event)
 //-------------------------------------------------------------------------\r
 void MainFrame::OnTogBtnTxID(wxCommandEvent& event)\r
 {\r
-    wxMessageBox("Got Click!", "OnTogBtnTxID", wxOK);\r
+    wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnTxID"), wxOK);\r
     event.Skip();\r
 }\r
 \r
@@ -178,7 +181,7 @@ void MainFrame::OnTogBtnTxID(wxCommandEvent& event)
 //-------------------------------------------------------------------------\r
 void MainFrame::OnTogBtnSplitClick(wxCommandEvent& event)\r
 {\r
-    wxMessageBox("Got Click!", "OnTogBtnSplitClick", wxOK);\r
+    wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnSplitClick"), wxOK);\r
     event.Skip();\r
 }\r
 \r
@@ -187,7 +190,7 @@ void MainFrame::OnTogBtnSplitClick(wxCommandEvent& event)
 //-------------------------------------------------------------------------\r
 void MainFrame::OnTogBtnAnalogClick (wxCommandEvent& event)\r
 {\r
-    wxMessageBox("Got Click!", "OnTogBtnAnalogClick", wxOK);\r
+    wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnAnalogClick"), wxOK);\r
     event.Skip();\r
 }\r
 \r
@@ -196,38 +199,71 @@ void MainFrame::OnTogBtnAnalogClick (wxCommandEvent& event)
 //-------------------------------------------------------------------------\r
 void MainFrame::OnTogBtnALCClick(wxCommandEvent& event)\r
 {\r
-    wxMessageBox("Got Click!", "OnTogBtnALCClick", wxOK);\r
+    wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnALCClick"), wxOK);\r
     event.Skip();\r
 }\r
 \r
+//-------------------------------------------------------------------------\r
+// codec2Callback()\r
+//-------------------------------------------------------------------------\r
+static int codec2Callback(\r
+                            const void *inBuffer,\r
+                            void *outBuffer,\r
+                            unsigned long framesPerBuffer,\r
+                            const PaStreamCallbackTimeInfo *outTime,\r
+                            PaStreamCallbackFlags statusFlags,\r
+                            void *userData\r
+                         )\r
+{\r
+    float *out = (float *) outBuffer;\r
+    float *in  = (float *) inBuffer;\r
+    float leftIn;\r
+    float rightIn;\r
+    unsigned int i;\r
+\r
+    if(inBuffer == NULL)\r
+    {\r
+        return 0;\r
+    }\r
+    // Read input buffer, process data, and fill output buffer.\r
+    for(i = 0; i < framesPerBuffer; i++)\r
+    {\r
+        leftIn  = *in++;                            // Get interleaved samples from input buffer.\r
+        rightIn = *in++;\r
+        *out++  = leftIn * rightIn;                 // ring modulation\r
+        *out++  = 0.5f * (leftIn + rightIn);        // mixing\r
+    }\r
+    return paContinue;                              // 0;\r
+}
+\r
 //-------------------------------------------------------------------------\r
 // audioCallback()\r
 //-------------------------------------------------------------------------\r
-static int audioCallback(   const void *inputBuffer,\r
-                            void *outputBuffer,\r
+static int audioCallback(   const void *inBuffer,\r
+                            void *outBuffer,\r
                             unsigned long framesPerBuffer,\r
                             const PaStreamCallbackTimeInfo *outTime,\r
                             PaStreamCallbackFlags statusFlags,\r
                             void *userData\r
                         )\r
 {\r
-    float *out = (float *) outputBuffer;\r
-    float *in  = (float *) inputBuffer;\r
-    float leftInput;\r
-    float rightInput;\r
+    float *out = (float *) outBuffer;\r
+    float *in  = (float *) inBuffer;\r
+    float leftIn;\r
+    float rightIn;\r
     unsigned int i;\r
 \r
-    if(inputBuffer == NULL)\r
+    if(inBuffer == NULL)\r
     {\r
         return 0;\r
     }\r
     // Read input buffer, process data, and fill output buffer.\r
     for(i = 0; i < framesPerBuffer; i++)\r
     {\r
-        leftInput = *in++;                          // Get interleaved samples from input buffer.\r
-        rightInput = *in++;\r
-        *out++ = leftInput * rightInput;            // ring modulation\r
-        *out++ = 0.5f * (leftInput + rightInput);   // mixing\r
+        leftIn  = *in++;                            // Get interleaved samples from input buffer.\r
+        rightIn = *in++;\r
+        *out++  = leftIn * rightIn;                 // ring modulation\r
+        *out++  = 0.5f * (leftIn + rightIn);        // mixing\r
     }\r
     return paContinue;                              // 0;\r
 }
@@ -241,8 +277,8 @@ static int gNumNoInputs = 0;
 static int fuzzCallback(const void *inputBuffer,
                         void *outputBuffer,
                         unsigned long framesPerBuffer,
-                        const PaStreamCallbackTimeInfo* timeInfo,
-                        PaStreamCallbackFlags statusFlags,
+                        const pa->treamCallbackTimeInfo* timeInfo,
+                        pa->treamCallbackFlags statusFlags,
                         void *userData)
 {
     SAMPLE *out = (SAMPLE*)outputBuffer;
@@ -269,7 +305,7 @@ static int fuzzCallback(const void *inputBuffer,
             *out++ = *in++;                 // right - clean
         }
     }
-    return paContinue;
+    return pa->ontinue;
 }
 */\r
 
@@ -278,53 +314,52 @@ static int fuzzCallback(const void *inputBuffer,
 //-------------------------------------------------------------------------\r
 void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)\r
 {\r
-    PortAudioWrap pa;\r
     if(!m_radioRunning)\r
     {\r
         m_radioRunning = true;\r
-        pa = PortAudioWrap();
-        err = pa.init();
+        pa = new PortAudioWrap();
+//        err = pa->init();
 
-        inputDevice = pa.getDefaultInputDevice();                   // default input device
+        inputDevice = pa->getDefaultInputDevice();                   // default input device
         if(inputDevice == paNoDevice)
         {
-            wxMessageBox("Error: No default input device.", "Error", wxOK);\r
+            wxMessageBox(wxT("Error: No default input device."), wxT("Error"), wxOK);\r
             return;\r
         }
-        err = pa.setInputDevice(inputDevice);
-        err = pa.setInputChannelCount(2);                           // stereo input
-        err = pa.setInputSampleFormat(PA_SAMPLE_TYPE);
-        err = pa.setInputLatency(pa.getInputDefaultLowLatency());\r
-        pa.setInputHostApiStreamInfo(NULL);
+        err = pa->setInputDevice(inputDevice);
+        err = pa->setInputChannelCount(2);                           // stereo input
+        err = pa->setInputSampleFormat(PA_SAMPLE_TYPE);
+        err = pa->setInputLatency(pa->getInputDefaultLowLatency());\r
+        pa->setInputHostApiStreamInfo(NULL);
 
-        outputDevice = pa.getDefaultOutputDevice();                 // default output device
+        outputDevice = pa->getDefaultOutputDevice();                 // default output device
         if (outputDevice == paNoDevice)
         {
-            wxMessageBox("Error: No default output device.", "Error", wxOK);\r
+            wxMessageBox(wxT("Error: No default output device."), wxT("Error"), wxOK);\r
             return;\r
         }
-        err = pa.setOutputDevice(outputDevice);
-        err = pa.setOutputChannelCount(2);                           // stereo input
-        err = pa.setOutputSampleFormat(PA_SAMPLE_TYPE);\r
+        err = pa->setOutputDevice(outputDevice);
+        err = pa->setOutputChannelCount(2);                           // stereo input
+        err = pa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
 
-        err = pa.setOutputLatency(pa.getOutputDefaultLowLatency());
-        pa.setOutputHostApiStreamInfo(NULL);
+        err = pa->setOutputLatency(pa->getOutputDefaultLowLatency());
+        pa->setOutputHostApiStreamInfo(NULL);
 
-        err = pa.setFramesPerBuffer(FRAMES_PER_BUFFER);
-        err = pa.setSampleRate(SAMPLE_RATE);
-        err = pa.setStreamFlags(0);
-        err = pa.setCallback(audioCallback);
-        err = pa.streamOpen();
+        err = pa->setFramesPerBuffer(FRAMES_PER_BUFFER);
+        err = pa->setSampleRate(SAMPLE_RATE);
+        err = pa->setStreamFlags(0);
+        err = pa->setCallback(audioCallback);
+        err = pa->streamOpen();
 
         if(err != paNoError)
         {
-            wxMessageBox("Open/Setup error.", "Error", wxOK);\r
+            wxMessageBox(wxT("Open/Setup error."), wxT("Error"), wxOK);\r
             return;\r
         }
-        err = pa.streamStart();
+        err = pa->streamStart();
         if(err != paNoError)
         {
-            wxMessageBox("Stream Start Error.", "Error", wxOK);\r
+            wxMessageBox(wxT("Stream Start Error."), wxT("Error"), wxOK);\r
             return;\r
         }
         m_togBtnOnOff->SetLabel(wxT("Stop"));\r
@@ -332,7 +367,10 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)
     else\r
     {\r
         m_radioRunning = false;\r
-        pa.terminate();
+        pa->stop();\r
+//        pa->abort();\r
+//        delete pa;
+        //pa->terminate();\r
         m_togBtnOnOff->SetLabel(wxT("Start"));\r
     }\r
 }\r
@@ -367,10 +405,10 @@ void MainFrame::OnOpen( wxCommandEvent& event )
     m_sound->Play(openFileDialog.GetPath());\r
 /*\r
     // this can be done with e.g. wxWidgets input streams:\r
-    wxFileInputStream input_stream(openFileDialog.GetPath());\r
+    wxFileInputStream input_stream(openFileDialog.Getpa->h());\r
     if (!input_stream.IsOk())\r
     {\r
-        wxLogError("Cannot open file '%s'.", openFileDialog.GetPath());\r
+        wxLogError("Cannot open file '%s'.", openFileDialog.Getpa->h());\r
         return;\r
     }\r
 */\r
@@ -464,7 +502,7 @@ void MainFrame::OnCutUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnPaste( wxCommandEvent& event )\r
 {\r
-    wxMessageBox("Got Click!", "OnPaste", wxOK);\r
+    wxMessageBox("Got Click!", "Onpa->te", wxOK);\r
     event.Skip();\r
 }\r
 \r
@@ -541,7 +579,7 @@ void MainFrame::OnHelpCheckUpdatesUI( wxUpdateUIEvent& event )
 }\r
 \r
 //-------------------------------------------------------------------------\r
-// OnHelpAbout()\r
+//OnHelpAbout()\r
 //-------------------------------------------------------------------------\r
 void MainFrame::OnHelpAbout( wxCommandEvent& event )\r
 {\r
@@ -616,7 +654,7 @@ void MainFrame::OnSave(wxCommandEvent& WXUNUSED(event))
             wxT("8 bpp color"),\r
             wxT("8 bpp greyscale"),\r
             wxT("8 bpp red"),\r
-            wxT("8 bpp own palette"),\r
+            wxT("8 bpp own pa->ette"),\r
             wxT("24 bpp")\r
         };\r
 \r
index 097914e4ab65e91b82305dba550ee7963045ff75..edcf8c5264c05e554e84b5eebb3241f60714ad8b 100644 (file)
@@ -29,7 +29,8 @@
 //#include "extern/include/portaudiocpp/PortAudioCpp.hxx"
 \r
 #include "topFrame.h"
-#include "codec2.h"
+#include "C:\Users\wittend\Projects\Radio\codec2-dev\src\codec2.h"
+#include "C:\Users\wittend\Projects\Radio\codec2-dev\src\fdmdv.h"
 #include "dlg_about.h"\r
 #include "dlg_audio.h"\r
 #include "dlg_options.h"\r
@@ -84,6 +85,7 @@ class MainFrame : public TopFrame
         bool            m_SquelchActive;\r
         CODEC2          *m_RXCodec2;\r
         CODEC2          *m_TXCodec2;\r
+        PortAudioWrap   *pa;\r
         PaError         err;
         PaDeviceIndex   inputDevice;
         PaDeviceIndex   outputDevice;
diff --git a/fdmdv2/fdmdv2_thread_audio.cpp b/fdmdv2/fdmdv2_thread_audio.cpp
deleted file mode 100644 (file)
index 4d17ea4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#include "fdmdv2_thread_audio.h"
-
-//namespace NSfdmdv2Audio
-//{
-
-    Fdmdv2ThreadAudio::Fdmdv2ThreadAudio()
-    {
-    }
-
-    Fdmdv2ThreadAudio::~Fdmdv2ThreadAudio()
-    {
-    }
-
-    void* Fdmdv2ThreadAudio::Entry()
-    {
-        return NULL;
-    }
-    void Fdmdv2ThreadAudio::OnDelete()
-    {
-    }
-    void Fdmdv2ThreadAudio::OnExit()
-    {
-    }
-    void Fdmdv2ThreadAudio::OnKill()
-    {
-    }
-//    bool Fdmdv2ThreadAudio::TestDestroy()
-//    {
-//    }
-//}
index b319cb16a702b427fc952a96b3e6c8588b96592e..dd8060fabdc87d30d9341dff1da066b246e31109 100644 (file)
@@ -1,8 +1,8 @@
 .PHONY: clean All
 
 All:
-       @echo ----------Building project:[ test_sndfile - Debug ]----------
-       @cd "libsndfile\Projects\w32-mingw" && "mingw32-make.exe"  -j 2 -f "test_sndfile.mk"
+       @echo ----------Building project:[ fdmdv2 - Debug ]----------
+       @"mingw32-make.exe"  -j 2 -f "fdmdv2.mk"
 clean:
-       @echo ----------Cleaning project:[ test_sndfile - Debug ]----------
-       @cd "libsndfile\Projects\w32-mingw" && "mingw32-make.exe"  -j 2 -f "test_sndfile.mk" clean
+       @echo ----------Cleaning project:[ fdmdv2 - Debug ]----------
+       @"mingw32-make.exe"  -j 2 -f "fdmdv2.mk" clean
index bac2f6dc443df54a6ac9c4f9cbfdc35d63e0e21c..ba731ebf3049d6705bc82437e8e7ea240ea5336b 100644 (file)
@@ -2,24 +2,24 @@
 
 PortAudioWrap::PortAudioWrap()
 {
-    stream = NULL;\r
-    userData = NULL;\r
-    samplerate = 0;\r
-    framesPerBuffer = 0;
-    statusFlags = 0;\r
-    streamCallback = NULL;\r
-    streamFinishedCallback = NULL;\r
-    timeInfo = 0;
+    stream                  = NULL;\r
+    userData                = NULL;\r
+    samplerate              = 0;\r
+    framesPerBuffer         = 0;
+    statusFlags             = 0;\r
+    streamCallback          = NULL;\r
+    streamFinishedCallback  = NULL;\r
+    timeInfo                = 0;
 }
 
 PortAudioWrap::~PortAudioWrap()
 {
 }
 
-PaError PortAudioWrap::init()
-{
-    return Pa_Initialize();
-}
+//PaError PortAudioWrap::init()
+//{
+//    return Pa_Initialize();
+//}
 
 PaError PortAudioWrap::streamOpen()\r
 {
@@ -37,15 +37,15 @@ PaError PortAudioWrap::streamOpen()
 
 PaError PortAudioWrap::streamStart()\r
 {
-    return Pa_StartStream(this->stream);
+    return Pa_StartStream(stream);
 }
 
 PaError PortAudioWrap::streamClose()\r
 {
     if(isOpen())
     {
-        PaError rv = Pa_CloseStream(this->stream);
-        this->stream = NULL;
+        PaError rv = Pa_CloseStream(stream);
+//        stream = NULL;
         return rv;
     }
     else
index f7418f83921252b92a0e9f7c5531f15e40f06b51..c7a9b946968cf70a2492651715f35e99fa44d746 100644 (file)
@@ -30,8 +30,8 @@ class PortAudioWrap
         PaStreamCallback                *streamCallback;\r
         PaStreamFinishedCallback        *streamFinishedCallback;\r
         const PaStreamCallbackTimeInfo  *timeInfo;
-        PaDeviceIndex                   inputDevice;
-        PaDeviceIndex                   outputDevice;
+//        PaDeviceIndex                   inputDevice;
+//        PaDeviceIndex                   outputDevice;
 \r
     public:\r
 
@@ -66,7 +66,7 @@ class PortAudioWrap
         void        setOutputHostApiStreamInfo(void *info = NULL);
         PaTime      getOutputDefaultLowLatency();
 \r
-        PaError     init();\r
+//        PaError     init();\r
         PaError     streamStart();\r
         PaError     streamClose();\r
         void        terminate();\r