aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/ipod-sync/ipod.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-09-22 19:46:44 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-09-22 19:48:11 +0800
commit5a80f92d37e7e8a814f70f826b7b33f5d21b0f72 (patch)
tree5442179392c4eed8948fb90e2939fffaaa7ca725 /plugins/ipod-sync/ipod.c
parentb1cbbd1833180a1399ee9c71c7208f3a6d278c4d (diff)
downloadgsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar.gz
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar.bz2
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar.lz
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar.xz
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar.zst
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.zip
Kill the ipod-sync plugin, along with the HAL dependency.
Diffstat (limited to 'plugins/ipod-sync/ipod.c')
-rw-r--r--plugins/ipod-sync/ipod.c256
1 files changed, 0 insertions, 256 deletions
diff --git a/plugins/ipod-sync/ipod.c b/plugins/ipod-sync/ipod.c
deleted file mode 100644
index ee7bfcb501..0000000000
--- a/plugins/ipod-sync/ipod.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * ipod.c - Find an iPod mount point using HAL
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- * Copyright (C) 2004 Justin Wake <jwake@iinet.net.au>
- *
- */
-
-#include "config.h"
-#include "evolution-ipod-sync.h"
-#include <unistd.h>
-#include <string.h>
-
-/**
- * Ensure that HAL is running before we try to use it.
- * From gnome-volume-manager's src/properties.c
- */
-gboolean
-check_hal (void)
-{
- LibHalContext *ctx;
- gchar **devices;
- gint num;
- DBusConnection *conn;
-
- conn = dbus_bus_get (DBUS_BUS_SYSTEM, NULL);
-
- ctx = libhal_ctx_new ();
- libhal_ctx_set_dbus_connection (ctx, conn);
- if (!libhal_ctx_init(ctx, NULL))
- return FALSE;
- devices = libhal_get_all_devices (ctx, &num, NULL);
- if (!devices)
- {
- libhal_ctx_shutdown (ctx, NULL);
- return FALSE;
- }
- libhal_free_string_array (devices);
-
- libhal_ctx_shutdown (ctx, NULL);
- return TRUE;
-}
-
-#define MOUNT "/bin/mount"
-#define UMOUNT "/bin/umount"
-
-/**
- * Try to mount a given device.
- */
-static gboolean
-try_mount (gchar *device)
-{
- gchar *argv[3];
- GError *err = NULL;
- gint exit_status;
-
- argv[0] = (gchar *)MOUNT;
- argv[1] = device;
- argv[2] = NULL;
-
- if (!g_spawn_sync (g_get_home_dir (), argv, NULL, 0, NULL, NULL, NULL,
- NULL, &exit_status, &err))
- {
- g_warning ("try_mount failed: %s", err->message);
- return FALSE;
- }
-
- return (exit_status == 0);
-}
-
-/**
- * Try to unmount a given device.
- */
-gboolean
-try_umount (gchar *device)
-{
- gchar *argv[3];
- GError *err = NULL;
- gint exit_status;
-
- argv[0] = (gchar *)UMOUNT;
- argv[1] = device;
- argv[2] = NULL;
-
- sync ();
-
- if (!g_spawn_sync (g_get_home_dir (), argv, NULL, 0, NULL, NULL, NULL,
- NULL, &exit_status, &err))
- {
- g_warning ("try_umount failed: %s", err->message);
- return FALSE;
- }
-
- return (exit_status == 0);
-}
-
-/**
- * See if a given mount point contains an iPod.
- *
- * Do this by checking for the presence of an iTunes
- * database at <mount_point>/iPod_Control/iTunes/.
- */
-static gboolean
-is_ipod (gchar *mount_point)
-{
- gboolean ret = FALSE;
-
- gchar *itunes_path;
-
- itunes_path = g_build_path (G_DIR_SEPARATOR_S, mount_point,
- "iPod_Control", "iTunes",
- NULL);
-
- if (!g_file_test (itunes_path, G_FILE_TEST_IS_DIR))
- goto out;
-
- ret = TRUE;
-
-out:
- g_free (itunes_path);
- return ret;
-}
-
-/**
- * Try to find a mount point for an iPod.
- */
-gchar *
-find_ipod_mount_point (LibHalContext *ctx)
-{
- gchar **apple_devices = NULL;
- gchar **volumes = NULL;
- gchar *udi, *udi2, *device, *fsusage, *mount_point = NULL;
- gchar *retval = NULL;
- gint apple_count = 0;
- gint volume_count = 0;
- gint has_fs = 0;
- gint i, j;
-
- /* First, we look for things made by Apple. */
- apple_devices = libhal_manager_find_device_string_match (ctx,
- "info.vendor",
- "Apple",
- &apple_count,
- NULL);
-
- for (i = 0; i < apple_count; i++)
- {
- udi = apple_devices[i];
-
- volumes = NULL;
- volumes = libhal_manager_find_device_string_match (ctx,
- "info.parent",
- udi,
- &volume_count,
- NULL);
-
- for (j = 0; j < volume_count; j++)
- {
- udi2 = volumes[j];
-
- /* Only interested if it has a filesystem. */
- has_fs = 0;
-
- if (!libhal_device_property_exists (ctx, udi2,
- "volume.is_filesystem", NULL) ||
- !libhal_device_get_property_bool (ctx, udi2,
- "volume.is_filesystem", NULL))
- {
- has_fs = 1;
- }
-
- fsusage = libhal_device_get_property_string (ctx, udi2,
- "volume.fsusage", NULL);
-
- if (fsusage == NULL)
- continue;
-
- if (strncmp (fsusage, "filesystem", 10) == 0)
- {
- has_fs = 1;
- }
-
- libhal_free_string (fsusage);
-
- if (has_fs == 0)
- continue;
-
- device = libhal_device_get_property_string (ctx, udi2,
- "block.device", NULL);
-
- /* Let's see if it's mounted. */
- if (!libhal_device_property_exists (ctx, udi2,
- "volume.is_mounted", NULL) ||
- !libhal_device_get_property_bool (ctx, udi2,
- "volume.is_mounted", NULL))
- {
- /* It isn't, so let's attempt to mount it */
- if (device != NULL)
- {
- try_mount (device);
- }
- }
-
- if (!libhal_device_property_exists (ctx, udi2,
- "volume.mount_point", NULL))
- {
- libhal_free_string (device);
- continue;
- }
-
- libhal_free_string (device);
-
- mount_point = libhal_device_get_property_string (ctx, udi2,
- "volume.mount_point", NULL);
-
- if (is_ipod (mount_point))
- {
- goto out;
- }
-
- libhal_free_string (mount_point);
- mount_point = NULL;
- }
- }
-
-out:
- if (volumes != NULL)
- libhal_free_string_array (volumes);
-
- if (apple_devices != NULL)
- libhal_free_string_array (apple_devices);
-
- if (mount_point != NULL)
- {
- retval = g_strdup (mount_point);
- libhal_free_string (mount_point);
- }
-
- return (retval);
-}