#ifndef __EGG_FILE_FORMAT_H__
#define __EGG_FILE_FORMAT_H__

#include <glib-object.h>

G_BEGIN_DECLS

#define EGG_TYPE_FILE_FORMAT           (egg_file_format_get_type())
#define EGG_FILE_FORMAT(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, EGG_TYPE_FILE_FORMAT, EggFileFormat))
#define EGG_FILE_FORMAT_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, EGG_TYPE_FILE_FORMAT, EggFileFormatClass))
#define EGG_IS_FILE_FORMAT(obj)        (G_TYPE_CHECK_INSTANCE_TYPE(obj, EGG_TYPE_FILE_FORMAT))
#define EGG_IS_FILE_FORMAT_CLASS(obj)  (G_TYPE_CHECK_CLASS_TYPE(obj, EGG_TYPE_FILE_FORMAT))
#define EGG_FILE_FORMAT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EGG_TYPE_FILE_FORMAT, EggFileFormatClass))

typedef struct _EggFileFormat        EggFileFormat;
typedef struct _EggFileFormatClass   EggFileFormatClass;
typedef struct _EggFileFormatPrivate EggFileFormatPrivate;

struct _EggFileFormat
{
  GObject parent;
  EggFileFormatPrivate *priv;
};

struct _EggFileFormatClass
{
  GObjectClass parent;
};

GType              egg_file_format_get_type       (void) G_GNUC_CONST;
EggFileFormat*     egg_file_format_new            (const gchar *name,
                                                   const gchar *first_extension,
                                                   ...) G_GNUC_NULL_TERMINATED;

void               egg_file_format_set_name       (EggFileFormat *format,
                                                   const gchar   *name);
const gchar*       egg_file_format_get_name       (EggFileFormat *format);

void               egg_file_format_set_extensions (EggFileFormat *format,
                                                   const gchar *first_extension,
                                                   ...) G_GNUC_NULL_TERMINATED;
const GValueArray* egg_file_format_get_extensions (EggFileFormat *format);

G_END_DECLS

#endif /* __EGG_FILE_FORMAT_H__ */ 

/* vim: set sw=2 sta et: */
