mcs-common

mcs-common — common MCS utility functions and types

Synopsis




                    McsBuffer;
                    McsColor;
                    McsList;
                    McsChannel;
                    McsChannelList;
                    McsSetting;
enum                McsType;
enum                McsResult;
enum                McsManagerCheck;
McsManagerCheck     mcs_manager_check_running           (Display *display,
                                                         int screen);
McsSetting*         mcs_setting_copy                    (McsSetting *setting);
void                mcs_setting_free                    (McsSetting *setting);
int                 mcs_setting_equal                   (McsSetting *setting_a,
                                                         McsSetting *setting_b);
void                mcs_list_free                       (McsList *list);
McsList*            mcs_list_copy                       (McsList *list);
McsResult           mcs_list_insert                     (McsList **list,
                                                         McsSetting *setting);
McsSetting*         mcs_list_lookup                     (McsList *list,
                                                         const gchar *name);
McsResult           mcs_list_delete                     (McsList **list,
                                                         const gchar *name);
gchar               mcs_byte_order                      (void);
#define             MCS_PAD                             (n,m)

Description

Details

McsBuffer

typedef struct {
        gchar byte_order;
        size_t len;
        guchar *data;
        guchar *pos;
} McsBuffer;

A data storage buffer.

gchar byte_order;

The btye ordering of data in the buffer.

size_t len;

The length of data in the buffer.

guchar *data;

A pointer to the data in the buffer.

guchar *pos;

FIXME

McsColor

typedef struct {
        guint16 red, green, blue, alpha;
} McsColor;

A structure representing a color value.

guint16 red;

The color's red component.

guint16 green;

The color's green component.

guint16 blue;

The color's blue component.

guint16 alpha;

The color's alpha (transparency) value.

McsList

typedef struct {
        McsSetting *setting;
        McsList *next;
} McsList;

A singly-linked list structure containing McsSetting structs.

McsSetting *setting;

The McsSetting in this list node.

McsList *next;

A pointer to the next node in the list.

McsChannel

typedef struct {
        gchar *channel_name;
        Atom channel_atom;
        McsList *settings;
        gboolean raw;
        int ref_count;
} McsChannel;

A representation of a settings channel.

gchar *channel_name;

The name of the channel.

Atom channel_atom;

FIXME

McsList *settings;

A list of settings in the channel.

gboolean raw;

int ref_count;

A reference count.

McsChannelList

typedef struct {
        McsChannel *channel;
        McsChannelList *next;
} McsChannelList;

A singly-linked list structure containing McsChannel structs.

McsChannel *channel;

The McsChannel in this list node.

McsChannelList *next;

A pointer to the next node in the list.

McsSetting

typedef struct {
        gchar *name;
        gchar *channel_name;
        McsType type;

        union
        {
            int v_int;
            gchar *v_string;
            McsColor v_color;
} McsSetting;

A structure representing a setting controlled by the MCS manager.

gchar *name;

The name of the setting.

gchar *channel_name;

The channel to which the setting belongs.

McsType type;

The McsType of the setting.

enum McsType

    typedef enum
    {
        MCS_TYPE_INT = 0,
        MCS_TYPE_STRING = 1,
        MCS_TYPE_COLOR = 2
    }
    McsType;

An enumerated type for MCS settings types.

MCS_TYPE_INT

The setting is an integer value.

MCS_TYPE_STRING

The setting is a string value.

MCS_TYPE_COLOR

The setting is an McsColor value.

enum McsResult

    typedef enum
    {
        MCS_SUCCESS,
        MCS_NO_MEM,
        MCS_ACCESS,
        MCS_FAILED,
        MCS_NO_ENTRY,
        MCS_DUPLICATE_ENTRY,
        MCS_NO_CHANNEL
    }
    McsResult;

An enumerated type for detailing error conditions from MCS functions.

MCS_SUCCESS

The command commpleted successfully.

MCS_NO_MEM

The command failed due to an out-of-memory condition.

MCS_ACCESS

The command failed because you do not have the proper access privileges.

MCS_FAILED

The command failed for an unknown or generic reason.

MCS_NO_ENTRY

The command failed because no entry was found matching what you specified.

MCS_DUPLICATE_ENTRY

The command failed because an entry of that name already exists.

MCS_NO_CHANNEL

The command failed because the channel specified does not exist.

enum McsManagerCheck

    typedef enum
    {
        MCS_MANAGER_NONE,
        MCS_MANAGER_STD,
        MCS_MANAGER_MULTI_CHANNEL,
        MCS_MANAGER_BOTH
    }
    McsManagerCheck;

An enumerated type detailing what kind of MCS manager is running.

MCS_MANAGER_NONE

No MCS manager is running.

MCS_MANAGER_STD

A standard MCS manager is running.

MCS_MANAGER_MULTI_CHANNEL

A multi-channel MCS manager is running.

MCS_MANAGER_BOTH

An MCS manager that supports both single- and multi-channel access is running.

mcs_manager_check_running ()

McsManagerCheck     mcs_manager_check_running           (Display *display,
                                                         int screen);

Checks to see if there is an MCS manager running on display and screen.

display :

The X display on which the MCS manager may be running.

screen :

The X screen on which the MCS manager may be running.

Returns :

An McsManagerCheck value describing what kind of MCS manager (if any) is running.

mcs_setting_copy ()

McsSetting*         mcs_setting_copy                    (McsSetting *setting);

Makes a copy of setting. You should free the result with mcs_setting_free() when it is no longer needed.

setting :

An existing McsSetting.

Returns :

A new McsSetting, initialised to the value of setting.

mcs_setting_free ()

void                mcs_setting_free                    (McsSetting *setting);

Frees all resources associated with setting.

setting :

An McsSetting.

mcs_setting_equal ()

int                 mcs_setting_equal                   (McsSetting *setting_a,
                                                         McsSetting *setting_b);

Checks to see if setting_a and setting_b represent the same setting data.

setting_a :

An McsSetting.

setting_b :

An McsSetting.

Returns :

1 if the two settings are the same, 0 otherwise.

mcs_list_free ()

void                mcs_list_free                       (McsList *list);

Frees all memory associated with list.

list :

An McsList.

mcs_list_copy ()

McsList*            mcs_list_copy                       (McsList *list);

Makes a copy of list. You should free the result with mcs_list_free() when it is no longer needed.

list :

An existing McsList.

Returns :

A new McsList, initialised to the contents of list.

mcs_list_insert ()

McsResult           mcs_list_insert                     (McsList **list,
                                                         McsSetting *setting);

Inserts setting into list, updating the list pointer if necessary.

list :

A pointer to an existing McsList.

setting :

An McsSetting to insert into the list.

Returns :

MCS_SUCCESS if the item was successfully inserted.

mcs_list_lookup ()

McsSetting*         mcs_list_lookup                     (McsList *list,
                                                         const gchar *name);

Looks for a setting with name name in the McsList.

list :

An McsList.

name :

The name of a setting.

Returns :

The corresponding McsSetting, or NULL if the setting was not found.

mcs_list_delete ()

McsResult           mcs_list_delete                     (McsList **list,
                                                         const gchar *name);

Deletes the McsSetting with name name from list, adjusting the list pointer if necessary.

list :

A pointer to an existing McsList.

name :

The name of the item to delete.

Returns :

MCS_SUCCESS on success.

mcs_byte_order ()

gchar               mcs_byte_order                      (void);

Gets the byte ordering for this system.

Returns :

Either LSBFirst or MSBFirst.

MCS_PAD()

#define MCS_PAD(n,m) ((n + m - 1) & (~(m-1)))

n :

m :