+ if (!m_frame->m_notebook->GetCurrentPage()) return;
+ wxMediaCtrl* m_mediactrl = ((MyNotebookPage*)m_frame->m_notebook->GetCurrentPage())->m_mediactrl;
+ wxSlider* m_slider = ((MyNotebookPage*)m_frame->m_notebook->GetCurrentPage())->m_slider;
+ if (!m_mediactrl) return;
+
+ long lPosition = (long)( m_mediactrl->Tell() / 1000 );
+ m_slider->SetValue(lPosition);
+
+#if wxUSE_STATUSBAR
+ m_frame->SetStatusText(wxString::Format(
+ _T("%s Pos:%u State:%s Loops:%i"),
+ m_frame->m_basestatus.c_str(),
+ (unsigned int)lPosition,
+ wxGetMediaStateText(m_mediactrl->GetState()),
+ ((MyNotebookPage*)m_frame->m_notebook->GetCurrentPage())->m_nLoops
+
+ )
+ );
+#endif
+
+}
+
+
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// MyNotebookPage
+//
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+// ----------------------------------------------------------------------------
+// MyNotebookPage Constructor
+//
+// Creates a media control and slider and adds it to this panel,
+// along with some sizers for positioning
+// ----------------------------------------------------------------------------
+
+MyNotebookPage::MyNotebookPage(wxNotebook* theBook) :
+ wxPanel(theBook, wxID_ANY), m_nLoops(0), m_bLoop(false)
+{
+ //
+ // Create and attach the first/main sizer
+ //
+ wxBoxSizer* vertsizer = new wxBoxSizer(wxVERTICAL);
+ this->SetSizer(vertsizer);
+ this->SetAutoLayout(true);
+
+ //
+ // Create our media control
+ //
+ m_mediactrl = new wxMediaCtrl();
+
+ // Make sure creation was successful
+ bool bOK = m_mediactrl->Create(this, wxID_MEDIACTRL);
+ wxASSERT_MSG(bOK, wxT("Could not create media control!"));
+ wxUnusedVar(bOK);
+
+ vertsizer->Add(m_mediactrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ //
+ // Create our slider
+ //
+ m_slider = new wxSlider(this, wxID_SLIDER, 0, //init
+ 0, //start
+ 0, //end
+ wxDefaultPosition, wxDefaultSize,
+ wxSL_HORIZONTAL );
+ vertsizer->Add(m_slider, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND , 5);
+
+
+ //
+ // Create the second sizer which will position things
+ // vertically -
+ //
+ // -------Menu----------
+ // [m_mediactrl]
+ //
+ // [m_slider]
+ //
+ wxBoxSizer* horzsizer = new wxBoxSizer(wxHORIZONTAL);
+ vertsizer->Add(horzsizer, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ //
+ // Slider events
+ //
+ this->Connect(wxID_SLIDER, wxEVT_COMMAND_SLIDER_UPDATED,
+ wxCommandEventHandler(MyNotebookPage::OnSeek));
+
+ //
+ // Media Control events
+ //
+ this->Connect(wxID_MEDIACTRL, wxEVT_MEDIA_FINISHED,
+ wxMediaEventHandler(MyNotebookPage::OnMediaFinished));