void start_process() {
#ifdef USE_OPENCL
  LOGINFO("Starting sound using OpenCL!");
#else
  LOGINFO("Starting sound using CPU!");
#endif

  OPENSL_STREAM  *p;
  int i;
  float  outbuffer[VECSAMPS_STEREO];
  p = android_OpenAudioDevice(SR,0,2,BUFFERFRAMES);
  if(p == NULL) return;

  on = 1;

  while(on) {
	  calcBuffer(outbuffer, VECSAMPS_STEREO);
#ifdef MEASURE_TIME
	  if (tCount < MEASURE_TIME) {
		  tDeltaSum += (t2 - t1) / MEASURE_TIME;
		  tCount++;
	  } else {
		  print_exec_time(tDeltaSum, "gen-buffer");
		  tDeltaSum = 0;
		  tCount = 0;
	  }
#endif
	  android_AudioOut(p,outbuffer,VECSAMPS_STEREO);
  }
  android_CloseAudioDevice(p);
}
예제 #2
0
void Power_Module::run(){
  totalTime = GetSimTime();
  channelWirePower=0;
  channelClkPower=0;
  channelDFFPower=0;
  channelLeakPower=0;
  inputReadPower=0;
  inputWritePower=0;
  inputLeakagePower=0;
  switchPower=0;
  switchPowerCtrl=0;
  switchPowerLeak=0;
  outputPower=0;
  outputPowerClk=0;
  outputCtrlPower=0;
  channelArea=0;
  switchArea=0;
  inputArea=0;
  outputArea=0;
  maxInputPort = 0;
  maxOutputPort = 0;

  vector<FlitChannel *> inject = net->GetInject();
  vector<FlitChannel *> eject = net->GetEject();
  vector<FlitChannel *> chan = net->GetChannels();
  
  for(int i = 0; i<net->NumNodes(); i++){
    calcChannel(inject[i]);
  }

  for(int i = 0; i<net->NumNodes(); i++){
    calcChannel(eject[i]);
  }

  for(int i = 0; i<net->NumChannels();i++){
    calcChannel(chan[i]);
  }

  vector<Router*> routers = net->GetRouters();
  for(size_t i = 0; i < routers.size(); i++){
    IQRouter* temp = dynamic_cast<IQRouter*>(routers[i]);
    const BufferMonitor * bm = temp->GetBufferMonitor();
    calcBuffer(bm);
    const SwitchMonitor * sm = temp->GetSwitchMonitor();
    calcSwitch(sm);
  }
  
  double totalpower =  channelWirePower+channelClkPower+channelDFFPower+channelLeakPower+ inputReadPower+inputWritePower+inputLeakagePower+ switchPower+switchPowerCtrl+switchPowerLeak+outputPower+outputPowerClk+outputCtrlPower;
  double totalarea =  channelArea+switchArea+inputArea+outputArea;
  cout<< "-----------------------------------------\n" ;
  cout<< "- OCN Power Summary\n" ;
  cout<< "- Completion Time:         "<<totalTime <<"\n" ;
  cout<< "- Flit Widths:            "<<channel_width<<"\n" ;
  cout<< "- Channel Wire Power:      "<<channelWirePower <<"\n" ;
  cout<< "- Channel Clock Power:     "<<channelClkPower <<"\n" ;
  cout<< "- Channel Retiming Power:  "<<channelDFFPower <<"\n" ;
  cout<< "- Channel Leakage Power:   "<<channelLeakPower <<"\n" ;
  
  cout<< "- Input Read Power:        "<<inputReadPower <<"\n" ;
  cout<< "- Input Write Power:       "<<inputWritePower <<"\n" ;
  cout<< "- Input Leakage Power:     "<<inputLeakagePower <<"\n" ;
  
  cout<< "- Switch Power:            "<<switchPower <<"\n" ;
  cout<< "- Switch Control Power:    "<<switchPowerCtrl <<"\n" ;
  cout<< "- Switch Leakage Power:    "<<switchPowerLeak <<"\n" ;
  
  cout<< "- Output DFF Power:        "<<outputPower <<"\n" ;
  cout<< "- Output Clk Power:        "<<outputPowerClk <<"\n" ;
  cout<< "- Output Control Power:    "<<outputCtrlPower <<"\n" ;
  cout<< "- Total Power:             "<<totalpower <<"\n";
  cout<< "-----------------------------------------\n" ;
  cout<< "\n" ;
  cout<< "-----------------------------------------\n" ;
  cout<< "- OCN Area Summary\n" ;
  cout<< "- Channel Area:  "<<channelArea<<"\n" ;
  cout<< "- Switch  Area:  "<<switchArea<<"\n" ;
  cout<< "- Input  Area:   "<<inputArea<<"\n" ;
  cout<< "- Output  Area:  "<<outputArea<<"\n" ;
  cout<< "- Total Area:    "<<totalarea<<endl;
  cout<< "-----------------------------------------\n" ;




}