Mercurial > pygar
annotate AudioProcessorRRR.cpp @ 16:7e1510b47336 pygar svn.17
[svn r17] added rest of items for core
author | punk |
---|---|
date | Tue, 27 Apr 2010 22:54:50 -0400 |
parents | |
children |
rev | line source |
---|---|
punk@16 | 1 #include <cstdio> |
punk@16 | 2 #include <cstdlib> |
punk@16 | 3 #include <iostream> |
punk@16 | 4 #include <iomanip> |
punk@16 | 5 #include <stdio.h> |
punk@16 | 6 #include <sys/stat.h> |
punk@16 | 7 |
punk@16 | 8 #include "asim/rrr/service_ids.h" |
punk@16 | 9 |
punk@16 | 10 #include "asim/provides/connected_application.h" |
punk@16 | 11 |
punk@16 | 12 |
punk@16 | 13 |
punk@16 | 14 using namespace std; |
punk@16 | 15 |
punk@16 | 16 // ===== service instantiation ===== |
punk@16 | 17 AUDIOPROCESSORRRR_SERVER_CLASS AUDIOPROCESSORRRR_SERVER_CLASS::instance; |
punk@16 | 18 |
punk@16 | 19 // constructor |
punk@16 | 20 AUDIOPROCESSORRRR_SERVER_CLASS::AUDIOPROCESSORRRR_SERVER_CLASS() : |
punk@16 | 21 serverStub(new AUDIOPROCESSORRRR_SERVER_STUB_CLASS(this)) |
punk@16 | 22 { |
punk@16 | 23 // instantiate stub |
punk@16 | 24 printf("AUDIOPROCESSORRR init called\n"); |
punk@16 | 25 outputFile = NULL; |
punk@16 | 26 } |
punk@16 | 27 |
punk@16 | 28 // destructor |
punk@16 | 29 AUDIOPROCESSORRRR_SERVER_CLASS::~AUDIOPROCESSORRRR_SERVER_CLASS() |
punk@16 | 30 { |
punk@16 | 31 Cleanup(); |
punk@16 | 32 } |
punk@16 | 33 |
punk@16 | 34 // init |
punk@16 | 35 void |
punk@16 | 36 AUDIOPROCESSORRRR_SERVER_CLASS::Init(PLATFORMS_MODULE p) |
punk@16 | 37 { |
punk@16 | 38 parent = p; |
punk@16 | 39 } |
punk@16 | 40 |
punk@16 | 41 // uninit |
punk@16 | 42 void |
punk@16 | 43 AUDIOPROCESSORRRR_SERVER_CLASS::Uninit() |
punk@16 | 44 { |
punk@16 | 45 Cleanup(); |
punk@16 | 46 } |
punk@16 | 47 |
punk@16 | 48 // cleanup |
punk@16 | 49 void |
punk@16 | 50 AUDIOPROCESSORRRR_SERVER_CLASS::Cleanup() |
punk@16 | 51 { |
punk@16 | 52 delete serverStub; |
punk@16 | 53 } |
punk@16 | 54 |
punk@16 | 55 |
punk@16 | 56 // |
punk@16 | 57 // RRR service methods |
punk@16 | 58 // |
punk@16 | 59 |
punk@16 | 60 void |
punk@16 | 61 AUDIOPROCESSORRRR_SERVER_CLASS::SendProcessedStream(UINT16 control, UINT16 data) |
punk@16 | 62 { |
punk@16 | 63 |
punk@16 | 64 AudioProcessorControl audioProcessorControl = (AudioProcessorControl) control; |
punk@16 | 65 switch(control) { |
punk@16 | 66 case EndOfFile: |
punk@16 | 67 if(outputFile != NULL) { |
punk@16 | 68 fflush(outputFile); |
punk@16 | 69 fclose(outputFile); |
punk@16 | 70 outputFile = NULL; |
punk@16 | 71 } else { |
punk@16 | 72 outputFile = fopen("out_hw.pcm","w"); |
punk@16 | 73 assert(outputFile); |
punk@16 | 74 fflush(outputFile); |
punk@16 | 75 fclose(outputFile); |
punk@16 | 76 } |
punk@16 | 77 |
punk@16 | 78 CONNECTED_APPLICATION_CLASS::EndSimulation(); |
punk@16 | 79 break; |
punk@16 | 80 |
punk@16 | 81 case Data: |
punk@16 | 82 if(outputFile == NULL) { |
punk@16 | 83 outputFile = fopen("out_hw.pcm","w"); |
punk@16 | 84 assert(outputFile); |
punk@16 | 85 } |
punk@16 | 86 |
punk@16 | 87 CONNECTED_APPLICATION_CLASS::UpdateSemaphore(); |
punk@16 | 88 fwrite(&data, 2,1 , outputFile); |
punk@16 | 89 break; |
punk@16 | 90 } |
punk@16 | 91 |
punk@16 | 92 } |
punk@16 | 93 |