AgsFile

AgsFile — read/write XML file

Synopsis

#include <ags/file/ags_file.h>

#define             AGS_FILE_CHECKSUM_LENGTH
#define             AGS_FILE_DEFAULT_AUDIO_ENCODING
#define             AGS_FILE_DEFAULT_AUDIO_FORMAT
#define             AGS_FILE_DEFAULT_DTD
#define             AGS_FILE_DEFAULT_ENCODING
struct              AgsFile;
struct              AgsFileClass;
enum                AgsFileFlags;
void                ags_file_add_id_ref                 (AgsFile *file,
                                                         GObject *id_ref);
void                ags_file_add_launch                 (AgsFile *file,
                                                         GObject *file_launch);
void                ags_file_add_lookup                 (AgsFile *file,
                                                         GObject *file_lookup);
void                ags_file_close                      (AgsFile *file);
GObject *           ags_file_find_id_ref_by_node        (AgsFile *file,
                                                         xmlNode *node);
GObject *           ags_file_find_id_ref_by_reference   (AgsFile *file,
                                                         gpointer ref);
GObject *           ags_file_find_id_ref_by_xpath       (AgsFile *file,
                                                         gchar *xpath);
AgsFile *           ags_file_new                        ();
void                ags_file_open                       (AgsFile *file);
void                ags_file_open_filename              (AgsFile *file,
                                                         gchar *filename);
void                ags_file_open_from_data             (AgsFile *file,
                                                         gchar *data,
                                                         guint length);
void                ags_file_read                       (AgsFile *file);
void                ags_file_read_main                  (AgsFile *file,
                                                         xmlNode *node,
                                                         GObject **main);
void                ags_file_read_resolve               (AgsFile *file);
void                ags_file_read_server                (AgsFile *file,
                                                         xmlNode *node,
                                                         GObject **server);
void                ags_file_read_start                 (AgsFile *file);
void                ags_file_rw_open                    (AgsFile *file,
                                                         gboolean create);
gchar *             ags_file_str2md5                    (gchar *content,
                                                         guint strlen);
void                ags_file_write                      (AgsFile *file);
void                ags_file_write_concurrent           (AgsFile *file);
void                ags_file_write_main                 (AgsFile *file,
                                                         xmlNode *parent,
                                                         GObject *main);
void                ags_file_write_resolve              (AgsFile *file);
void                ags_file_write_server               (AgsFile *file,
                                                         xmlNode *parent,
                                                         GObject *server);

Description

The AgsFile is an object to read or write files using XML. It is the persisting layer of Advanced Gtk+ Sequencer.

Details

AGS_FILE_CHECKSUM_LENGTH

#define AGS_FILE_CHECKSUM_LENGTH (g_checksum_type_get_length(G_CHECKSUM_MD5))

AGS_FILE_DEFAULT_AUDIO_ENCODING

#define AGS_FILE_DEFAULT_AUDIO_ENCODING "base64\0"

AGS_FILE_DEFAULT_AUDIO_FORMAT

#define AGS_FILE_DEFAULT_AUDIO_FORMAT "raw\0"

AGS_FILE_DEFAULT_DTD

#define AGS_FILE_DEFAULT_DTD "ags_file.dtd\0"

AGS_FILE_DEFAULT_ENCODING

#define AGS_FILE_DEFAULT_ENCODING "UTF-8\0"

struct AgsFile

struct AgsFile {
  GObject object;

  guint flags;

  FILE *out;
  xmlChar *buffer;

  gchar *filename;
  gchar *encoding;
  gchar *dtd;

  gchar *audio_format;
  gchar *audio_encoding;

  xmlDoc *doc;
  xmlNode *root_node;

  GList *id_refs;
  GList *lookup;
  GList *launch;

  GObject *ags_main;

  GObject *clipboard;
  GList *property;
  GList *script;
  GObject *cluster;
  GObject *client;
  GObject *server;

  GObject *history;

  GList *embedded_audio;
  GList *file_link;
};

struct AgsFileClass

struct AgsFileClass {
  GObjectClass object;

  void (*open)(AgsFile *file);
  void (*open_from_data)(AgsFile *file,
			 gchar *data, guint length);
  void (*rw_open)(AgsFile *file,
		  gboolean create);

  void (*write)(AgsFile *file);
  void (*write_concurrent)(AgsFile *file);
  void (*write_resolve)(AgsFile *file);

  void (*read)(AgsFile *file);
  void (*read_resolve)(AgsFile *file);
  void (*read_start)(AgsFile *file);
};

enum AgsFileFlags

typedef enum {
  AGS_FILE_READ                    = 1,
  AGS_FILE_READ_AUDIO_SIGNAL       = 1 << 1,
  AGS_FILE_READ_EMBEDDED_AUDIO     = 1 << 2,
  AGS_FILE_WRITE                   = 1 << 3,
  AGS_FILE_WRITE_AUDIO_SIGNAL      = 1 << 4,
  AGS_FILE_WRITE_EMBEDDED_AUDIO    = 1 << 5,
} AgsFileFlags;

ags_file_add_id_ref ()

void                ags_file_add_id_ref                 (AgsFile *file,
                                                         GObject *id_ref);

ags_file_add_launch ()

void                ags_file_add_launch                 (AgsFile *file,
                                                         GObject *file_launch);

ags_file_add_lookup ()

void                ags_file_add_lookup                 (AgsFile *file,
                                                         GObject *file_lookup);

ags_file_close ()

void                ags_file_close                      (AgsFile *file);

ags_file_find_id_ref_by_node ()

GObject *           ags_file_find_id_ref_by_node        (AgsFile *file,
                                                         xmlNode *node);

ags_file_find_id_ref_by_reference ()

GObject *           ags_file_find_id_ref_by_reference   (AgsFile *file,
                                                         gpointer ref);

ags_file_find_id_ref_by_xpath ()

GObject *           ags_file_find_id_ref_by_xpath       (AgsFile *file,
                                                         gchar *xpath);

ags_file_new ()

AgsFile *           ags_file_new                        ();

Creates an AgsFile

Returns :

a new AgsFile

Since 0.3


ags_file_open ()

void                ags_file_open                       (AgsFile *file);

ags_file_open_filename ()

void                ags_file_open_filename              (AgsFile *file,
                                                         gchar *filename);

ags_file_open_from_data ()

void                ags_file_open_from_data             (AgsFile *file,
                                                         gchar *data,
                                                         guint length);

ags_file_read ()

void                ags_file_read                       (AgsFile *file);

ags_file_read_main ()

void                ags_file_read_main                  (AgsFile *file,
                                                         xmlNode *node,
                                                         GObject **main);

ags_file_read_resolve ()

void                ags_file_read_resolve               (AgsFile *file);

ags_file_read_server ()

void                ags_file_read_server                (AgsFile *file,
                                                         xmlNode *node,
                                                         GObject **server);

ags_file_read_start ()

void                ags_file_read_start                 (AgsFile *file);

ags_file_rw_open ()

void                ags_file_rw_open                    (AgsFile *file,
                                                         gboolean create);

ags_file_str2md5 ()

gchar *             ags_file_str2md5                    (gchar *content,
                                                         guint strlen);

ags_file_write ()

void                ags_file_write                      (AgsFile *file);

ags_file_write_concurrent ()

void                ags_file_write_concurrent           (AgsFile *file);

ags_file_write_main ()

void                ags_file_write_main                 (AgsFile *file,
                                                         xmlNode *parent,
                                                         GObject *main);

ags_file_write_resolve ()

void                ags_file_write_resolve              (AgsFile *file);

ags_file_write_server ()

void                ags_file_write_server               (AgsFile *file,
                                                         xmlNode *parent,
                                                         GObject *server);