annotate modules/bluespec/Pygar/core/AudioCoreRRR.cpp @ 22:0cfbb1e2de22 pygar svn.23

[svn r23] whoohoo! it Compiles (note with commented out stuff)
author punk
date Wed, 28 Apr 2010 00:40:15 -0400
parents a1833d9f6e3d
children 90197e3375e2
rev   line source
punk@13 1 #include <cstdio>
punk@13 2 #include <cstdlib>
punk@13 3 #include <iostream>
punk@13 4 #include <iomanip>
punk@13 5 #include <stdio.h>
punk@13 6 #include <sys/stat.h>
punk@13 7
punk@13 8 #include "asim/rrr/service_ids.h"
punk@13 9
punk@13 10 #include "asim/provides/connected_application.h"
punk@13 11
punk@13 12 using namespace std;
punk@13 13
punk@13 14 // ===== service instantiation =====
punk@13 15 AUDIOCORERRR_SERVER_CLASS AUDIOCORERRR_SERVER_CLASS::instance;
punk@13 16
punk@13 17 // constructor
punk@13 18 AUDIOCORERRR_SERVER_CLASS::AUDIOCORERRR_SERVER_CLASS() :
punk@15 19 serverStub(new AUDIOCORERRR_SERVER_STUB_CLASS(this))
punk@13 20 {
punk@13 21 // instantiate stub
punk@13 22 printf("AUDIOCORERRR init called\n");
punk@13 23 outputFile = NULL;
punk@13 24 memory = NULL;
punk@13 25 fflush(stdout);
punk@13 26 }
punk@13 27
punk@13 28 // destructor
punk@13 29 AUDIOCORERRR_SERVER_CLASS::~AUDIOCORERRR_SERVER_CLASS()
punk@13 30 {
punk@13 31 Cleanup();
punk@13 32 }
punk@13 33
punk@13 34 // init
punk@13 35 void
punk@13 36 AUDIOCORERRR_SERVER_CLASS::Init(PLATFORMS_MODULE p)
punk@13 37 {
punk@13 38 parent = p;
punk@13 39 }
punk@13 40
punk@13 41 // uninit
punk@13 42 void
punk@13 43 AUDIOCORERRR_SERVER_CLASS::Uninit()
punk@13 44 {
punk@13 45 Cleanup();
punk@13 46 }
punk@13 47
punk@13 48 // cleanup
punk@13 49 void
punk@13 50 AUDIOCORERRR_SERVER_CLASS::Cleanup()
punk@13 51 {
punk@13 52 delete serverStub;
punk@13 53 }
punk@13 54
punk@13 55
punk@13 56 //
punk@13 57 // RRR service methods
punk@13 58 //
punk@13 59
punk@13 60 UINT32
punk@13 61 AUDIOCORERRR_SERVER_CLASS::MemoryRequestLoad (UINT32 address)
punk@13 62 {
punk@13 63 UINT32 returnVal;
punk@13 64
punk@13 65 if(memory == NULL) {
punk@13 66 memory = new FUNCP_SIMULATED_MEMORY_CLASS();
punk@13 67 }
punk@13 68
punk@13 69
punk@13 70 memory->Read(0,(UINT64) address, sizeof(UINT32), &returnVal);
punk@13 71 return returnVal;
punk@13 72 }
punk@13 73
punk@13 74 void
punk@13 75 AUDIOCORERRR_SERVER_CLASS::MemoryRequestStore (UINT32 address, UINT32 data)
punk@13 76 {
punk@13 77 if(memory == NULL) {
punk@13 78 memory = new FUNCP_SIMULATED_MEMORY_CLASS();
punk@13 79 }
punk@13 80
punk@13 81 memory->Write(0,(UINT64) address, sizeof(UINT32), &data);
punk@22 82 }
punk@13 83
punk@13 84 void
punk@13 85
punk@13 86 AUDIOCORERRR_SERVER_CLASS::SendProcessedStream(UINT16 control, UINT16 data)
punk@13 87 {
punk@13 88
punk@13 89 AudioProcessorControl audioProcessorControl = (AudioProcessorControl) control;
punk@13 90 switch(control) {
punk@13 91 case EndOfFile:
punk@13 92 if(outputFile != NULL) {
punk@13 93 fflush(outputFile);
punk@13 94 fclose(outputFile);
punk@13 95 outputFile = NULL;
punk@13 96 } else {
punk@13 97 outputFile = fopen("out_hw.pcm","w");
punk@13 98 assert(outputFile);
punk@13 99 fflush(outputFile);
punk@13 100 fclose(outputFile);
punk@13 101 }
punk@13 102
punk@13 103 // Long term this should be in the data portion. But until I have code running, keep it here.
punk@13 104 CONNECTED_APPLICATION_CLASS::EndSimulation();
punk@13 105 break;
punk@13 106
punk@13 107 case Data:
punk@13 108 if(outputFile == NULL) {
punk@13 109 outputFile = fopen("out_hw.pcm","w");
punk@13 110 assert(outputFile);
punk@13 111 }
punk@13 112
punk@13 113 CONNECTED_APPLICATION_CLASS::UpdateSemaphore();
punk@13 114 fwrite(&data, 2,1 , outputFile);
punk@13 115 break;
punk@13 116 }
punk@13 117 }