krähemann.com

AgsFile

AgsFile — read/write XML file

Properties

gchar * audio-encoding Read / Write
gchar * audio-format Read / Write
gchar * encoding Read / Write
gchar * filename Read / Write
gpointer xml-doc Read / Write

Signals

void open Run Last
void open-from-data Run Last
void read Run Last
void read-resolve Run Last
void read-start Run Last
void rw-open Run Last
void write Run Last
void write-concurrent Run Last
void write-resolve Run Last

Object Hierarchy

    GObject
    ╰── AgsFile

Includes

#include <ags/file/ags_file.h>

Description

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

Functions

AGS_FILE_GET_OBJ_MUTEX()

#define AGS_FILE_GET_OBJ_MUTEX(obj) (&(((AgsFile *) obj)->obj_mutex))

ags_file_str2md5 ()

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

Compute MD5 sums of a buffer.

Parameters

content

the string buffer

 

content_length

the length of the string

 

Returns

the md5 checksum.

[transfer full]

Since: 3.0.0


ags_file_add_id_ref ()

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

Adds id_ref to file .

Parameters

file

the AgsFile

 

id_ref

a reference

 

Since: 3.0.0


ags_file_find_id_ref_by_node ()

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

Find a reference by its XML node.

Parameters

file

the AgsFile

 

node

a XML node

 

Returns

the matching GObject.

[transfer full]

Since: 3.0.0


ags_file_find_id_ref_by_xpath ()

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

Lookup a reference by xpath .

Parameters

file

the AgsFile

 

xpath

a XPath expression

 

Returns

the matching GObject.

[transfer full]

Since: 3.0.0


ags_file_find_id_ref_by_reference ()

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

Find a reference matching ref .

Parameters

file

the AgsFile

 

ref

a gpointer

 

Returns

the matching GObject.

[transfer full]

Since: 3.0.0


ags_file_add_lookup ()

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

Add file_lookup for later invoking.

Parameters

file

the AgsFile

 

file_lookup

a AgsFileLookup

 

Since: 3.0.0


ags_file_add_launch ()

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

Add file_launch for later invoking.

Parameters

file

the AgsFile

 

file_launch

a AgsFileLaunch

 

Since: 3.0.0


ags_file_open ()

void
ags_file_open (AgsFile *file,
               GError **error);

Opens the file specified by :filename property.

Parameters

file

the AgsFile

 

error

the return location for errors

 

Since: 3.0.0


ags_file_open_from_data ()

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

Opens the file provided by data .

Parameters

file

the AgsFile

 

data

a buffer containing the XML document

 

length

the buffer length

 

error

the return location for errors

 

Since: 3.0.0


ags_file_rw_open ()

void
ags_file_rw_open (AgsFile *file,
                  gboolean create,
                  GError **error);

Opens the file specified by :filename property in read-write mode.

Parameters

file

the AgsFile

 

create

if TRUE create the file as needed

 

error

the return location for errors

 

Since: 3.0.0


ags_file_open_filename ()

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

Opens the file specified by filename property.

Parameters

file

the AgsFile

 

filename

a path

 

Since: 3.0.0


ags_file_close ()

void
ags_file_close (AgsFile *file);

Closes file .

Parameters

file

the AgsFile

 

Since: 3.0.0


ags_file_write ()

void
ags_file_write (AgsFile *file);

Write the XML document to disk.

Parameters

file

the AgsFile

 

Since: 3.0.0


ags_file_write_concurrent ()

void
ags_file_write_concurrent (AgsFile *file);

ags_file_write_resolve ()

void
ags_file_write_resolve (AgsFile *file);

Resolve references to XPath expressions.

Parameters

file

the AgsFile

 

Since: 3.0.0


ags_file_read ()

void
ags_file_read (AgsFile *file);

Read XML document from disk.

Parameters

file

the AgsFile

 

Since: 3.0.0


ags_file_read_resolve ()

void
ags_file_read_resolve (AgsFile *file);

ags_file_read_start ()

void
ags_file_read_start (AgsFile *file);

Update or start the application.

Parameters

file

the AgsFile

 

Since: 3.0.0


ags_file_read_config ()

void
ags_file_read_config (AgsFile *file,
                      xmlNode *node,
                      GObject **ags_config);

ags_file_write_config ()

void
ags_file_write_config (AgsFile *file,
                       xmlNode *parent,
                       GObject *ags_config);

ags_file_read_application_context ()

void
ags_file_read_application_context (AgsFile *file,
                                   xmlNode *node,
                                   GObject **application_context);

ags_file_write_application_context ()

void
ags_file_write_application_context (AgsFile *file,
                                    xmlNode *parent,
                                    GObject *application_context);

ags_file_new ()

AgsFile *
ags_file_new ();

Creates an AgsFile

Returns

a new AgsFile

Since: 3.0.0


AGS_FILE()

#define AGS_FILE(obj)                (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_FILE, AgsFile))

AGS_FILE_CLASS()

#define AGS_FILE_CLASS(class)        (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_FILE, AgsFileClass))

AGS_FILE_GET_CLASS()

#define AGS_FILE_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), AGS_TYPE_FILE, AgsFileClass))

AGS_IS_FILE()

#define AGS_IS_FILE(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), AGS_TYPE_FILE))

AGS_IS_FILE_CLASS()

#define AGS_IS_FILE_CLASS(class)     (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_FILE))

ags_file_get_type ()

GType
ags_file_get_type (void);

Types and Values

AGS_FILE_DEFAULT_ENCODING

#define AGS_FILE_DEFAULT_ENCODING "UTF-8"

AGS_FILE_DEFAULT_DTD

#define AGS_FILE_DEFAULT_DTD "ags_file.dtd"

AGS_FILE_CHECKSUM_LENGTH

#define AGS_FILE_CHECKSUM_LENGTH (32)

AGS_FILE_DEFAULT_AUDIO_FORMAT

#define AGS_FILE_DEFAULT_AUDIO_FORMAT "raw"

AGS_FILE_DEFAULT_AUDIO_ENCODING

#define AGS_FILE_DEFAULT_AUDIO_ENCODING "base64"

enum AgsFileFlags

Enum values to control the behavior or indicate internal state of AgsFile by enable/disable as flags.

Members

AGS_FILE_READ

opened file for reading

 

AGS_FILE_READ_AUDIO_SIGNAL

read audio signal

 

AGS_FILE_READ_EMBEDDED_AUDIO

read embedded audio data

 

AGS_FILE_WRITE

opened file for writing

 

AGS_FILE_WRITE_AUDIO_SIGNAL

write audio signal

 

AGS_FILE_WRITE_EMBEDDED_AUDIO

write embedded audio data

 

AGS_FILE_ERROR

#define AGS_FILE_ERROR (ags_file_error_quark())

enum AgsFileError

Enum values to indicated failures to used with GError.

Members

AGS_FILE_ERROR_PARSER_FAILURE

the parser failed

 

AGS_TYPE_FILE

#define AGS_TYPE_FILE                (ags_file_get_type())

struct AgsFile

struct AgsFile;

struct AgsFileClass

struct AgsFileClass {
  GObjectClass gobject;

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

  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);
};

Property Details

The “audio-encoding” property

  “audio-encoding”           gchar *

The encoding to use for embedding audio data.

Owner: AgsFile

Flags: Read / Write

Default value: "base64"

Since: 3.0.0


The “audio-format” property

  “audio-format”             gchar *

The format of embedded audio data.

Owner: AgsFile

Flags: Read / Write

Default value: "raw"

Since: 3.0.0


The “encoding” property

  “encoding”                 gchar *

The charset encoding to use.

Owner: AgsFile

Flags: Read / Write

Default value: NULL

Since: 3.0.0


The “filename” property

  “filename”                 gchar *

The assigned filename to open and read from.

Owner: AgsFile

Flags: Read / Write

Default value: NULL

Since: 3.0.0


The “xml-doc” property

  “xml-doc”                  gpointer

The assigned xml-doc.

Owner: AgsFile

Flags: Read / Write

Since: 3.0.0

Signal Details

The “open” signal

void
user_function (AgsFile *file,
               gpointer error,
               gpointer user_data)

Open file with appropriate filename.

Parameters

file

the AgsFile

 

error

a GError pointer to return error

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0


The “open-from-data” signal

void
user_function (AgsFile *file,
               gchar   *data,
               guint    length,
               gpointer error,
               gpointer user_data)

Open file from a buffer containing the file.

Parameters

file

the AgsFile

 

data

the buffer containing the file

 

length

the buffer length

 

error

a GError pointer to return error

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0


The “read” signal

void
user_function (AgsFile *file,
               gpointer user_data)

Read a XML document from disk with specified filename.

Parameters

file

the AgsFile

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0


The “read-resolve” signal

void
user_function (AgsFile *file,
               gpointer user_data)

Resolve XPath expressions to their counterpart the newly created instances refering to.

Parameters

file

the AgsFile

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0


The “read-start” signal

void
user_function (AgsFile *file,
               gpointer user_data)

Hook after reading XML document to update or start the application.

Parameters

file

the AgsFile

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0


The “rw-open” signal

void
user_function (AgsFile *agsfile,
               gboolean arg1,
               gpointer arg2,
               gpointer user_data)

Flags: Run Last


The “write” signal

void
user_function (AgsFile *file,
               gpointer user_data)

Write XML Document to disk.

Parameters

file

the AgsFile

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0


The “write-concurrent” signal

void
user_function (AgsFile *agsfile,
               gpointer user_data)

Flags: Run Last


The “write-resolve” signal

void
user_function (AgsFile *file,
               gpointer user_data)

Resolve references and generate thus XPath expressions just before writing to disk.

Parameters

file

the AgsFile

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0