view modules/bluespec/Pygar/core/AudioCoreSystem.h @ 75:a15cc186e07d pygar svn.76

[svn r76] should be fully parameterized for however many cores we want (not fully tested)
author punk
date Wed, 12 May 2010 03:14:53 -0400
parents 0cfbb1e2de22
children
line wrap: on
line source
1 //
2 // INTEL CONFIDENTIAL
3 // Copyright (c) 2008 Intel Corp. Recipient is granted a non-sublicensable
4 // copyright license under Intel copyrights to copy and distribute this code
5 // internally only. This code is provided "AS IS" with no support and with no
6 // warranties of any kind, including warranties of MERCHANTABILITY,
7 // FITNESS FOR ANY PARTICULAR PURPOSE or INTELLECTUAL PROPERTY INFRINGEMENT.
8 // By making any use of this code, Recipient agrees that no other licenses
9 // to any Intel patents, trade secrets, copyrights or other intellectual
10 // property rights are granted herein, and no other licenses shall arise by
11 // estoppel, implication or by operation of law. Recipient accepts all risks
12 // of use.
13 //
15 // possibly use include paths to hide existing modules?
17 #ifndef __AUDIO_CORE_CONNECTED_APPLICATION__
18 #define __AUDIO_CORE_CONNECTED_APPLICATION__
20 #include <stdio.h>
21 #include <pthread.h>
22 #include <semaphore.h>
24 #include "asim/provides/virtual_platform.h"
26 #include "asim/rrr/client_stub_AUDIOCORERRR.h"
28 typedef enum {
29 EndOfFile = 0,
30 Data = 1
31 } AudioProcessorControl;
34 typedef class CONNECTED_APPLICATION_CLASS* CONNECTED_APPLICATION;
35 class CONNECTED_APPLICATION_CLASS : public PLATFORMS_MODULE_CLASS
36 {
37 private:
38 AUDIOCORERRR_CLIENT_STUB clientStub;
39 static sem_t throttle;
40 static pthread_mutex_t lock;
41 static pthread_cond_t cond;
42 static bool areAllFilesComplete(int numVoices, bool isFini[]);
44 public:
45 CONNECTED_APPLICATION_CLASS(VIRTUAL_PLATFORM vp);
46 ~CONNECTED_APPLICATION_CLASS();
47 static void EndSimulation();
48 static void UpdateSemaphore();
50 // init
51 void Init();
53 // main
54 void Main();
55 };
57 #endif