UINT CALLBACK LogThread(void* param) { TCHAR fileName[MAX_PATH]; LogPath(fileName, _T("log")); while ( m_bLoggerRunning || (m_logQueue.size() > 0) ) { if ( m_logQueue.size() > 0 ) { SYSTEMTIME systemTime; GetLocalTime(&systemTime); WIN32_FILE_ATTRIBUTE_DATA fileInformation; GetFileAttributesEx(fileName, GetFileExInfoStandard, &fileInformation); if(logFileParsed != systemTime.wDay || fileInformation.nFileSizeLow > 10485760) { LogRotate(); logFileParsed=systemTime.wDay; LogPath(fileName, _T("log")); } CAutoLock lock(&m_logFileLock); FILE* fp = _tfopen(fileName, _T("a+")); if (fp!=NULL) { SYSTEMTIME systemTime; GetLocalTime(&systemTime); wstring line = GetLogLine(); while (!line.empty()) { fwprintf_s(fp, L"%s", line.c_str()); line = GetLogLine(); } fclose(fp); } else //discard data { wstring line = GetLogLine(); while (!line.empty()) { line = GetLogLine(); } } } if (m_bLoggerRunning) { m_EndLoggingEvent.Wait(1000); //Sleep for 1000ms, unless thread is ending } else { Sleep(1); } } _endthreadex(0); return 0; }
AudioRendererSettings::AudioRendererSettings() : CUnknown(_T("MPAR_Settings"), NULL), m_bLogSampleTimes(false), m_bLogDebug(false), m_bHWBasedRefClock(true), m_bEnableSyncAdjustment(true), m_bUseWASAPI(true), m_bWASAPIUseEventMode(true), m_bUseTimeStretching(false), m_lAC3Encoding(0), m_bQuality_USE_QUICKSEEK(false), m_bQuality_USE_AA_FILTER(false), m_lQuality_AA_FILTER_LENGTH(32), m_lQuality_SEQUENCE_MS(82), m_lQuality_SEEKWINDOW_MS(28), m_lQuality_OVERLAP_MS(28), m_hnsPeriod(0), m_AC3bitrate(DEFAULT_AC3_BITRATE), m_dMaxBias(1.1), m_dMinBias(0.9), m_lAudioDelay(0), m_WASAPIShareMode(AUDCLNT_SHAREMODE_EXCLUSIVE), m_wWASAPIPreferredDeviceId(NULL), m_nForceSamplingRate(0), m_nForceBitDepth(0), m_nResamplingQuality(4), m_lSpeakerCount(2), m_lSpeakerConfig(SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT), m_bForceChannelMixing(false), m_bReleaseDeviceOnStop(false), m_bExpandMonoToStereo(true) { LogRotate(); Log("MP Audio Renderer - v1.0.3"); LoadSettingsFromRegistry(); }