summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/BUILD-Linux24
-rw-r--r--doc/texi/Building.linux.texi17
-rw-r--r--gtk/configure.ac2
-rw-r--r--gtk/src/callbacks.c110
-rw-r--r--gtk/src/callbacks.h2
-rw-r--r--gtk/src/hb-backend.c1
-rw-r--r--gtk/src/main.c4
-rw-r--r--gtk/src/queuehandler.c2
8 files changed, 52 insertions, 110 deletions
diff --git a/doc/BUILD-Linux b/doc/BUILD-Linux
index ecfc415d4..e84b31c10 100644
--- a/doc/BUILD-Linux
+++ b/doc/BUILD-Linux
@@ -1,4 +1,4 @@
-Guide to Building HandBrake svn3023 (2009121001) on Linux
+Guide to Building HandBrake svn3269 (2010042701) on Linux
*********************************************************
Table of Contents
@@ -86,7 +86,7 @@ The GTK UI introduces some significant extra build requirements. If you
intend to disable building the GUI with `configure --disable-gtk' you
will not need many of these packages installed:
-Ubuntu 8.04 - 9.10 packages:
+Ubuntu 9.10 - 10.04 packages:
* subversion (cli/gui)
* yasm (cli/gui)
@@ -109,9 +109,7 @@ Ubuntu 8.04 - 9.10 packages:
* libgtk2.0-dev (gui)
- * libhal-dev (gui)
-
- * libhal-storage-dev (gui)
+ * libgudev-1.0-dev (gui)
* libwebkit-dev (gui)
@@ -121,16 +119,14 @@ Ubuntu 8.04 - 9.10 packages:
* libgstreamer-plugins-base0.10-dev (gui)
-Ubuntu 8.04, substitute libwebkitgtk-dev for libwebkit-dev
-
To install these packages:
sudo apt-get install subversion yasm build-essential \
autoconf libtool zlib1g-dev libbz2-dev intltool libglib2.0-dev \
- libdbus-glib-1-dev libgtk2.0-dev libhal-dev libhal-storage-dev \
+ libdbus-glib-1-dev libgtk2.0-dev libgudev-1.0-dev \
libwebkit-dev libnotify-dev libgstreamer0.10-dev \
libgstreamer-plugins-base0.10-dev
-Fedora 9 - 12 package groups:
+Fedora 12 - 13 package groups:
* Development Tools
* Development Libraries
@@ -152,7 +148,7 @@ Additional Fedora packages:
* dbus-glib-devel (gui)
- * hal-devel (gui)
+ * libgudev1-devel (gui)
* webkitgtk-devel (gui)
@@ -162,11 +158,9 @@ Additional Fedora packages:
* gstreamer-plugins-base-devel (gui)
-Fedora 9 & 10, substitute WebKit-gtk-devel for webkitgtk-devel
-
To install these packages:
sudo yum install yasm zlib-devel bzip2-devel \
- dbus-glib-devel hal-devel webkitgtk-devel libnotify-devel\
+ dbus-glib-devel libgudev1-devel webkitgtk-devel libnotify-devel\
gstreamer-devel gstreamer-plugins-base-devel
3 QuickStart
@@ -554,7 +548,7 @@ Appendix A Project Repository Details
root: svn://svn.handbrake.fr/HandBrake
branch: trunk
uuid: b64f7644-9d1e-0410-96f1-a4d463321fa5
- rev: 3023
- date: 2009-12-10 09:44:05 -0800
+ rev: 3269
+ date: 2010-04-27 09:51:55 -0700
type: developer
diff --git a/doc/texi/Building.linux.texi b/doc/texi/Building.linux.texi
index e1b75591b..6b283a5c4 100644
--- a/doc/texi/Building.linux.texi
+++ b/doc/texi/Building.linux.texi
@@ -36,7 +36,7 @@ The following are the recommended specifications for building on @value{OS.linux
The @b{GTK UI} introduces some significant extra build requirements. If you intend to disable building the GUI with @command{configure --disable-gtk} you will not need many of these packages installed:
-Ubuntu 8.04 - 9.10 packages:
+Ubuntu 9.10 - 10.04 packages:
@itemize @bullet
@item subversion (cli/gui)
@item yasm (cli/gui)
@@ -49,26 +49,23 @@ Ubuntu 8.04 - 9.10 packages:
@item libglib2.0-dev (gui)
@item libdbus-glib-1-dev (gui)
@item libgtk2.0-dev (gui)
-@item libhal-dev (gui)
-@item libhal-storage-dev (gui)
+@item libgudev-1.0-dev (gui)
@item libwebkit-dev (gui)
@item libnotify-dev (gui)
@item libgstreamer0.10-dev (gui)
@item libgstreamer-plugins-base0.10-dev (gui)
@end itemize
-Ubuntu 8.04, substitute libwebkitgtk-dev for libwebkit-dev
-
To install these packages:
@example
sudo apt-get install subversion yasm build-essential \
autoconf libtool zlib1g-dev libbz2-dev intltool libglib2.0-dev \
-libdbus-glib-1-dev libgtk2.0-dev libhal-dev libhal-storage-dev \
+libdbus-glib-1-dev libgtk2.0-dev libgudev-1.0-dev \
libwebkit-dev libnotify-dev libgstreamer0.10-dev \
libgstreamer-plugins-base0.10-dev
@end example
-Fedora 9 - 12 package groups:
+Fedora 12 - 13 package groups:
@itemize @bullet
@item Development Tools
@item Development Libraries
@@ -88,19 +85,17 @@ Additional Fedora packages:
@item zlib-devel (cli/gui)
@item bzip2-devel (cli/gui)
@item dbus-glib-devel (gui)
-@item hal-devel (gui)
+@item libgudev1-devel (gui)
@item webkitgtk-devel (gui)
@item libnotify-devel (gui)
@item gstreamer-devel (gui)
@item gstreamer-plugins-base-devel (gui)
@end itemize
-Fedora 9 & 10, substitute WebKit-gtk-devel for webkitgtk-devel
-
To install these packages:
@example
sudo yum install yasm zlib-devel bzip2-devel \
-dbus-glib-devel hal-devel webkitgtk-devel libnotify-devel\
+dbus-glib-devel libgudev1-devel webkitgtk-devel libnotify-devel\
gstreamer-devel gstreamer-plugins-base-devel
@end example
diff --git a/gtk/configure.ac b/gtk/configure.ac
index 0a1b2517d..0323214f2 100644
--- a/gtk/configure.ac
+++ b/gtk/configure.ac
@@ -76,7 +76,7 @@ case $host in
mingw_flag=yes
;;
*)
- GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 hal hal-storage libnotify"
+ GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 libnotify gudev-1.0"
mingw_flag=no
;;
esac
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index 9f89ba9d8..682b90cf6 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -22,7 +22,8 @@
#if !defined(_WIN32)
#include <poll.h>
-#include <libhal-storage.h>
+#define G_UDEV_API_IS_SUBJECT_TO_CHANGE 1
+#include <gudev/gudev.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
@@ -3785,7 +3786,7 @@ dvd_device_list()
}
#if !defined(_WIN32)
-static LibHalContext *hal_ctx = NULL;
+static GUdevClient *udev_ctx = NULL;
#endif
gboolean
@@ -3793,27 +3794,43 @@ ghb_is_cd(GDrive *gd)
{
#if !defined(_WIN32)
gchar *device;
- LibHalDrive *halDrive;
- LibHalDriveType dtype;
+ GUdevDevice *udd;
- if (hal_ctx == NULL)
+ if (udev_ctx == NULL)
return FALSE;
device = g_drive_get_identifier(gd, G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
if (device == NULL)
return FALSE;
- halDrive = libhal_drive_from_device_file (hal_ctx, device);
+
+ udd = g_udev_client_query_by_device_file(udev_ctx, device);
g_free(device);
- if (halDrive == NULL)
+
+ if (udd == NULL)
+ {
+ g_message("udev: Failed to lookup device %s", device);
return FALSE;
- dtype = libhal_drive_get_type(halDrive);
- libhal_drive_free(halDrive);
- return (dtype == LIBHAL_DRIVE_TYPE_CDROM);
+ }
+
+ gint val;
+ val = g_udev_device_get_property_as_int(udd, "ID_CDROM_DVD");
+ if (val == 1)
+ return TRUE;
+
+ return FALSE;
#else
return FALSE;
#endif
}
+void
+ghb_udev_init()
+{
+#if !defined(_WIN32)
+ udev_ctx = g_udev_client_new(NULL);
+#endif
+}
+
#if defined(_WIN32)
static void
handle_media_change(const gchar *device, gboolean insert, signal_user_data_t *ud)
@@ -3962,12 +3979,6 @@ drive_changed_cb(GVolumeMonitor *gvm, GDrive *gd, signal_user_data_t *ud)
#endif
#if !defined(_WIN32)
-static void
-dbus_init (void)
-{
- dbus_g_thread_init();
-}
-
#define GPM_DBUS_PM_SERVICE "org.freedesktop.PowerManagement"
#define GPM_DBUS_PM_PATH "/org/freedesktop/PowerManagement"
#define GPM_DBUS_PM_INTERFACE "org.freedesktop.PowerManagement"
@@ -4070,11 +4081,11 @@ ghb_suspend_gpm()
#endif
}
+#if !defined(_WIN32)
static gboolean
ghb_can_shutdown_gpm()
{
gboolean can_shutdown = FALSE;
-#if !defined(_WIN32)
DBusGConnection *conn;
DBusGProxy *proxy;
GError *error = NULL;
@@ -4115,14 +4126,14 @@ ghb_can_shutdown_gpm()
}
g_object_unref(G_OBJECT(proxy));
dbus_g_connection_unref(conn);
-#endif
return can_shutdown;
}
+#endif
+#if !defined(_WIN32)
static void
ghb_shutdown_gpm()
{
-#if !defined(_WIN32)
DBusGConnection *conn;
DBusGProxy *proxy;
GError *error = NULL;
@@ -4160,8 +4171,8 @@ ghb_shutdown_gpm()
}
g_object_unref(G_OBJECT(proxy));
dbus_g_connection_unref(conn);
-#endif
}
+#endif
void
ghb_inhibit_gpm()
@@ -4480,65 +4491,6 @@ ghb_uninhibit_gsm()
#endif
}
-void
-ghb_hal_init()
-{
-#if !defined(_WIN32)
- DBusGConnection *gconn;
- DBusConnection *conn;
- GError *gerror = NULL;
- DBusError error;
- char **devices;
- int nr;
-
- dbus_init ();
-
- if (!(hal_ctx = libhal_ctx_new ())) {
- g_warning ("failed to create a HAL context!");
- return;
- }
-
- gconn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &gerror);
- if (gerror != NULL)
- {
- g_warning("DBUS cannot connect: %s", gerror->message);
- g_error_free(gerror);
- return;
- }
- conn = dbus_g_connection_get_connection(gconn);
- libhal_ctx_set_dbus_connection (hal_ctx, conn);
- dbus_error_init (&error);
- if (!libhal_ctx_init (hal_ctx, &error)) {
- g_warning ("libhal_ctx_init failed: %s", error.message ? error.message : "unknown");
- dbus_error_free (&error);
- libhal_ctx_free (hal_ctx);
- dbus_g_connection_unref(gconn);
- hal_ctx = NULL;
- return;
- }
-
- /*
- * Do something to ping the HAL daemon - the above functions will
- * succeed even if hald is not running, so long as DBUS is. But we
- * want to exit silently if hald is not running, to behave on
- * pre-2.6 systems.
- */
- if (!(devices = libhal_get_all_devices (hal_ctx, &nr, &error))) {
- g_warning ("seems that HAL is not running: %s", error.message ? error.message : "unknown");
- dbus_error_free (&error);
-
- libhal_ctx_shutdown (hal_ctx, NULL);
- libhal_ctx_free (hal_ctx);
- hal_ctx = NULL;
- dbus_g_connection_unref(gconn);
- return;
- }
-
- libhal_free_string_array (devices);
- dbus_g_connection_unref(gconn);
-#endif
-}
-
G_MODULE_EXPORT gboolean
tweak_setting_cb(
GtkWidget *widget,
diff --git a/gtk/src/callbacks.h b/gtk/src/callbacks.h
index a124ab59f..f873c871f 100644
--- a/gtk/src/callbacks.h
+++ b/gtk/src/callbacks.h
@@ -41,7 +41,7 @@ void debug_log_handler(
const gchar *domain, GLogLevelFlags flags, const gchar *msg, gpointer ud);
void ghb_hbfd(signal_user_data_t *ud, gboolean hbfd);
gboolean ghb_file_menu_add_dvd(signal_user_data_t *ud);
-void ghb_hal_init(void);
+void ghb_udev_init(void);
gboolean ghb_message_dialog(
GtkMessageType type, const gchar *message,
const gchar *no, const gchar *yes);
diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c
index 55f9747c9..97f7d8df1 100644
--- a/gtk/src/hb-backend.c
+++ b/gtk/src/hb-backend.c
@@ -2017,7 +2017,6 @@ ghb_longest_title()
hb_title_t * title;
gint ii;
gint count = 0;
- guint64 longest = 0;
gint titleindex = 0;
gint feature;
diff --git a/gtk/src/main.c b/gtk/src/main.c
index 3782efe95..20e9f8518 100644
--- a/gtk/src/main.c
+++ b/gtk/src/main.c
@@ -37,6 +37,7 @@
#if !defined(_WIN32)
#include <gst/gst.h>
#include <libnotify/notify.h>
+#include <dbus/dbus-glib.h>
#else
#include <windows.h>
#include <io.h>
@@ -800,8 +801,9 @@ main (int argc, char *argv[])
ghb_load_icons();
#if !defined(_WIN32)
- ghb_hal_init();
+ dbus_g_thread_init();
#endif
+ ghb_udev_init();
ghb_write_pid_file();
ud = g_malloc0(sizeof(signal_user_data_t));
diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c
index 3b91a2464..7be812b70 100644
--- a/gtk/src/queuehandler.c
+++ b/gtk/src/queuehandler.c
@@ -94,7 +94,7 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
vqtype = ghb_settings_get_boolean(settings, "vquality_type_constant");
if (!vqtype)
pass2 = ghb_settings_get_boolean(settings, "VideoTwoPass");
- const gchar *points;
+ const gchar *points = "Chapters";
if (ghb_settings_combo_int(settings, "PtoPType") == 0)
points = "Chapters";
else if (ghb_settings_combo_int(settings, "PtoPType") == 1)