[maemo-commits] [maemo-commits] r11695 - projects/haf/trunk/hildon-fm/hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed May 16 17:09:58 EEST 2007
- Previous message: [maemo-commits] r11694 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r11696 - projects/haf/trunk/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2007-05-16 17:09:52 +0300 (Wed, 16 May 2007) New Revision: 11695 Added: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.c projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.h projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.c projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.h Modified: projects/haf/trunk/hildon-fm/hildon-fm/Makefile.am Log: * hildon-fm/hildon-file-system-root.c, hildon-fm/hildon-file-system-root.h, hildon-fm/hildon-file-system-voldev.h, hildon-fm/hildon-file-system-voldev.c: New. * hildon-fm/Makefile.am (libhildonfm_la_SOURCES): Added them. Modified: projects/haf/trunk/hildon-fm/hildon-fm/Makefile.am =================================================================== --- projects/haf/trunk/hildon-fm/hildon-fm/Makefile.am 2007-05-16 14:06:50 UTC (rev 11694) +++ projects/haf/trunk/hildon-fm/hildon-fm/Makefile.am 2007-05-16 14:09:52 UTC (rev 11695) @@ -1,5 +1,5 @@ INCLUDES = $(GTK_CFLAGS) $(GCONF_CFLAGS) $(HILDON_THUMBNAIL_CFLAGS) \ - $(GWCONNECT_CFLAGS) $(DBUSGLIB_CFLAGS) \ + $(GWCONNECT_CFLAGS) $(DBUSGLIB_CFLAGS) $(GNOMEVFS_CFLAGS) \ $(LIBOSSO_CFLAGS) \ $(MCE_CFLAGS) -DLOCALEDIR=\"$(localedir)\" \ $(LIBOSSOMIME_CFLAGS) -I$(srcdir)/.. \ @@ -14,7 +14,7 @@ EXTRA_DIST = libhildonfm_la_LIBADD = $(GTK_LIBS) $(GCONF_LIBS) $(HILDON_THUMBNAIL_LIBS) \ - $(GWCONNECT_LIBS) $(DBUSGLIB_LIBS) $(LIBOSSOMIME_LIBS) + $(GWCONNECT_LIBS) $(DBUSGLIB_LIBS) $(LIBOSSOMIME_LIBS) $(GNOMEVFS_LIBS) libhildonfm_la_LDFLAGS = -version-info 2:0:0 libhildonfm_la_SOURCES = \ @@ -36,6 +36,8 @@ hildon-file-details-dialog.c \ hildon-file-system-special-location.h \ hildon-file-system-special-location.c \ + hildon-file-system-root.h \ + hildon-file-system-root.c \ hildon-file-system-local-device.h \ hildon-file-system-local-device.c \ hildon-file-system-remote-device.h \ @@ -52,6 +54,8 @@ hildon-file-system-obex.c \ hildon-file-system-smb.h \ hildon-file-system-smb.c \ + hildon-file-system-voldev.h \ + hildon-file-system-voldev.c \ hildon-fm1-compat.h \ hildon-fm1-compat.c \ $(hildonfm_built_headers) \ @@ -67,6 +71,11 @@ hildon-file-details-dialog.h \ hildon-fm1-compat.h +noinst_PROGRAMS = t +t_SOURCES = t.c +t_CFLAGS = $(GTK_CFLAGS) $(GNOMEVFS_CFLAGS) +t_LDFLAGS = $(GTK_LIBS) $(GNOMEVFS_LIBS) + headers_to_scan_for_enums = $(hildonincludeinst_DATA) # Generate the enums source code, with glib-mkenums: Added: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.c =================================================================== --- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.c 2007-05-16 14:06:50 UTC (rev 11694) +++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.c 2007-05-16 14:09:52 UTC (rev 11695) @@ -0,0 +1,293 @@ +/* + * This file is part of hildon-fm package + * + * Copyright (C) 2006 Nokia Corporation. All rights reserved. + * + * Contact: Marius Vollmer <marius.vollmer at nokia.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include <string.h> +#include <glib.h> +#define GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED +#include <gtk/gtkfilesystem.h> + +#include "hildon-file-common-private.h" +#include "hildon-file-system-private.h" +#include "hildon-file-system-root.h" +#include "hildon-file-system-mmc.h" +#include "hildon-file-system-voldev.h" +#include "hildon-file-system-settings.h" + +static void +hildon_file_system_root_class_init (HildonFileSystemRootClass *klass); +static void +hildon_file_system_root_init (HildonFileSystemRoot *device); + +static void +hildon_file_system_root_volumes_changed (HildonFileSystemSpecialLocation + *location, GtkFileSystem *fs); + +static GtkFileSystemHandle * +hildon_file_system_root_get_folder (HildonFileSystemSpecialLocation *location, + GtkFileSystem *filesystem, + const GtkFilePath *path, + GtkFileInfoType types, + GtkFileSystemGetFolderCallback callback, + gpointer data); + +static HildonFileSystemSpecialLocation* +hildon_file_system_root_create_child_location (HildonFileSystemSpecialLocation + *location, gchar *uri); + +G_DEFINE_TYPE (HildonFileSystemRoot, + hildon_file_system_root, + HILDON_TYPE_FILE_SYSTEM_SPECIAL_LOCATION); + +static void +hildon_file_system_root_class_init (HildonFileSystemRootClass *klass) +{ + HildonFileSystemSpecialLocationClass *location = + HILDON_FILE_SYSTEM_SPECIAL_LOCATION_CLASS (klass); + + location->volumes_changed = hildon_file_system_root_volumes_changed; + location->get_folder = hildon_file_system_root_get_folder; + location->create_child_location = + hildon_file_system_root_create_child_location; +} + +static void +hildon_file_system_root_init (HildonFileSystemRoot *device) +{ +} + +static void +hildon_file_system_root_volumes_changed (HildonFileSystemSpecialLocation + *location, GtkFileSystem *fs) +{ + g_signal_emit_by_name (location, "rescan"); +} + +HildonFileSystemSpecialLocation* +hildon_file_system_root_create_child_location (HildonFileSystemSpecialLocation + *location, gchar *uri) +{ + HildonFileSystemSpecialLocation *child = NULL; + + if (g_str_has_prefix (uri, "drive://") + || (g_str_has_prefix (uri, "file:///media/") + && strchr (uri + 14, '/') == NULL)) + { + child = g_object_new (HILDON_TYPE_FILE_SYSTEM_VOLDEV, NULL); + child->basepath = g_strdup (uri); + } + + return child; +} + +/* Wrapping GtkFileVolumes in a GtkFileFolder + */ + +#define ROOT_TYPE_FILE_FOLDER (root_file_folder_get_type ()) +#define ROOT_FILE_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ROOT_TYPE_FILE_FOLDER, RootFileFolder)) +#define ROOT_IS_FILE_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ROOT_TYPE_FILE_FOLDER)) +#define ROOT_FILE_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ROOT_TYPE_FILE_FOLDER, RootFileFolderClass)) +#define ROOT_IS_FILE_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ROOT_TYPE_FILE_FOLDER)) +#define ROOT_FILE_FOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ROOT_TYPE_FILE_FOLDER, RootFileFolderClass)) + +typedef struct _RootFileFolder RootFileFolder; +typedef struct _RootFileFolderClass RootFileFolderClass; + +struct _RootFileFolderClass +{ + GObjectClass parent_class; +}; + +struct _RootFileFolder +{ + GObject parent_instance; + + GtkFileSystem *filesystem; + HildonFileSystemRoot *root; +}; + +static GType root_file_folder_get_type (void); +static void root_file_folder_iface_init (GtkFileFolderIface *iface); +static void root_file_folder_init (RootFileFolder *impl); +static void root_file_folder_finalize (GObject *object); + +static GtkFileInfo *root_file_folder_get_info (GtkFileFolder *folder, + const GtkFilePath *path, + GError **error); +static gboolean root_file_folder_list_children (GtkFileFolder *folder, + GSList **children, + GError **error); +static gboolean root_file_folder_is_finished_loading (GtkFileFolder *folder); + +G_DEFINE_TYPE_WITH_CODE (RootFileFolder, root_file_folder, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (GTK_TYPE_FILE_FOLDER, + root_file_folder_iface_init)) + +static void +root_file_folder_class_init (RootFileFolderClass *class) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (class); + + gobject_class->finalize = root_file_folder_finalize; +} + +static void +root_file_folder_iface_init (GtkFileFolderIface *iface) +{ + iface->get_info = root_file_folder_get_info; + iface->list_children = root_file_folder_list_children; + iface->is_finished_loading = root_file_folder_is_finished_loading; +} + +static void +root_file_folder_init (RootFileFolder *folder) +{ + folder->filesystem = NULL; + folder->root = NULL; +} + +static void +root_file_folder_finalize (GObject *object) +{ + RootFileFolder *folder = ROOT_FILE_FOLDER (object); + + if (folder->root) + g_object_unref (folder->root); + + G_OBJECT_CLASS (root_file_folder_parent_class)->finalize (object); +} + +static GtkFileInfo * +root_file_folder_get_info (GtkFileFolder *folder, + const GtkFilePath *path, + GError **error) +{ + GtkFileInfo *info; + + /* XXX - maybe provide more detail... + */ + + info = gtk_file_info_new (); + gtk_file_info_set_display_name (info, + g_basename + (gtk_file_path_get_string (path))); + gtk_file_info_set_is_folder (info, TRUE); + return info; +} + +static gboolean +root_file_folder_list_children (GtkFileFolder *folder, + GSList **children, + GError **error) +{ + RootFileFolder *root_folder = ROOT_FILE_FOLDER (folder); + GtkFileSystem *fs = root_folder->filesystem; + + GnomeVFSVolumeMonitor *monitor; + GList *volumes, *v, *drives, *d; + + monitor = gnome_vfs_get_volume_monitor (); + + *children = NULL; + + volumes = gnome_vfs_volume_monitor_get_mounted_volumes (monitor); + for (v = volumes; v; v = v->next) + { + GnomeVFSVolume *volume = v->data; + + if (gnome_vfs_volume_is_user_visible (volume)) + { + const char *uri = gnome_vfs_volume_get_activation_uri (volume); + *children = g_slist_append (*children, + gtk_file_system_uri_to_path (fs, uri)); + } + } + g_list_free (volumes); + + drives = gnome_vfs_volume_monitor_get_connected_drives (monitor); + for (d = drives; d; d = d->next) + { + GnomeVFSDrive *drive = d->data; + + if (gnome_vfs_drive_is_user_visible (drive)) + { + char *uri = + g_strdup_printf ("drive://%s", + gnome_vfs_drive_get_device_path (drive)); + *children = g_slist_append (*children, + gtk_file_system_uri_to_path (fs, uri)); + g_free (uri); + } + } + g_list_free (drives); + + return TRUE; +} + +static gboolean +root_file_folder_is_finished_loading (GtkFileFolder *folder) +{ + return TRUE; +} + +struct get_folder_clos { + GtkFileSystemHandle *handle; + RootFileFolder *root_folder; + GtkFileSystemGetFolderCallback callback; + gpointer data; +}; + +static gboolean +deliver_get_folder_callback (gpointer data) +{ + struct get_folder_clos *clos = (struct get_folder_clos *)data; + clos->callback (clos->handle, GTK_FILE_FOLDER (clos->root_folder), + NULL, clos->data); + g_free (clos); + return FALSE; +} + +static GtkFileSystemHandle * +hildon_file_system_root_get_folder (HildonFileSystemSpecialLocation *location, + GtkFileSystem *filesystem, + const GtkFilePath *path, + GtkFileInfoType types, + GtkFileSystemGetFolderCallback callback, + gpointer data) +{ + GtkFileSystemHandle *handle = g_object_new (GTK_TYPE_FILE_SYSTEM_HANDLE, + NULL); + RootFileFolder *root_folder = g_object_new (ROOT_TYPE_FILE_FOLDER, NULL); + struct get_folder_clos *clos = g_new (struct get_folder_clos, 1); + + root_folder->filesystem = filesystem; + root_folder->root = HILDON_FILE_SYSTEM_ROOT (location); + g_object_ref (location); + + clos->handle = handle; + clos->root_folder = root_folder; + clos->callback = callback; + clos->data = data; + + g_idle_add (deliver_get_folder_callback, clos); + return handle; +} Added: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.h =================================================================== --- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.h 2007-05-16 14:06:50 UTC (rev 11694) +++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-root.h 2007-05-16 14:09:52 UTC (rev 11695) @@ -0,0 +1,57 @@ +/* + * This file is part of hildon-fm package + * + * Copyright (C) 2007 Nokia Corporation. All rights reserved. + * + * Contact: Marius Vollmer <marius.vollmer at nokia.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef HILDON_FILE_SYSTEM_ROOT_H__ +#define HILDON_FILE_SYSTEM_ROOT_H__ + +#include "hildon-file-system-special-location.h" + +G_BEGIN_DECLS + +#define HILDON_TYPE_FILE_SYSTEM_ROOT (hildon_file_system_root_get_type ()) +#define HILDON_FILE_SYSTEM_ROOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), HILDON_TYPE_FILE_SYSTEM_ROOT, HildonFileSystemRoot)) +#define HILDON_FILE_SYSTEM_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HILDON_TYPE_FILE_SYSTEM_ROOT, HildonFileSystemRootClass)) +#define HILDON_IS_FILE_SYSTEM_ROOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HILDON_TYPE_FILE_SYSTEM_ROOT)) +#define HILDON_IS_FILE_SYSTEM_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HILDON_TYPE_FILE_SYSTEM_ROOT)) +#define HILDON_FILE_SYSTEM_ROOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), HILDON_TYPE_FILE_SYSTEM_ROOT, HildonFileSystemRootClass)) + + +typedef struct _HildonFileSystemRoot HildonFileSystemRoot; +typedef struct _HildonFileSystemRootClass HildonFileSystemRootClass; +typedef struct _HildonFileSystemRootPrivate HildonFileSystemRootPrivate; + +struct _HildonFileSystemRoot +{ + HildonFileSystemSpecialLocation parent_instance; +}; + +struct _HildonFileSystemRootClass +{ + HildonFileSystemSpecialLocationClass parent_class; +}; + +GType hildon_file_system_root_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif Added: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.c =================================================================== --- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.c 2007-05-16 14:06:50 UTC (rev 11694) +++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.c 2007-05-16 14:09:52 UTC (rev 11695) @@ -0,0 +1,193 @@ +/* + * This file is part of hildon-fm package + * + * Copyright (C) 2007 Nokia Corporation. All rights reserved. + * + * Contact: Marius Vollmer <marius.vollmer at nokia.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include <glib.h> +#include <string.h> + +#include "hildon-file-system-voldev.h" +#include "hildon-file-system-settings.h" +#include "hildon-file-system-dynamic-device.h" +#include "hildon-file-common-private.h" +#include "hildon-file-system-private.h" + +static void +hildon_file_system_voldev_class_init (HildonFileSystemVoldevClass *klass); +static void +hildon_file_system_voldev_finalize (GObject *obj); +static void +hildon_file_system_voldev_init (HildonFileSystemVoldev *device); + +static gboolean +hildon_file_system_voldev_is_visible (HildonFileSystemSpecialLocation *location); + +static void +hildon_file_system_voldev_volumes_changed (HildonFileSystemSpecialLocation + *location, GtkFileSystem *fs); + +G_DEFINE_TYPE (HildonFileSystemVoldev, + hildon_file_system_voldev, + HILDON_TYPE_FILE_SYSTEM_SPECIAL_LOCATION); + +static void +hildon_file_system_voldev_class_init (HildonFileSystemVoldevClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + HildonFileSystemSpecialLocationClass *location = + HILDON_FILE_SYSTEM_SPECIAL_LOCATION_CLASS (klass); + + gobject_class->finalize = hildon_file_system_voldev_finalize; + + location->requires_access = FALSE; + location->is_visible = hildon_file_system_voldev_is_visible; + location->volumes_changed = hildon_file_system_voldev_volumes_changed; +} + +static void +hildon_file_system_voldev_init (HildonFileSystemVoldev *device) +{ + HildonFileSystemSpecialLocation *location; + + location = HILDON_FILE_SYSTEM_SPECIAL_LOCATION (device); + location->compatibility_type = HILDON_FILE_SYSTEM_MODEL_MMC; + location->failed_access_message = NULL; +} + +static void +hildon_file_system_voldev_finalize (GObject *obj) +{ + HildonFileSystemVoldev *voldev; + + voldev = HILDON_FILE_SYSTEM_VOLDEV (obj); + + if (voldev->volume) + gnome_vfs_volume_unref (voldev->volume); + if (voldev->drive) + gnome_vfs_drive_unref (voldev->drive); + + G_OBJECT_CLASS (hildon_file_system_voldev_parent_class)->finalize (obj); +} + +static gboolean +hildon_file_system_voldev_is_visible (HildonFileSystemSpecialLocation *location) +{ + HildonFileSystemVoldev *voldev = HILDON_FILE_SYSTEM_VOLDEV (location); + gboolean visible = FALSE; + + if (voldev->volume) + visible = gnome_vfs_volume_is_mounted (voldev->volume); + else if (voldev->drive) + visible = (gnome_vfs_drive_is_connected (voldev->drive) + && !gnome_vfs_drive_is_mounted (voldev->drive)); + + return visible; +} + +static GnomeVFSDrive * +find_drive (const char *device) +{ + GnomeVFSVolumeMonitor *monitor; + GList *drives, *d; + GnomeVFSDrive *drive = NULL; + + monitor = gnome_vfs_get_volume_monitor (); + + drives = gnome_vfs_volume_monitor_get_connected_drives (monitor); + for (d = drives; d; d = d->next) + { + GnomeVFSDrive *dr = d->data; + + if (!strcmp (device, gnome_vfs_drive_get_device_path (dr))) + { + drive = dr; + break; + } + } + g_list_free (drives); + + if (drive) + gnome_vfs_drive_ref (drive); + + return drive; +} + +static GnomeVFSVolume * +find_volume (const char *uri) +{ + GnomeVFSVolumeMonitor *monitor; + GList *volumes, *v; + GnomeVFSVolume *volume = NULL; + + monitor = gnome_vfs_get_volume_monitor (); + + volumes = gnome_vfs_volume_monitor_get_mounted_volumes (monitor); + for (v = volumes; v; v = v->next) + { + GnomeVFSVolume *vo = v->data; + + if (!strcmp (uri, gnome_vfs_volume_get_activation_uri (vo))) + { + volume = vo; + break; + } + } + g_list_free (volumes); + + if (volume) + gnome_vfs_volume_ref (volume); + + return volume; +} + +static void +hildon_file_system_voldev_volumes_changed (HildonFileSystemSpecialLocation + *location, GtkFileSystem *fs) +{ + HildonFileSystemVoldev *voldev = HILDON_FILE_SYSTEM_VOLDEV (location); + + if (voldev->volume) + gnome_vfs_volume_unref (voldev->volume); + if (voldev->drive) + gnome_vfs_drive_unref (voldev->drive); + + if (g_str_has_prefix (location->basepath, "drive://")) + voldev->drive = find_drive (location->basepath + 8); + else + voldev->volume = find_volume (location->basepath); + + if (voldev->volume) + { + location->fixed_title = + gnome_vfs_volume_get_display_name (voldev->volume); + location->fixed_icon = gnome_vfs_volume_get_icon (voldev->volume); + } + else if (voldev->drive) + { + location->fixed_title = gnome_vfs_drive_get_display_name (voldev->drive); + location->fixed_icon = gnome_vfs_drive_get_icon (voldev->drive); + } + + /* XXX */ + location->fixed_icon = "qgn_list_filesys_mmc_root"; + + g_signal_emit_by_name (location, "changed"); +} Added: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.h =================================================================== --- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.h 2007-05-16 14:06:50 UTC (rev 11694) +++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-voldev.h 2007-05-16 14:09:52 UTC (rev 11695) @@ -0,0 +1,61 @@ +/* + * This file is part of hildon-fm package + * + * Copyright (C) 2007 Nokia Corporation. All rights reserved. + * + * Contact: Marius Vollmer <marius.vollmer at nokia.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef HILDON_FILE_SYSTEM_VOLDEV_H_ +#define HILDON_FILE_SYSTEM_VOLDEV_H_ + +#include "hildon-file-system-remote-device.h" + +#include <libgnomevfs/gnome-vfs.h> + +G_BEGIN_DECLS + +#define HILDON_TYPE_FILE_SYSTEM_VOLDEV (hildon_file_system_voldev_get_type ()) +#define HILDON_FILE_SYSTEM_VOLDEV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), HILDON_TYPE_FILE_SYSTEM_VOLDEV, HildonFileSystemVoldev)) +#define HILDON_FILE_SYSTEM_VOLDEV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HILDON_TYPE_FILE_SYSTEM_VOLDEV, HildonFileSystemVoldevClass)) +#define HILDON_IS_FILE_SYSTEM_VOLDEV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HILDON_TYPE_FILE_SYSTEM_VOLDEV)) +#define HILDON_IS_FILE_SYSTEM_VOLDEV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HILDON_TYPE_FILE_SYSTEM_VOLDEV)) +#define HILDON_FILE_SYSTEM_VOLDEV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), HILDON_TYPE_FILE_SYSTEM_VOLDEV, HildonFileSystemVoldevClass)) + + +typedef struct _HildonFileSystemVoldev HildonFileSystemVoldev; +typedef struct _HildonFileSystemVoldevClass HildonFileSystemVoldevClass; + + +struct _HildonFileSystemVoldev +{ + HildonFileSystemSpecialLocation parent_instance; + GnomeVFSVolume *volume; + GnomeVFSDrive *drive; +}; + +struct _HildonFileSystemVoldevClass +{ + HildonFileSystemRemoteDeviceClass parent_class; +}; + +GType hildon_file_system_voldev_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif
- Previous message: [maemo-commits] r11694 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r11696 - projects/haf/trunk/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]