## GSound Attributes GSound Attributes — Attributes recognized by GSound |

## Types and Values

#define | GSOUND_ATTR_MEDIA_NAME
#define | GSOUND_ATTR_MEDIA_TITLE
#define | GSOUND_ATTR_MEDIA_ARTIST
#define | GSOUND_ATTR_MEDIA_LANGUAGE
#define | GSOUND_ATTR_MEDIA_FILENAME
#define | GSOUND_ATTR_MEDIA_ICON
#define | GSOUND_ATTR_MEDIA_ICON_NAME
#define | GSOUND_ATTR_MEDIA_ROLE
#define | GSOUND_ATTR_EVENT_ID
#define | GSOUND_ATTR_EVENT_DESCRIPTION
#define | GSOUND_ATTR_EVENT_MOUSE_X
#define | GSOUND_ATTR_EVENT_MOUSE_Y
#define | GSOUND_ATTR_EVENT_MOUSE_HPOS
#define | GSOUND_ATTR_EVENT_MOUSE_VPOS
#define | GSOUND_ATTR_EVENT_MOUSE_BUTTON
#define | GSOUND_ATTR_WINDOW_NAME
#define | GSOUND_ATTR_WINDOW_ID
#define | GSOUND_ATTR_WINDOW_ICON
#define | GSOUND_ATTR_WINDOW_ICON_NAME
#define | GSOUND_ATTR_WINDOW_X
#define | GSOUND_ATTR_WINDOW_Y
#define | GSOUND_ATTR_WINDOW_WIDTH
#define | GSOUND_ATTR_WINDOW_HEIGHT
#define | GSOUND_ATTR_WINDOW_HPOS
#define | GSOUND_ATTR_WINDOW_VPOS
#define | GSOUND_ATTR_WINDOW_DESKTOP
#define | GSOUND_ATTR_WINDOW_X11_DISPLAY
#define | GSOUND_ATTR_WINDOW_X11_SCREEN
#define | GSOUND_ATTR_WINDOW_X11_MONITOR
#define | GSOUND_ATTR_WINDOW_X11_XID
#define | GSOUND_ATTR_APPLICATION_NAME
#define | GSOUND_ATTR_APPLICATION_ID
#define | GSOUND_ATTR_APPLICATION_VERSION
#define | GSOUND_ATTR_APPLICATION_ICON
#define | GSOUND_ATTR_APPLICATION_ICON_NAME
#define | GSOUND_ATTR_APPLICATION_LANGUAGE
#define | GSOUND_ATTR_APPLICATION_PROCESS_ID
#define | GSOUND_ATTR_APPLICATION_PROCESS_BINARY
#define | GSOUND_ATTR_APPLICATION_PROCESS_USER
#define | GSOUND_ATTR_APPLICATION_PROCESS_HOST
#define | GSOUND_ATTR_CANBERRA_CACHE_CONTROL
#define | GSOUND_ATTR_CANBERRA_VOLUME
#define | GSOUND_ATTR_CANBERRA_XDG_THEME_NAME
#define | GSOUND_ATTR_CANBERRA_XDG_THEME_OUTPUT_PROFILE
#define | GSOUND_ATTR_CANBERRA_ENABLE
#define | GSOUND_ATTR_CANBERRA_FORCE_CHANNEL

## Description

Attributes which can be applied to a GSoundContext or passed to one of the ``play()`` or ``cache()`` methods.

## Functions

## Types and Values

### GSOUND_ATTR_MEDIA_NAME

    #define GSOUND_ATTR_MEDIA_NAME                         "media.name"

A name describing the media being played. Localized if possible and applicable.

### GSOUND_ATTR_MEDIA_TITLE

    #define GSOUND_ATTR_MEDIA_TITLE                        "media.title"

A (song) title describing the media being played. Localized if possible and applicable.

### GSOUND_ATTR_MEDIA_ARTIST

    #define GSOUND_ATTR_MEDIA_ARTIST                       "media.artist"

The artist of this media. Localized if possible and applicable.

### GSOUND_ATTR_MEDIA_LANGUAGE

    #define GSOUND_ATTR_MEDIA_LANGUAGE                     "media.language"

The language this media is in, in some standard POSIX locale string, such as "de_DE".

### GSOUND_ATTR_MEDIA_FILENAME

    #define GSOUND_ATTR_MEDIA_FILENAME                     "media.filename"

The file name this media was or can be loaded from.

### GSOUND_ATTR_MEDIA_ICON

    #define GSOUND_ATTR_MEDIA_ICON                         "media.icon"

An icon for this media in binary PNG format.

### GSOUND_ATTR_MEDIA_ICON_NAME

    #define GSOUND_ATTR_MEDIA_ICON_NAME                    "media.icon_name"

An icon name as defined in the XDG icon naming specifcation.

### GSOUND_ATTR_MEDIA_ROLE

    #define GSOUND_ATTR_MEDIA_ROLE                         "media.role"

The "role" this media is played in. For event sounds the string "event". For other cases strings like "music", "video", "game", ...

### GSOUND_ATTR_EVENT_ID

    #define GSOUND_ATTR_EVENT_ID                           "event.id"

A textual id for an event sound, as mandated by the XDG sound naming specification.

### GSOUND_ATTR_EVENT_DESCRIPTION

    #define GSOUND_ATTR_EVENT_DESCRIPTION                  "event.description"

A descriptive string for the sound event. Localized if possible and applicable.

### GSOUND_ATTR_EVENT_MOUSE_X

    #define GSOUND_ATTR_EVENT_MOUSE_X                      "event.mouse.x"

If this sound event was triggered by a mouse input event, the X position of the mouse cursor on the screen, formatted as string.

### GSOUND_ATTR_EVENT_MOUSE_Y

    #define GSOUND_ATTR_EVENT_MOUSE_Y                      "event.mouse.y"

If this sound event was triggered by a mouse input event, the Y position of the mouse cursor on the screen, formatted as string.

### GSOUND_ATTR_EVENT_MOUSE_HPOS

    #define GSOUND_ATTR_EVENT_MOUSE_HPOS                   "event.mouse.hpos"

If this sound event was triggered by a mouse input event, the X position of the mouse cursor as fractional value between 0 and 1, formatted as string, 0 reflecting the left side of the screen, 1 the right side.

### GSOUND_ATTR_EVENT_MOUSE_VPOS

    #define GSOUND_ATTR_EVENT_MOUSE_VPOS                   "event.mouse.vpos"

If this sound event was triggered by a mouse input event, the Y position of the mouse cursor as fractional value between 0 and 1, formatted as string, 0 reflecting the top end of the screen, 1 the bottom end.

### GSOUND_ATTR_EVENT_MOUSE_BUTTON

    #define GSOUND_ATTR_EVENT_MOUSE_BUTTON                 "event.mouse.button"

If this sound event was triggered by a mouse input event, the number of the mouse button that triggered it, formatted as string. 1 for left mouse button, 3 for right, 2 for middle.

### GSOUND_ATTR_WINDOW_NAME

    #define GSOUND_ATTR_WINDOW_NAME                        "window.name"

If this sound event was triggered by a window on the screen, the name of this window as human readable string.

### GSOUND_ATTR_WINDOW_ID

    #define GSOUND_ATTR_WINDOW_ID                          "window.id"

If this sound event was triggered by a window on the screen, some identification string for this window, so that the sound system can recognize specific windows.

### GSOUND_ATTR_WINDOW_ICON

    #define GSOUND_ATTR_WINDOW_ICON                        "window.icon"

If this sound event was triggered by a window on the screen, binary icon data in PNG format for this window.

### GSOUND_ATTR_WINDOW_ICON_NAME

    #define GSOUND_ATTR_WINDOW_ICON_NAME                   "window.icon_name"

If this sound event was triggered by a window on the screen, an icon name for this window, as defined in the XDG icon naming specification.

### GSOUND_ATTR_WINDOW_X

    #define GSOUND_ATTR_WINDOW_X                           "window.x"

If this sound event was triggered by a window on the screen, the X position of the window measured from the top left corner of the screen to the top left corner of the window.

### GSOUND_ATTR_WINDOW_Y

    #define GSOUND_ATTR_WINDOW_Y                           "window.y"

If this sound event was triggered by a window on the screen, the y position of the window measured from the top left corner of the screen to the top left corner of the window.

### GSOUND_ATTR_WINDOW_WIDTH

    #define GSOUND_ATTR_WINDOW_WIDTH                       "window.width"

If this sound event was triggered by a window on the screen, the pixel width of the window.

### GSOUND_ATTR_WINDOW_HEIGHT

    #define GSOUND_ATTR_WINDOW_HEIGHT                      "window.height"

If this sound event was triggered by a window on the screen, the pixel height of the window.

### GSOUND_ATTR_WINDOW_HPOS

    #define GSOUND_ATTR_WINDOW_HPOS                        "window.hpos"

If this sound event was triggered by a window on the screen, the X position of the center of the window as fractional value between 0 and 1, formatted as string, 0 reflecting the left side of the screen, 1 the right side.

### GSOUND_ATTR_WINDOW_VPOS

    #define GSOUND_ATTR_WINDOW_VPOS                        "window.vpos"

If this sound event was triggered by a window on the screen, the Y position of the center of the window as fractional value between 0 and 1, formatted as string, 0 reflecting the top side of the screen, 1 the bottom side.

### GSOUND_ATTR_WINDOW_DESKTOP

    #define GSOUND_ATTR_WINDOW_DESKTOP                    "window.desktop"

If this sound event was triggered by a window on the screen and the windowing system supports multiple desktops, a comma seperated list of indexes of the desktops this window is visible on. If this attribute is an empty string, it is visible on all desktops (i.e. 'sticky'). The first desktop is 0. (e.g. "0,2,3")

### GSOUND_ATTR_WINDOW_X11_DISPLAY

    #define GSOUND_ATTR_WINDOW_X11_DISPLAY                 "window.x11.display"

If this sound event was triggered by a window on the screen and the windowing system is X11, the X display name of the window (e.g. ":0").

### GSOUND_ATTR_WINDOW_X11_SCREEN

    #define GSOUND_ATTR_WINDOW_X11_SCREEN                  "window.x11.screen"

If this sound event was triggered by a window on the screen and the windowing system is X11, the X screen id of the window formatted as string (e.g. "0").

### GSOUND_ATTR_WINDOW_X11_MONITOR

    #define GSOUND_ATTR_WINDOW_X11_MONITOR                 "window.x11.monitor"

If this sound event was triggered by a window on the screen and the windowing system is X11, the X monitor id of the window formatted as string (e.g. "0").

### GSOUND_ATTR_WINDOW_X11_XID

    #define GSOUND_ATTR_WINDOW_X11_XID                     "window.x11.xid"

If this sound event was triggered by a window on the screen and the windowing system is X11, the XID of the window formatted as string.

### GSOUND_ATTR_APPLICATION_NAME

    #define GSOUND_ATTR_APPLICATION_NAME                   "application.name"

The name of the application this sound event was triggered by as human readable string. (e.g. "GNU Emacs") Localized if possible and applicable.

> This attribute will automatically be added to the GSoundContext if it has previously been set with `g_set_application_name()`, so you normally do not need to supply this yourself.

### GSOUND_ATTR_APPLICATION_ID

    #define GSOUND_ATTR_APPLICATION_ID                     "application.id"

An identifier for the program this sound event was triggered by. (e.g. "org.gnu.emacs").

> This attribute will automatically be added to the GSoundContext with the “application-id” if you are using GApplication, so you normally do not need to supply this yourself.

### GSOUND_ATTR_APPLICATION_VERSION

    #define GSOUND_ATTR_APPLICATION_VERSION                "application.version"

A version number for the program this sound event was triggered by. (e.g. "22.2")

### GSOUND_ATTR_APPLICATION_ICON

    #define GSOUND_ATTR_APPLICATION_ICON                   "application.icon"

Binary icon data in PNG format for the application this sound event is triggered by.

### GSOUND_ATTR_APPLICATION_ICON_NAME

    #define GSOUND_ATTR_APPLICATION_ICON_NAME              "application.icon_name"

An icon name for the application this sound event is triggered by, as defined in the XDG icon naming specification.

### GSOUND_ATTR_APPLICATION_LANGUAGE

    #define GSOUND_ATTR_APPLICATION_LANGUAGE               "application.language"

The locale string the application that is triggering this sound event is running in. A POSIX locale string such as de_DE`euro` .

### GSOUND_ATTR_APPLICATION_PROCESS_ID

    #define GSOUND_ATTR_APPLICATION_PROCESS_ID             "application.process.id"

The unix PID of the process that is triggering this sound event, formatted as string.

### GSOUND_ATTR_APPLICATION_PROCESS_BINARY

    #define GSOUND_ATTR_APPLICATION_PROCESS_BINARY         "application.process.binary"

The path to the process binary of the process that is triggering this sound event.

### GSOUND_ATTR_APPLICATION_PROCESS_USER

    #define GSOUND_ATTR_APPLICATION_PROCESS_USER           "application.process.user"

The user that owns the process that is triggering this sound event.

### GSOUND_ATTR_APPLICATION_PROCESS_HOST

    #define GSOUND_ATTR_APPLICATION_PROCESS_HOST           "application.process.host"

The host name of the host the process that is triggering this sound event runs on.

### GSOUND_ATTR_CANBERRA_CACHE_CONTROL

    #define GSOUND_ATTR_CANBERRA_CACHE_CONTROL             "canberra.cache-control"

A special attribute that can be used to control the automatic sound caching of sounds in the sound server. One of "permanent", "volatile", "never". "permanent" will cause this sample to be cached in the server permanently. This is useful for very frequently used sound events such as those used for input feedback. "volatile" may be used for cacheing sounds in the sound server temporarily. They will expire after some time or on cache pressure. Finally, "never" may be used for sounds that should never be cached, because they are only generated very seldomly or even only once at most (such as desktop login sounds).

If this attribute is not explicitly passed to `gsound_context_play_simple()` or `gsound_context_play_full()` it will default to "never". If it is not explicitly passed to `gsound_context_cache()` it will default to "permanent".

If the list of attributes is handed on to the sound server this attribute is stripped from it.

### GSOUND_ATTR_CANBERRA_VOLUME

    #define GSOUND_ATTR_CANBERRA_VOLUME                    "canberra.volume"

A special attribute that can be used to control the volume this sound event is played in if the backend supports it. A floating point value for the decibel multiplier for the sound. 0 dB relates to zero gain, and is the default volume these sounds are played in.

If the list of attributes is handed on to the sound server this attribute is stripped from it.

### GSOUND_ATTR_CANBERRA_XDG_THEME_NAME

    #define GSOUND_ATTR_CANBERRA_XDG_THEME_NAME            "canberra.xdg-theme.name"

A special attribute that can be used to control the XDG sound theme that is used for this sample.

If the list of attributes is handed on to the sound server this attribute is stripped from it.

### GSOUND_ATTR_CANBERRA_XDG_THEME_OUTPUT_PROFILE

    #define GSOUND_ATTR_CANBERRA_XDG_THEME_OUTPUT_PROFILE  "canberra.xdg-theme.output-profile"

A special attribute that can be used to control the XDG sound theme output profile that is used for this sample.

If the list of attributes is handed on to the sound server this attribute is stripped from it.

### GSOUND_ATTR_CANBERRA_ENABLE

    #define GSOUND_ATTR_CANBERRA_ENABLE                    "canberra.enable"

A special attribute that can be used to control whether any sounds are played at all. If this attribute is "1" or unset sounds are played as normal. However, if it is "0" all calls to `gsound_context_play_simple()` or ``play_full()`` will fail with GSOUND_ERROR_DISABLED.

If the list of attributes is handed on to the sound server this attribute is stripped from it.

### GSOUND_ATTR_CANBERRA_FORCE_CHANNEL

    #define GSOUND_ATTR_CANBERRA_FORCE_CHANNEL            "canberra.force_channel"

A special attribute that can be used to control on which channel a sound is played. The value should be one of mono, front-left, front-right, front-center, rear-left, rear-right, rear-center, lfe, front-left-of-center, front-right-of-center, side-left, side-right, top-center, top-front-left, top-front-right, top-front-center, top-rear-left, top-rear-right, top-rear-center. This attribute is only honoured by some backends, other backends may choose to ignore it completely.

If the list of attributes is handed on to the sound server this attribute is stripped from it.

## See Also

GSoundContext