gecko-media-player: add missing patch
authorKoen Kooi <koen@openembedded.org>
Wed, 4 Nov 2009 08:03:54 +0000 (09:03 +0100)
committerKoen Kooi <koen@openembedded.org>
Wed, 4 Nov 2009 08:03:54 +0000 (09:03 +0100)
recipes/gnome-mplayer/gecko-mediaplayer/gecko-mplayer-svn.diff [new file with mode: 0644]

diff --git a/recipes/gnome-mplayer/gecko-mediaplayer/gecko-mplayer-svn.diff b/recipes/gnome-mplayer/gecko-mediaplayer/gecko-mplayer-svn.diff
new file mode 100644 (file)
index 0000000..929d025
--- /dev/null
@@ -0,0 +1,480 @@
+Index: configure
+===================================================================
+--- configure  (revision 328)
++++ configure  (working copy)
+@@ -639,6 +639,7 @@
+ am__EXEEXT_TRUE
+ LTLIBOBJS
+ LIBOBJS
++plugindir
+ GIO_DEFINES
+ GIO_LIBS
+ GIO_CFLAGS
+@@ -775,6 +776,7 @@
+ enable_schemas_install
+ with_gconf
+ with_gio
++with_plugin_dir
+ enable_caching
+ '
+       ac_precious_vars='build_alias
+@@ -1444,6 +1446,7 @@
+                           Directory for installing schema files.
+   --with-gconf            Use Gconf to store preferences
+   --with-gio              Use GIO for file I/O
++  --with-plugin-dir=dir   Directory where plugins are stored
+ Some influential environment variables:
+   CC          C compiler command
+@@ -9640,6 +9643,16 @@
+ fi
++
++# Check whether --with-plugin_dir was given.
++if test "${with_plugin_dir+set}" = set; then
++  withval=$with_plugin_dir; plugindir=$withval
++else
++  plugindir='$(libdir)/mozilla/plugins'
++fi
++
++
++
+ # Check whether --enable-caching was given.
+ if test "${enable_caching+set}" = set; then
+   enableval=$enable_caching; usecache=$enableval
+Index: Makefile.in
+===================================================================
+--- Makefile.in        (revision 328)
++++ Makefile.in        (working copy)
+@@ -239,6 +239,7 @@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
++plugindir = @plugindir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+Index: configure.in
+===================================================================
+--- configure.in       (revision 328)
++++ configure.in       (working copy)
+@@ -114,6 +114,13 @@
+     AC_SUBST(GIO_LIBS)
+     ])
++AC_ARG_WITH([plugin_dir],
++    [AS_HELP_STRING([--with-plugin-dir=dir],
++        [Directory where plugins are stored])],
++        [plugindir=$withval],
++        [plugindir='$(libdir)/mozilla/plugins'])
++AC_SUBST(plugindir)
++
+ AC_ARG_ENABLE(caching,
+       AC_HELP_STRING([--disable-caching],[Disable caching of remote media to local storage]),
+       [usecache=$enableval],[usecache=yes])
+Index: src/plugin.cpp
+===================================================================
+--- src/plugin.cpp     (revision 328)
++++ src/plugin.cpp     (working copy)
+@@ -42,9 +42,9 @@
+ #include "plugin_setup.h"
+ #include "plugin_types.h"
+ #include "plugin_dbus.h"
+-#include "nsIPrefBranch.h"
+-#include "nsIPrefService.h"
+-#include "nsIServiceManager.h"
++#include <nsIPrefBranch.h>
++#include <nsIPrefService.h>
++#include <nsIServiceManager.h>
+ nsIPrefBranch *prefBranch = NULL;
+ nsIPrefService *prefService = NULL;
+@@ -170,9 +170,9 @@
+ {
+     gchar *jscript;
+-    jscript = g_strdup_printf("javascript:obj=document.getElementById('%s');"
+-                              "e=document.createEvent('Events');"
+-                              "e.initEvent('%s',true,true);" "obj.dispatchEvent(e);", id, event);
++    jscript = g_strdup_printf("javascript:obj_gmp=document.getElementById('%s');"
++                              "e_gmp=document.createEvent('Events');"
++                              "e_gmp.initEvent('%s',true,true);" "obj_gmp.dispatchEvent(e_gmp);", id, event);
+     NPN_GetURL(mInstance, jscript, NULL);
+     g_free(jscript);
+ }
+@@ -259,6 +259,7 @@
+ console(NULL),
+ controls(NULL),
+ user_agent(NULL),
++player_backend(NULL),
+ disable_context_menu(FALSE),
+ disable_fullscreen(FALSE),
+ post_dom_events(FALSE),
+@@ -354,6 +355,8 @@
+     store = gm_pref_store_new("gecko-mediaplayer");
+     if (store != NULL) {
+         debug_level = gm_pref_store_get_int(store, DEBUG_LEVEL);
++        player_backend = gm_pref_store_get_string(store, PLAYER_BACKEND);
++        printf("Using player backend of '%s'\n",player_backend);
+         gm_pref_store_free(store);
+     }
+@@ -458,10 +461,16 @@
+     }
+     if (!player_launched && mWidth > 0 && mHeight > 0) {
+-        app_name = g_find_program_in_path("gnome-mplayer");
+-        if (app_name == NULL)
+-            app_name = g_find_program_in_path("gnome-mplayer-minimal");
+-
++        app_name = NULL;
++        if (player_backend != NULL) {
++            app_name = g_find_program_in_path(player_backend);
++        }
++        if (app_name == NULL) {
++            app_name = g_find_program_in_path("gnome-mplayer");
++            if (app_name == NULL)
++                app_name = g_find_program_in_path("gnome-mplayer-minimal");
++        }
++        
+         argvn[arg++] = g_strdup_printf("%s", app_name);
+         g_free(app_name);
+         argvn[arg++] = g_strdup_printf("--window=%i", (gint) mWindow);
+@@ -643,6 +652,14 @@
+             g_free(path);
+         }
+         //printf("Leaving destroy stream src = %s\n", item->src);
++        
++    } else if (reason == NPRES_NETWORK_ERR) {
++        item = (ListItem *) stream->notifyData;
++        if (item) {
++            printf("Destroy Stream, network error, item is %s\n", item->src);
++        } else {
++            printf("Destory Stream, network error, item is NULL\n");
++        }
+     } else {
+         item = (ListItem *) stream->notifyData;
+         // item = list_find(playlist, (gchar*)stream->url);
+@@ -692,9 +709,19 @@
+              */
+         }
+     } else {
+-        if (item)
++        if (item) {
+             item->played = TRUE;
+-        if (!item->streaming) {
++            if (!item->streaming) {
++                item = list_find_next_playable(playlist);
++                if (item) {
++                    if (item->retrieved) {
++                        open_location(this, item, TRUE);
++                    } else {
++                        NPN_GetURLNotify(mInstance, item->src, NULL, item);
++                    }
++                }
++            }
++        } else {
+             item = list_find_next_playable(playlist);
+             if (item) {
+                 if (item->retrieved) {
+@@ -703,7 +730,7 @@
+                     NPN_GetURLNotify(mInstance, item->src, NULL, item);
+                 }
+             }
+-        }
++        }        
+     }
+ }
+Index: src/Makefile.in
+===================================================================
+--- src/Makefile.in    (revision 328)
++++ src/Makefile.in    (working copy)
+@@ -57,34 +57,45 @@
+       $(am__objects_1)
+ gecko_mediaplayer_dvx_so_OBJECTS =  \
+       $(am_gecko_mediaplayer_dvx_so_OBJECTS)
+-gecko_mediaplayer_dvx_so_DEPENDENCIES = libgmlib/libgmlib.a
++am__DEPENDENCIES_1 =
++gecko_mediaplayer_dvx_so_DEPENDENCIES = libgmlib/libgmlib.a \
++      $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
++      $(am__DEPENDENCIES_1)
+ gecko_mediaplayer_dvx_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+       $(gecko_mediaplayer_dvx_so_LDFLAGS) $(LDFLAGS) -o $@
+ am_gecko_mediaplayer_qt_so_OBJECTS = plugin_types_qt.$(OBJEXT) \
+       $(am__objects_1)
+ gecko_mediaplayer_qt_so_OBJECTS =  \
+       $(am_gecko_mediaplayer_qt_so_OBJECTS)
+-gecko_mediaplayer_qt_so_DEPENDENCIES = libgmlib/libgmlib.a
++gecko_mediaplayer_qt_so_DEPENDENCIES = libgmlib/libgmlib.a \
++      $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
++      $(am__DEPENDENCIES_1)
+ gecko_mediaplayer_qt_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+       $(gecko_mediaplayer_qt_so_LDFLAGS) $(LDFLAGS) -o $@
+ am_gecko_mediaplayer_rm_so_OBJECTS = plugin_types_rm.$(OBJEXT) \
+       $(am__objects_1)
+ gecko_mediaplayer_rm_so_OBJECTS =  \
+       $(am_gecko_mediaplayer_rm_so_OBJECTS)
+-gecko_mediaplayer_rm_so_DEPENDENCIES = libgmlib/libgmlib.a
++gecko_mediaplayer_rm_so_DEPENDENCIES = libgmlib/libgmlib.a \
++      $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
++      $(am__DEPENDENCIES_1)
+ gecko_mediaplayer_rm_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+       $(gecko_mediaplayer_rm_so_LDFLAGS) $(LDFLAGS) -o $@
+ am_gecko_mediaplayer_wmp_so_OBJECTS = plugin_types_wmp.$(OBJEXT) \
+       $(am__objects_1)
+ gecko_mediaplayer_wmp_so_OBJECTS =  \
+       $(am_gecko_mediaplayer_wmp_so_OBJECTS)
+-gecko_mediaplayer_wmp_so_DEPENDENCIES = libgmlib/libgmlib.a
++gecko_mediaplayer_wmp_so_DEPENDENCIES = libgmlib/libgmlib.a \
++      $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
++      $(am__DEPENDENCIES_1)
+ gecko_mediaplayer_wmp_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+       $(gecko_mediaplayer_wmp_so_LDFLAGS) $(LDFLAGS) -o $@
+ am_gecko_mediaplayer_so_OBJECTS = plugin_types_std.$(OBJEXT) \
+       $(am__objects_1)
+ gecko_mediaplayer_so_OBJECTS = $(am_gecko_mediaplayer_so_OBJECTS)
+-gecko_mediaplayer_so_DEPENDENCIES = libgmlib/libgmlib.a
++gecko_mediaplayer_so_DEPENDENCIES = libgmlib/libgmlib.a \
++      $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
++      $(am__DEPENDENCIES_1)
+ gecko_mediaplayer_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+       $(gecko_mediaplayer_so_LDFLAGS) $(LDFLAGS) -o $@
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+@@ -265,6 +276,7 @@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
++plugindir = @plugindir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+@@ -312,42 +324,42 @@
+       npp_gate.cpp \
+       npupp.h
+-install_libexecdir = $(libdir)/mozilla/plugins
++install_libexecdir = $(plugindir)
+ gecko_mediaplayer_so_SOURCES = \
+       plugin_types_std.cpp \
+       $(COMMONCODE)
+ gecko_mediaplayer_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC
+-gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_so_LDFLAGS = -shared -fPIC
++gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_qt_so_SOURCES = \
+       plugin_types_qt.cpp \
+       $(COMMONCODE)
+ gecko_mediaplayer_qt_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_qt_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC 
+-gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_qt_so_LDFLAGS = -shared -fPIC 
++gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_wmp_so_SOURCES = \
+       plugin_types_wmp.cpp \
+       $(COMMONCODE)
+ gecko_mediaplayer_wmp_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_wmp_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC 
+-gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_wmp_so_LDFLAGS = -shared -fPIC 
++gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_dvx_so_SOURCES = \
+       plugin_types_dvx.cpp \
+       $(COMMONCODE)
+ gecko_mediaplayer_dvx_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_dvx_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC
+-gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_dvx_so_LDFLAGS = -shared -fPIC
++gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_rm_so_SOURCES = \
+       plugin_types_rm.cpp \
+       $(COMMONCODE)
+ gecko_mediaplayer_rm_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_rm_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC
+-gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_rm_so_LDFLAGS = -shared -fPIC
++gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ all: all-recursive
+ .SUFFIXES:
+Index: src/plugin.h
+===================================================================
+--- src/plugin.h       (revision 328)
++++ src/plugin.h       (working copy)
+@@ -84,6 +84,7 @@
+ #define DISABLE_DVX           "disable_dvx"
+ #define DEBUG_LEVEL           "debug_level"
+ #define DISABLE_MIDI    "disable_midi"
++#define PLAYER_BACKEND  "player_backend"
+ typedef enum {
+     PLAYING,
+@@ -189,6 +190,7 @@
+     gchar *console;
+     gchar *controls;
+     gchar *user_agent;
++    gchar *player_backend;
+     // events
+     gboolean post_dom_events;
+Index: src/plugin_dbus.cpp
+===================================================================
+--- src/plugin_dbus.cpp        (revision 328)
++++ src/plugin_dbus.cpp        (working copy)
+@@ -109,6 +109,14 @@
+                 return DBUS_HANDLER_RESULT_HANDLED;
+             }
++            if (g_ascii_strcasecmp(dbus_message_get_member(message), "ListDump") == 0) {
++                
++                printf("playlist:\n");
++                list_dump(instance->playlist);
++                
++                return DBUS_HANDLER_RESULT_HANDLED;
++            }
++            
+             if (g_ascii_strcasecmp(dbus_message_get_member(message), "RequestById") == 0) {
+                 dbus_error_init(&error);
+                 if (dbus_message_get_args(message, &error, DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID)) {
+@@ -773,6 +781,10 @@
+         result = TRUE;
++    } else if (g_ascii_strcasecmp(message, "/DEBUG") == 0) {
++
++        result = TRUE;
++
+     } else {
+         if (instance->playlist != NULL) {
+Index: src/Makefile.am
+===================================================================
+--- src/Makefile.am    (revision 328)
++++ src/Makefile.am    (working copy)
+@@ -39,7 +39,7 @@
+       npp_gate.cpp \
+       npupp.h
+-install_libexecdir = $(libdir)/mozilla/plugins
++install_libexecdir = $(plugindir)
+ install_libexec_PROGRAMS = \
+       gecko-mediaplayer.so \
+       gecko-mediaplayer-qt.so \
+@@ -52,40 +52,40 @@
+       $(COMMONCODE)
+               
+ gecko_mediaplayer_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC
+-gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_so_LDFLAGS = -shared -fPIC
++gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_qt_so_SOURCES = \
+       plugin_types_qt.cpp \
+       $(COMMONCODE)
+       
+ gecko_mediaplayer_qt_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_qt_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC 
+-gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_qt_so_LDFLAGS = -shared -fPIC 
++gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_wmp_so_SOURCES = \
+       plugin_types_wmp.cpp \
+       $(COMMONCODE)
+       
+ gecko_mediaplayer_wmp_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_wmp_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC 
+-gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_wmp_so_LDFLAGS = -shared -fPIC 
++gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_dvx_so_SOURCES = \
+       plugin_types_dvx.cpp \
+       $(COMMONCODE)
+       
+ gecko_mediaplayer_dvx_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_dvx_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC
+-gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_dvx_so_LDFLAGS = -shared -fPIC
++gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ gecko_mediaplayer_rm_so_SOURCES = \
+       plugin_types_rm.cpp \
+       $(COMMONCODE)
+       
+ gecko_mediaplayer_rm_so_CFLAGS = -fPIC 
+-gecko_mediaplayer_rm_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC
+-gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a
++gecko_mediaplayer_rm_so_LDFLAGS = -shared -fPIC
++gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS)
+ indent:
+       indent -kr -l100 -i4 -nut *.cpp
+Index: src/plugin_list.cpp
+===================================================================
+--- src/plugin_list.cpp        (revision 328)
++++ src/plugin_list.cpp        (working copy)
+@@ -356,7 +356,7 @@
+                 return list;
+             } else {
+                 while (p != NULL) {
+-                    urlptr = (gchar *) memmem(p,datalen - (p - data), "url ", 4);
++                    urlptr = (gchar *) memmem_compat(p,datalen - (p - data), "url ", 4);
+                     
+                     if (urlptr == NULL) {
+@@ -385,7 +385,7 @@
+                             item->id = -1;
+                             list = g_list_append(list, newitem);
+                         }
+-                        p = (gchar *) memmem(urlptr,datalen - (urlptr - data),"mmdr",4);
++                        p = (gchar *) memmem_compat(urlptr,datalen - (urlptr - data),"mmdr",4);
+                     }
+                 }
+Index: ChangeLog
+===================================================================
+--- ChangeLog  (revision 328)
++++ ChangeLog  (working copy)
+@@ -1,3 +1,11 @@
++Developement
++      Allow for configurable backend (fosfor or gnome-mplayer or something else)
++      Make dom event javascript a little more unique
++      React to Network Errors in DestroyStream differently
++      Added /DEBUG path for debugging purposes
++      Added ListDump dbus method
++      konqueror patch from Christian.Morales.Vega
++      plugin-dir patch from Christian.Morales.Vega
+ 0.9.8
+       When cancelling a stream (USER_BREAK) and the cancelled one is streaming
+               don't automatically load the next item on the playlist
+Index: gecko-mediaplayer.schemas
+===================================================================
+--- gecko-mediaplayer.schemas  (revision 328)
++++ gecko-mediaplayer.schemas  (working copy)
+@@ -62,5 +62,17 @@
+       </locale>
+     </schema>
++      <schema>
++      <key>/schemas/apps/gecko-mediaplayer/preferences/player_backend</key>
++      <applyto>/apps/gecko-mediaplayer/preferences/player_backend</applyto>
++      <owner>gecko-mediaplayer</owner>
++      <type>string</type>
++      <default></default>
++      <locale name="C">
++        <short>Backend to use</short>
++        <long>Backend to use</long>
++      </locale>
++    </schema>
++    
+   </schemalist>
+ </gconfschemafile>