rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: rlm@8: #include "asim/rrr/service_ids.h" rlm@8: rlm@8: #include "asim/provides/connected_application.h" rlm@8: rlm@8: rlm@8: rlm@8: using namespace std; rlm@8: rlm@8: // ===== service instantiation ===== rlm@8: AUDIOPROCESSORRRR_SERVER_CLASS AUDIOPROCESSORRRR_SERVER_CLASS::instance; rlm@8: rlm@8: // constructor rlm@8: AUDIOPROCESSORRRR_SERVER_CLASS::AUDIOPROCESSORRRR_SERVER_CLASS() : rlm@8: serverStub(new AUDIOPROCESSORRRR_SERVER_STUB_CLASS(this)) rlm@8: { rlm@8: // instantiate stub rlm@8: printf("AUDIOPROCESSORRR init called\n"); rlm@8: outputFile = NULL; rlm@8: } rlm@8: rlm@8: // destructor rlm@8: AUDIOPROCESSORRRR_SERVER_CLASS::~AUDIOPROCESSORRRR_SERVER_CLASS() rlm@8: { rlm@8: Cleanup(); rlm@8: } rlm@8: rlm@8: // init rlm@8: void rlm@8: AUDIOPROCESSORRRR_SERVER_CLASS::Init(PLATFORMS_MODULE p) rlm@8: { rlm@8: parent = p; rlm@8: } rlm@8: rlm@8: // uninit rlm@8: void rlm@8: AUDIOPROCESSORRRR_SERVER_CLASS::Uninit() rlm@8: { rlm@8: Cleanup(); rlm@8: } rlm@8: rlm@8: // cleanup rlm@8: void rlm@8: AUDIOPROCESSORRRR_SERVER_CLASS::Cleanup() rlm@8: { rlm@8: delete serverStub; rlm@8: } rlm@8: rlm@8: rlm@8: // rlm@8: // RRR service methods rlm@8: // rlm@8: rlm@8: void rlm@8: AUDIOPROCESSORRRR_SERVER_CLASS::SendProcessedStream(UINT16 control, UINT16 data) rlm@8: { rlm@8: rlm@8: AudioProcessorControl audioProcessorControl = (AudioProcessorControl) control; rlm@8: switch(control) { rlm@8: case EndOfFile: rlm@8: if(outputFile != NULL) { rlm@8: fflush(outputFile); rlm@8: fclose(outputFile); rlm@8: outputFile = NULL; rlm@8: } else { rlm@8: outputFile = fopen("out_hw.pcm","w"); rlm@8: assert(outputFile); rlm@8: fflush(outputFile); rlm@8: fclose(outputFile); rlm@8: } rlm@8: rlm@8: CONNECTED_APPLICATION_CLASS::EndSimulation(); rlm@8: break; rlm@8: rlm@8: case Data: rlm@8: if(outputFile == NULL) { rlm@8: outputFile = fopen("out_hw.pcm","w"); rlm@8: assert(outputFile); rlm@8: } rlm@8: rlm@8: CONNECTED_APPLICATION_CLASS::UpdateSemaphore(); rlm@8: fwrite(&data, 2,1 , outputFile); rlm@8: break; rlm@8: } rlm@8: rlm@8: } rlm@8: