예제 #1
0
OsStatus MpodBufferRecorder::disableDevice()
{
   assert(isEnabled());

   if (mpTickerTimer != NULL)
   {
      mpTickerTimer->stop(TRUE);
      delete mpTickerTimer;
      mpTickerTimer = NULL;
   }

   if (mpBuffer != NULL)
   {
#ifdef FINAL_RECORDED_DATA_WRITE // [
      OsDateTime now;
      OsDateTime::getCurTime(now);
      char fileName[1024];

      snprintf(fileName,
               1024, "MpodBufferRecorder-%4d.%02d.%02d.%02d-%02d-%02d.%03d.s16",
               now.getYear(), now.getMonth(), now.getDay(),
               now.getHour(), now.getMinute(), now.getSecond(),
               now.getMicrosecond()/1000);

      OsFile::openAndWrite(fileName,
                           (char*)mpBuffer,
                           mBufferEnd*sizeof(MpAudioSample));
#endif // FINAL_RECORDED_DATA_WRITE ]

      delete[] mpBuffer;
      mpBuffer = NULL;
      mBufferLength = 0;
      mBufferEnd = 0;
   }

   mIsEnabled = FALSE;

   return OS_SUCCESS;
}