From d5aa8292cc6ff76f16f3878e98cd750b52a33fcb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Thu, 29 Jan 2009 00:26:43 -0800
Subject: Updated mplayer to sync w/ upstream.

---
 .../mplayer/MPlayer-1.0rc1-gnome-screensaver.patch | 286 +++++++++++++++++++++
 abs/core-testing/mplayer/PKGBUILD                  |  45 ++++
 abs/core-testing/mplayer/mplayer_desktop.patch     |  11 +
 3 files changed, 342 insertions(+)
 create mode 100644 abs/core-testing/mplayer/MPlayer-1.0rc1-gnome-screensaver.patch
 create mode 100644 abs/core-testing/mplayer/PKGBUILD
 create mode 100644 abs/core-testing/mplayer/mplayer_desktop.patch

diff --git a/abs/core-testing/mplayer/MPlayer-1.0rc1-gnome-screensaver.patch b/abs/core-testing/mplayer/MPlayer-1.0rc1-gnome-screensaver.patch
new file mode 100644
index 0000000..79deb93
--- /dev/null
+++ b/abs/core-testing/mplayer/MPlayer-1.0rc1-gnome-screensaver.patch
@@ -0,0 +1,286 @@
+diff -Nur MPlayer-1.0rc1.orig/configure MPlayer-1.0rc1/configure
+--- MPlayer-1.0rc1.orig/configure	2006-10-23 00:32:31.000000000 +0200
++++ MPlayer-1.0rc1/configure	2006-11-11 14:02:38.000000000 +0100
+@@ -257,6 +257,7 @@
+   --disable-ftp          Disable ftp support [enabled]
+   --disable-vstream      Disable tivo vstream client support [autodetect]
+   --disable-pthreads     Disable Posix threads support [autodetect]
++  --disable-dbus-glib    Disable D-BUS GLib interface (required for GNOME screensaver support) [autodetect]
+   --disable-ass          Disable internal SSA/ASS subtitles support [autodetect]
+   --enable-rpath         Enable runtime linker path for extra libs [disabled]
+ 
+@@ -1721,6 +1722,7 @@
+ _musepack=auto
+ _vstream=auto
+ _pthreads=auto
++_dbus_glib=auto
+ _ass=auto
+ _rpath=no
+ _asmalign_pot=auto
+@@ -2033,6 +2035,8 @@
+   --disable-vstream)    _vstream=no     ;;
+   --enable-pthreads)    _pthreads=yes   ;;
+   --disable-pthreads)   _pthreads=no    ;;
++  --enable-dbus-glib)   _dbus_glib=yes  ;;
++  --disable-dbus-glib)  _dbus_glib=no   ;;
+   --enable-ass)         _ass=yes        ;;
+   --disable-ass)        _ass=no         ;;
+   --enable-rpath)       _rpath=yes      ;;
+@@ -7029,6 +7033,19 @@
+ fi
+ echores "$_gethostbyname2"
+ 
++echocheck "D-BUS GLib interface"
++if test "$_dbus_glib" = auto && pkg-config --exists dbus-glib-1; then
++  _dbus_glib=yes
++  _inc_dbus_glib=`pkg-config --cflags dbus-glib-1 2>/dev/null`
++  _ld_dbus_glib=`pkg-config --libs dbus-glib-1 2>/dev/null`   
++fi
++  
++if test "$_dbus_glib" = yes; then
++  _def_dbus_glib='#define HAVE_DBUS_GLIB 1'
++else
++  _def_dbus_glib='#undef HAVE_DBUS_GLIB'
++fi
++echores "$_dbus_glib"
+ 
+ # --------------- GUI specific tests begin -------------------
+ echocheck "GUI"
+@@ -7521,6 +7538,10 @@
+ VESA_LIB = $_ld_vesa
+ AA_LIB = $_ld_aa
+ CACA_LIB = $_ld_caca
++DBUS_GLIB_INC = $_inc_dbus_glib
++DBUS_GLIB_LIB = $_ld_dbus_glib 
++DBUS_GLIB = $_dbus_glib
++
+ 
+ # audio output
+ OSS = $_ossaudio
+@@ -8378,6 +8399,7 @@
+ $_def_tga
+ $_def_toolame
+ $_def_twolame
++$_def_dbus_glib
+ 
+ /* used by GUI: */
+ $_def_xshape
+diff -Nur MPlayer-1.0rc1.orig/help/help_mp-en.h MPlayer-1.0rc1/help/help_mp-en.h
+--- MPlayer-1.0rc1.orig/help/help_mp-en.h	2006-10-23 00:32:29.000000000 +0200
++++ MPlayer-1.0rc1/help/help_mp-en.h	2006-11-11 14:02:38.000000000 +0100
+@@ -679,6 +679,13 @@
+ #define MSGTR_InsertingAfVolume "[Mixer] No hardware mixing, inserting volume filter.\n"
+ #define MSGTR_NoVolume "[Mixer] No volume control available.\n"
+ 
++// gnome_screensaver.c
++#define MSGTR_OpenBusConnectionError "%s: Failed to open connection to bus: %s\n"
++#define MSGTR_RemoteMethodException "%s: Caught remote method exception %s: %s\n"
++#define MSGTR_GError "%s: Error: %s\n"
++#define MSGTR_GNOMEScreensaverEnabled "GNOME screensaver enabled\n"
++#define MSGTR_GNOMEScreensaverDisabled "GNOME screensaver disabled\n"
++
+ // ====================== GUI messages/buttons ========================
+ 
+ #ifdef HAVE_NEW_GUI
+diff -Nur MPlayer-1.0rc1.orig/libvo/gnome_screensaver.c MPlayer-1.0rc1/libvo/gnome_screensaver.c
+--- MPlayer-1.0rc1.orig/libvo/gnome_screensaver.c	1970-01-01 01:00:00.000000000 +0100
++++ MPlayer-1.0rc1/libvo/gnome_screensaver.c	2006-11-11 14:02:38.000000000 +0100
+@@ -0,0 +1,120 @@
++/*
++ * gnome_screensaver.c v0.0.7
++ *
++ * Enable/Disable the GNOME screensaver
++ * Supports GNOME screensaver API 2.14 and 2.15
++ *
++ * Call gnome_screensaver_control(1) to enable and
++ * gnome_screensaver_control(0) to disable
++ *
++ */
++
++#include <stdlib.h>
++#include <unistd.h>
++#include <dbus/dbus-glib.h>
++
++#include "gnome_screensaver.h"
++#include "mp_msg.h"
++#include "help_mp.h"
++
++#define GS_SERVICE   "org.gnome.ScreenSaver"
++#define GS_PATH      "/org/gnome/ScreenSaver"
++#define GS_INTERFACE "org.gnome.ScreenSaver"
++
++#define GS_APPLICATION_NAME     "MPlayer"
++#define GS_REASON_FOR_INHIBIT   "Playing a movie"
++
++static guint32 cookie;
++
++void gnome_screensaver_control(int enable)
++{
++    DBusGConnection *connection;
++    GError *error;
++    DBusGProxy *proxy;
++    gboolean ret;
++    char *funcname = "gnome_screensaver_control()";
++
++    g_type_init();
++
++    /* Get a connection to the session bus */
++    error = NULL;
++    connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
++    if (connection == NULL) {
++        mp_msg(MSGT_VO, MSGL_ERR,
++               funcname, MSGTR_OpenBusConnectionError, error->message);
++        g_error_free(error);
++        return;
++    }
++
++    /* Create a proxy object */
++    proxy = dbus_g_proxy_new_for_name(connection,
++                                      GS_SERVICE, GS_PATH, GS_INTERFACE);
++
++    /* Enable the screensaver */
++    if (enable) {
++        /* First call the GNOME screensaver 2.15 API method */
++        error = NULL;
++        ret =
++            dbus_g_proxy_call(proxy, "UnInhibit", &error, G_TYPE_UINT,
++                              cookie, G_TYPE_INVALID);
++
++        /* If this fails, try the GNOME screensaver 2.14 API */
++        if (!ret && error->domain == DBUS_GERROR
++            && error->code == DBUS_GERROR_UNKNOWN_METHOD) {
++            mp_msg(MSGT_VO, MSGL_V,
++                   "%s: GNOME screensaver 2.15 API failed, trying 2.14 API\n",
++                   funcname);
++            g_error_free(error);
++            error = NULL;
++            ret =
++                dbus_g_proxy_call(proxy, "AllowActivation", &error,
++                                  G_TYPE_INVALID, G_TYPE_INVALID);
++        }
++    }
++    /* Disable the screensaver */
++    else {
++        /* First call the GNOME screensaver 2.15 API method */
++        error = NULL;
++        ret =
++            dbus_g_proxy_call(proxy, "Inhibit", &error, G_TYPE_STRING,
++                              GS_APPLICATION_NAME, G_TYPE_STRING,
++                              GS_REASON_FOR_INHIBIT, G_TYPE_INVALID,
++                              G_TYPE_UINT, cookie, G_TYPE_INVALID);
++
++        /* If this fails, try the GNOME screensaver 2.14 API */
++        if (!ret && error->domain == DBUS_GERROR
++            && error->code == DBUS_GERROR_UNKNOWN_METHOD) {
++            mp_msg(MSGT_VO, MSGL_V,
++                   "%s: GNOME screensaver 2.15 API failed, trying 2.14 API\n",
++                   funcname);
++            g_error_free(error);
++            error = NULL;
++            ret =
++                dbus_g_proxy_call(proxy, "InhibitActivation", &error,
++                                  G_TYPE_STRING, GS_REASON_FOR_INHIBIT,
++                                  G_TYPE_INVALID, G_TYPE_INVALID);
++        }
++    }
++
++    if (!ret) {
++        /* Check if it's a remote exception or a regular GError */
++        if (error->domain == DBUS_GERROR
++            && error->code == DBUS_GERROR_REMOTE_EXCEPTION) {
++            mp_msg(MSGT_VO, MSGL_ERR,
++                   funcname, MSGTR_RemoteMethodException,
++                   dbus_g_error_get_name(error), error->message);
++        }
++        else {
++            mp_msg(MSGT_VO, MSGL_ERR,
++                   funcname, MSGTR_GError, error->message);
++        }
++        g_error_free(error);
++    }
++    else {
++        mp_msg(MSGT_VO, MSGL_INFO,
++               enable ? MSGTR_GNOMEScreensaverEnabled :
++               MSGTR_GNOMEScreensaverDisabled);
++    }
++
++    g_object_unref(proxy);
++}
+diff -Nur MPlayer-1.0rc1.orig/libvo/gnome_screensaver.h MPlayer-1.0rc1/libvo/gnome_screensaver.h
+--- MPlayer-1.0rc1.orig/libvo/gnome_screensaver.h	1970-01-01 01:00:00.000000000 +0100
++++ MPlayer-1.0rc1/libvo/gnome_screensaver.h	2006-11-11 14:02:38.000000000 +0100
+@@ -0,0 +1,6 @@
++#ifndef _GNOME_SCREENSAVER_H
++#define _GNOME_SCREENSAVER_H
++
++extern void gnome_screensaver_control(int enable);
++
++#endif /* !_GNOME_SCREENSAVER_H */
+diff -Nur MPlayer-1.0rc1.orig/libvo/Makefile MPlayer-1.0rc1/libvo/Makefile
+--- MPlayer-1.0rc1.orig/libvo/Makefile	2006-10-23 00:32:26.000000000 +0200
++++ MPlayer-1.0rc1/libvo/Makefile	2006-11-11 14:02:38.000000000 +0100
+@@ -39,6 +39,11 @@
+ SRCS += vosub_vidix.c
+ endif
+ 
++ifeq ($(DBUS_GLIB),yes)
++SRCS += gnome_screensaver.c
++LIBAV_INC += $(DBUS_GLIB_INC)
++endif
++
+ INCLUDE = -I. -I.. -I../osdep $(LIBAV_INC)
+ CFLAGS  = $(INCLUDE) $(OPTFLAGS) -DMPG12PLAY
+ 
+diff -Nur MPlayer-1.0rc1.orig/libvo/x11_common.c MPlayer-1.0rc1/libvo/x11_common.c
+--- MPlayer-1.0rc1.orig/libvo/x11_common.c	2006-10-23 00:32:26.000000000 +0200
++++ MPlayer-1.0rc1/libvo/x11_common.c	2006-11-11 14:02:38.000000000 +0100
+@@ -58,6 +58,10 @@
+ #include "mplayer.h"
+ #endif
+ 
++#ifdef HAVE_DBUS_GLIB
++#include "gnome_screensaver.h"
++#endif
++
+ #define WIN_LAYER_ONBOTTOM               2
+ #define WIN_LAYER_NORMAL                 4
+ #define WIN_LAYER_ONTOP                  6
+@@ -1701,8 +1705,12 @@
+         timeout_save = 0;
+     }
+ 
+-    if (stop_xscreensaver)
++    if (stop_xscreensaver) {
+         xscreensaver_enable();
++#ifdef HAVE_DBUS_GLIB
++        gnome_screensaver_control(1);
++#endif
++    }
+     if (kdescreensaver_was_running && stop_xscreensaver)
+     {
+         system
+@@ -1747,8 +1755,12 @@
+                             allow_exp);
+     }
+     // turning off screensaver
+-    if (stop_xscreensaver)
++    if (stop_xscreensaver) {
+         xscreensaver_disable(mDisplay);
++#ifdef HAVE_DBUS_GLIB
++        gnome_screensaver_control(0);
++#endif
++    }
+     if (stop_xscreensaver && !kdescreensaver_was_running)
+     {
+         kdescreensaver_was_running =
+diff -Nur MPlayer-1.0rc1.orig/Makefile MPlayer-1.0rc1/Makefile
+--- MPlayer-1.0rc1.orig/Makefile	2006-10-23 00:32:31.000000000 +0200
++++ MPlayer-1.0rc1/Makefile	2006-11-11 14:02:38.000000000 +0100
+@@ -75,6 +75,7 @@
+           $(DIRECTFB_LIB) \
+           $(CACA_LIB) \
+ 	  $(VESA_LIB) \
++	  $(DBUS_GLIB_LIB) \
+ 
+ ifeq ($(VIDIX),yes)
+ VO_LIBS += vidix/libvidix.a
diff --git a/abs/core-testing/mplayer/PKGBUILD b/abs/core-testing/mplayer/PKGBUILD
new file mode 100644
index 0000000..612c790
--- /dev/null
+++ b/abs/core-testing/mplayer/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 25315 2009-01-26 13:00:04Z giovanni $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
+pkgname=mplayer
+pkgver=28347
+pkgrel=2
+pkgdesc="A movie player for linux"
+arch=('i686' 'x86_64')
+depends=('libxxf86dga' 'libxv' 'libmad' 'giflib' 'cdparanoia' 'gtk2'
+         'sdl' 'lame' 'libtheora' 'xvidcore' 'zlib' 'libmng' 'libxss'
+         'libgl' 'smbclient' 'aalib' 'jack-audio-connection-kit'
+         'x264>=20090108' 'faac' 'lirc-utils' 'ttf-dejavu' 'fribidi')
+license=('GPL')
+url="http://www.mplayerhq.hu/"
+makedepends=('libcaca' 'unzip' 'live-media' 'libdca' 'mesa')
+backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
+source=(ftp://ftp.archlinux.org/other/mplayer/${pkgname}-${pkgver}.tar.bz2
+        http://www.mplayerhq.hu/MPlayer/skins/Blue-1.7.tar.bz2)
+md5sums=('41fb540025a51930d318e99728a19c66'
+         'e4e2020d11b681aac898103b3ba723c4')
+
+build() {
+  # Custom CFLAGS break the mplayer build
+  unset CFLAGS
+
+  cd ${srcdir}/${pkgname}
+
+  ./configure --prefix=/usr --enable-gui --disable-arts --enable-x11 \
+      --enable-runtime-cpudetection --confdir=/etc/mplayer --disable-nas \
+      --enable-gl --enable-tv-v4l1 --enable-tv-v4l2 --enable-largefiles \
+      --disable-liblzo --disable-speex --disable-openal \
+      --enable-fribidi --disable-libdv --disable-musepack \
+      --language=all --disable-dvdnav --disable-esd --disable-mga \
+      --disable-libamr_nb --disable-lirc \
+      --with-extraincdir=/usr/lib/live-media --enable-freetype
+
+  [ "$CARCH" = "i686" ] &&  sed 's|-march=i486|-march=i686|g' -i config.mak
+
+  make || return 1
+  make -j1 DESTDIR=${pkgdir} install || return 1
+  cp etc/{codecs.conf,input.conf,example.conf} ${pkgdir}/etc/mplayer/
+  ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${pkgdir}/usr/share/mplayer/subfont.ttf
+  rm -rf ${pkgdir}/usr/share/mplayer/font
+  mv ${srcdir}/Blue ${pkgdir}/usr/share/mplayer/skins/default
+}
diff --git a/abs/core-testing/mplayer/mplayer_desktop.patch b/abs/core-testing/mplayer/mplayer_desktop.patch
new file mode 100644
index 0000000..d7c6ff3
--- /dev/null
+++ b/abs/core-testing/mplayer/mplayer_desktop.patch
@@ -0,0 +1,11 @@
+--- mplayer.desktop	2008-04-12 21:29:02.000000000 -0300
++++ mplayer.desktop-new	2009-01-21 23:02:11.000000000 -0300
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Type=Application
+ Encoding=UTF-8
+-Name=MPlayer
++Name=GMPlayer
+ GenericName=Multimedia player
+ Comment=Multimedia player
+ Comment[de]=Multimedia-Player
-- 
cgit v0.12

