void QTapeView::openTape(const QString &sFileName) { LPCTSTR lpszFile = qPrintable(sFileName); m_hTapeWavPcmFile = WavPcmFile_Open(lpszFile); if (m_hTapeWavPcmFile == INVALID_HANDLE_VALUE) return; //TODO: Report about a bad WAV file m_sTapeFile = sFileName; m_okTapeInserted = true; m_okTapeRecording = false; m_buttonPlay->setEnabled(true); m_buttonPlay->setText(_T("Play")); m_buttonRewind->setEnabled(true); m_labelFile->setText(lpszFile); this->updatePosition(); DWORD wavLength = WavPcmFile_GetLength((HWAVPCMFILE)m_hTapeWavPcmFile); int wavFreq = WavPcmFile_GetFrequency((HWAVPCMFILE)m_hTapeWavPcmFile); double wavLengthSeconds = double(wavLength) / wavFreq; TCHAR buffer[64]; _sntprintf(buffer, 64, _T("%d:%02d.%02d, %d Hz"), int(wavLengthSeconds) / 60, int(wavLengthSeconds) % 60, int(wavLengthSeconds * 100) % 100, wavFreq); m_labelTotal->setText(buffer); m_buttonOpen->setText(_T("Close WAV")); m_buttonSave->setEnabled(false); }
void TapeView_OpenTape(LPCTSTR lpszFile) { m_hTapeWavPcmFile = WavPcmFile_Open(lpszFile); if (m_hTapeWavPcmFile == INVALID_HANDLE_VALUE) return; //TODO: Report about a bad WAV file _tcscpy_s(m_szTapeFile, MAX_PATH, lpszFile); m_okTapeInserted = TRUE; m_okTapeRecording = FALSE; EnableWindow(m_hwndTapePlay, TRUE); SetWindowText(m_hwndTapePlay, _T("Play")); EnableWindow(m_hwndTapeRewind, TRUE); SetWindowText(m_hwndTapeFile, lpszFile); TapeView_UpdatePosition(); TapeView_ClearGraph(); DWORD wavLength = WavPcmFile_GetLength(m_hTapeWavPcmFile); int wavFreq = WavPcmFile_GetFrequency(m_hTapeWavPcmFile); double wavLengthSeconds = double(wavLength) / wavFreq; TCHAR buffer[64]; wsprintf(buffer, _T("%d:%02d.%02d, %d Hz"), int(wavLengthSeconds) / 60, int(wavLengthSeconds) % 60, int(wavLengthSeconds * 100) % 100, wavFreq); SetWindowText(m_hwndTapeTotal, buffer); SetWindowText(m_hwndTapeOpen, _T("Close WAV")); EnableWindow(m_hwndTapeSave, FALSE); }