X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dea7e44a76e4e886f2bc60b0e82322a71b1f1f4f..a685dd314cc5daeb1492a4a57f475df91d6cd126:/contrib/samples/mmedia/mmbman.cpp diff --git a/contrib/samples/mmedia/mmbman.cpp b/contrib/samples/mmedia/mmbman.cpp index de23245548..3014ef2a1a 100644 --- a/contrib/samples/mmedia/mmbman.cpp +++ b/contrib/samples/mmedia/mmbman.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ - #pragma implementation "mmbman.cpp" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -72,29 +68,29 @@ class MMBoardSoundFile: public MMBoardFile { public: MMBoardSoundFile(const wxString& filename); ~MMBoardSoundFile(); - + bool NeedWindow(); - + void SetWindow(wxWindow *window); - + void Play(); void Pause(); void Resume(); void Stop(); - + MMBoardTime GetPosition(); MMBoardTime GetLength(); void SetPosition(MMBoardTime btime); - + bool IsStopped(); bool IsPaused(); - + wxString GetStringType(); wxString GetStringInformation(); - + protected: wxSoundFileStream *GetDecoder(); - + wxSoundStream *m_output_stream; wxInputStream *m_input_stream; wxSoundFileStream *m_file_stream; @@ -107,26 +103,26 @@ class MMBoardVideoFile: public MMBoardFile { public: MMBoardVideoFile(const wxString& filename); ~MMBoardVideoFile(); - + bool NeedWindow(); - + void SetWindow(wxWindow *window); - + void Play(); void Pause(); void Resume(); void Stop(); - + MMBoardTime GetPosition(); MMBoardTime GetLength(); void SetPosition(MMBoardTime btime); - + bool IsStopped(); bool IsPaused(); - + wxString GetStringType(); wxString GetStringInformation(); - + protected: wxWindow *m_output_window; wxVideoBaseDriver *m_video_driver; @@ -148,14 +144,14 @@ MMBoardSoundFile::MMBoardSoundFile(const wxString& filename) { m_input_stream = new wxFileInputStream(filename); m_output_stream = MMBoardManager::OpenSoundStream(); - + m_file_stream = GetDecoder(); - + if (!m_file_stream) { SetError(MMBoard_UnknownFile); return; } - + // Compute length wxUint32 length, seconds; @@ -177,25 +173,25 @@ MMBoardSoundFile::~MMBoardSoundFile() wxSoundFileStream *MMBoardSoundFile::GetDecoder() { wxSoundFileStream *f_stream; - + // First, we try a Wave decoder f_stream = new wxSoundWave(*m_input_stream, *m_output_stream); m_file_type = MMBoard_WAVE; if (f_stream->CanRead()) return f_stream; delete f_stream; - + // Then, a AIFF decoder f_stream = new wxSoundAiff(*m_input_stream, *m_output_stream); m_file_type = MMBoard_AIFF; if (f_stream->CanRead()) return f_stream; delete f_stream; - + m_file_type = MMBoard_UNKNOWNTYPE; - + // TODO: automate - + return NULL; } @@ -218,17 +214,17 @@ MMBoardTime MMBoardSoundFile::GetPosition() { wxUint32 length, seconds; MMBoardTime file_time; - + file_time.seconds = file_time.minutes = file_time.hours = 0; if (m_file_stream->IsStopped()) return file_time; - + length = m_file_stream->GetPosition(); seconds = m_file_stream->GetSoundFormat().GetTimeFromBytes(length); file_time.seconds = seconds % 60; file_time.minutes = (seconds / 60) % 60; file_time.hours = seconds / 3600; - + return file_time; } @@ -302,14 +298,14 @@ wxString MMBoardSoundFile::GetStringInformation() { wxString info; wxSoundFormatBase *format; - + format = &(m_file_stream->GetSoundFormat()); - + info = wxT("Data encoding: "); switch (format->GetType()) { case wxSOUND_PCM: { wxSoundFormatPcm *pcm_format = (wxSoundFormatPcm *)format; - + info += wxString::Format(wxT("PCM %s %s\n"), pcm_format->Signed() ? wxT("signed") : wxT("unsigned"), pcm_format->GetOrder() == wxLITTLE_ENDIAN ? wxT("little endian") : wxT("big endian")); @@ -354,14 +350,15 @@ wxString MMBoardSoundFile::GetStringInformation() MMBoardVideoFile::MMBoardVideoFile(const wxString& filename) { m_output_window = NULL; - -#if defined(__UNIX__) + +#if defined(__UNIX__) && !defined(__CYGWIN__) m_video_driver = new wxVideoXANIM(filename); -#elif defined(__WINDOWS__) && !defined(__MINGW32__) && !defined(__WATCOMC__) +#elif defined(__WINDOWS__) && !defined(__MINGW32__) && !defined(__WATCOMC__) && !defined(__CYGWIN__) // versions of Open Watcom and MinGW tested against this source does not // deliver "digitalv.h" required in this feature m_video_driver = new wxVideoWindows(filename); #else + wxUnusedVar(filename); m_video_driver = NULL; SetError(MMBoard_UnknownFile); #endif @@ -425,7 +422,7 @@ MMBoardTime MMBoardVideoFile::GetLength() int frameTime; frameTime = (int)( m_video_driver->GetNbFrames() / m_video_driver->GetFrameRate()); - + btime.seconds = frameTime % 60; btime.minutes = (frameTime / 60) % 60; btime.hours = frameTime / 3600; @@ -509,7 +506,10 @@ DECLARE_APP(MMBoardApp) wxSoundStream *MMBoardManager::OpenSoundStream() { -#ifdef __UNIX__ +#ifdef __WIN32__ + if ((wxGetApp().m_caps & MM_SOUND_WIN) != 0) + return new wxSoundStreamWin(); +#elif __UNIX__ if ((wxGetApp().m_caps & MM_SOUND_ESD) != 0) return new wxSoundStreamESD(); @@ -517,11 +517,6 @@ wxSoundStream *MMBoardManager::OpenSoundStream() return new wxSoundStreamOSS(); #endif -#ifdef __WIN32__ - if ((wxGetApp().m_caps & MM_SOUND_WIN) != 0) - return new wxSoundStreamWin(); -#endif - wxMessageBox(_T("You are trying to open a multimedia but you have not devices"), _T("Error"), wxOK | wxICON_ERROR, NULL); return NULL;