X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ce7b001ca6e63ebc9e455900410c7ab628e3c98e..f5ef4d69b7fd4fb89203cd3cf9dd1e42fda7831f:/src/unix/mediactrl.cpp diff --git a/src/unix/mediactrl.cpp b/src/unix/mediactrl.cpp index d902f72b2b..61fdb89d21 100644 --- a/src/unix/mediactrl.cpp +++ b/src/unix/mediactrl.cpp @@ -38,7 +38,8 @@ #ifdef __WXGTK__ #include -# include // for GDK_WINDOW_XWINDOW + #include + #include "wx/gtk/private/gtk2-compat.h" #endif //----------------------------------------------------------------------------- @@ -88,12 +89,12 @@ //============================================================================= //----------------------------------------------------------------------------- -// GStreamer (most version compatability) macros +// GStreamer (most version compatibility) macros //----------------------------------------------------------------------------- // In 0.9 there was a HUGE change to GstQuery and the // gst_element_query function changed dramatically and split off -// into two seperate ones +// into two separate ones #if GST_VERSION_MAJOR == 0 && GST_VERSION_MINOR <= 8 # define wxGst_element_query_duration(e, f, p) \ gst_element_query(e, GST_QUERY_TOTAL, f, p) @@ -160,6 +161,10 @@ public: virtual bool Load(const wxString& fileName); virtual bool Load(const wxURI& location); + virtual bool Load(const wxURI& location, + const wxURI& proxy) + { return wxMediaBackendCommonBase::Load(location, proxy); } + virtual wxMediaState GetState(); @@ -202,14 +207,14 @@ public: friend class wxGStreamerMediaEventHandler; friend class wxGStreamerLoadWaitTimer; - DECLARE_DYNAMIC_CLASS(wxGStreamerMediaBackend); + DECLARE_DYNAMIC_CLASS(wxGStreamerMediaBackend) }; //----------------------------------------------------------------------------- // wxGStreamerMediaEventHandler // // OK, this will take an explanation - basically gstreamer callbacks -// are issued in a seperate thread, and in this thread we may not set +// are issued in a separate thread, and in this thread we may not set // the state of the playbin, so we need to send a wx event in that // callback so that we set the state of the media and other stuff // like GUI calls. @@ -258,9 +263,9 @@ static gboolean gtk_window_expose_callback(GtkWidget *widget, if(event->count > 0) return FALSE; - GdkWindow *window = widget->window; + GdkWindow* window = gtk_widget_get_window(widget); - // I've seen this reccommended somewhere... + // I've seen this recommended somewhere... // TODO: Is this needed? Maybe it is just cruft... // gst_x_overlay_set_xwindow_id( GST_X_OVERLAY(be->m_xoverlay), // GDK_WINDOW_XWINDOW( window ) ); @@ -300,8 +305,8 @@ static gint gtk_window_realize_callback(GtkWidget* widget, wxGStreamerMediaBackend* be) { gdk_flush(); - - GdkWindow *window = widget->window; + + GdkWindow* window = gtk_widget_get_window(widget); wxASSERT(window); gst_x_overlay_set_xwindow_id( GST_X_OVERLAY(be->m_xoverlay), @@ -345,7 +350,7 @@ static void gst_state_change_callback(GstElement *play, // Called by gstreamer when the media is done playing ("end of stream") //----------------------------------------------------------------------------- extern "C" { -static void gst_finish_callback(GstElement *play, +static void gst_finish_callback(GstElement *WXUNUSED(play), wxGStreamerMediaBackend* be) { wxLogTrace(wxTRACE_GStreamer, wxT("gst_finish_callback")); @@ -362,11 +367,11 @@ static void gst_finish_callback(GstElement *play, // on the command line as well for those who want extra traces. //----------------------------------------------------------------------------- extern "C" { -static void gst_error_callback(GstElement *play, - GstElement *src, +static void gst_error_callback(GstElement *WXUNUSED(play), + GstElement *WXUNUSED(src), GError *err, gchar *debug, - wxGStreamerMediaBackend* be) + wxGStreamerMediaBackend* WXUNUSED(be)) { wxString sError; sError.Printf(wxT("gst_error_callback\n") @@ -388,7 +393,7 @@ static void gst_error_callback(GstElement *play, //----------------------------------------------------------------------------- extern "C" { static void gst_notify_caps_callback(GstPad* pad, - GParamSpec* pspec, + GParamSpec* WXUNUSED(pspec), wxGStreamerMediaBackend* be) { wxLogTrace(wxTRACE_GStreamer, wxT("gst_notify_caps_callback")); @@ -410,8 +415,8 @@ static void gst_notify_caps_callback(GstPad* pad, //----------------------------------------------------------------------------- #if GST_VERSION_MAJOR > 0 || GST_VERSION_MINOR >= 10 extern "C" { -static void gst_notify_stream_info_callback(GstElement* element, - GParamSpec* pspec, +static void gst_notify_stream_info_callback(GstElement* WXUNUSED(element), + GParamSpec* WXUNUSED(pspec), wxGStreamerMediaBackend* be) { wxLogTrace(wxTRACE_GStreamer, wxT("gst_notify_stream_info_callback")); @@ -461,7 +466,7 @@ static void gst_desired_size_changed_callback(GstElement * play, //----------------------------------------------------------------------------- #if GST_VERSION_MAJOR > 0 || GST_VERSION_MINOR >= 10 extern "C" { -static gboolean gst_bus_async_callback(GstBus* bus, +static gboolean gst_bus_async_callback(GstBus* WXUNUSED(bus), GstMessage* message, wxGStreamerMediaBackend* be) { @@ -694,7 +699,7 @@ void wxGStreamerMediaBackend::SetupXOverlay() { // Use the xoverlay extension to tell gstreamer to play in our window #ifdef __WXGTK__ - if(!GTK_WIDGET_REALIZED(m_ctrl->m_wxwindow)) + if (!gtk_widget_get_realized(m_ctrl->m_wxwindow)) { // Not realized yet - set to connect at realization time g_signal_connect (m_ctrl->m_wxwindow, @@ -705,21 +710,19 @@ void wxGStreamerMediaBackend::SetupXOverlay() else { gdk_flush(); - - GdkWindow *window = m_ctrl->m_wxwindow->window; + + GdkWindow* window = gtk_widget_get_window(m_ctrl->m_wxwindow); wxASSERT(window); #endif - - gst_x_overlay_set_xwindow_id( GST_X_OVERLAY(m_xoverlay), + gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(m_xoverlay), #ifdef __WXGTK__ GDK_WINDOW_XWINDOW( window ) #else ctrl->GetHandle() #endif ); - #ifdef __WXGTK__ - g_signal_connect (m_ctrl->m_wxwindow, + g_signal_connect(m_ctrl->m_wxwindow, // m_ctrl->m_wxwindow/*m_ctrl->m_widget*/, "expose_event", G_CALLBACK(gtk_window_expose_callback), this); @@ -976,7 +979,11 @@ bool wxGStreamerMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent, char **argvGST = new char*[wxTheApp->argc + 1]; for ( i = 0; i < wxTheApp->argc; i++ ) { +#if wxUSE_UNICODE_WCHAR argvGST[i] = wxStrdupA(wxConvUTF8.cWX2MB(wxTheApp->argv[i])); +#else + argvGST[i] = wxStrdupA(wxTheApp->argv[i].utf8_str()); +#endif } argvGST[wxTheApp->argc] = NULL; @@ -1429,7 +1436,10 @@ wxLongLong wxGStreamerMediaBackend::GetDuration() // Called when the window is moved - GStreamer takes care of this // for us so nothing is needed //----------------------------------------------------------------------------- -void wxGStreamerMediaBackend::Move(int x, int y, int w, int h) +void wxGStreamerMediaBackend::Move(int WXUNUSED(x), + int WXUNUSED(y), + int WXUNUSED(w), + int WXUNUSED(h)) { } @@ -1487,6 +1497,8 @@ bool wxGStreamerMediaBackend::SetPlaybackRate(double dRate) m_dRate = dRate; return true; } +#else + wxUnusedVar(dRate); #endif #endif