## AgsPulseClient

AgsPulseClient — pulseaudio connection

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_PULSE_CLIENT_GET_OBJ_MUTEX()
gboolean | ags_pulse_client_test_flags ()
void | ags_pulse_client_set_flags ()
void | ags_pulse_client_unset_flags ()
GList * | ags_pulse_client_find_uuid ()
GList * | ags_pulse_client_find ()
void | ags_pulse_client_open ()
void | ags_pulse_client_close ()
void | ags_pulse_client_add_device ()
void | ags_pulse_client_remove_device ()
void | ags_pulse_client_add_port ()
void | ags_pulse_client_remove_port ()
void | ags_pulse_client_activate ()
void | ags_pulse_client_deactivate ()
AgsPulseClient * | ags_pulse_client_new ()

## Properties

char * | client-name | Read / Write
gpointer | device | Read / Write
gpointer | port | Read / Write
AgsPulseServer * | pulse-server | Read / Write

## Types and Values

enum | AgsPulseClientFlags

## Object Hierarchy

        GFlags
        ╰── AgsPulseClientFlags
        GObject
        ╰── AgsPulseClient

## Includes

    #include <ags/audio/pulse/ags_pulse_client.h>

## Description

The AgsPulseClient communicates with a pulseaudio instance.

## Functions

### AGS_PULSE_CLIENT_GET_OBJ_MUTEX()

    #define AGS_PULSE_CLIENT_GET_OBJ_MUTEX(obj) (&(((AgsPulseClient *) obj)->obj_mutex))

### ags_pulse_client_test_flags ()

    gboolean
    ags_pulse_client_test_flags (AgsPulseClient *pulse_client,
                                 AgsPulseClientFlags flags);

Test `flags` to be set on `pulse_client` .

#### Parameters

pulse_client | the AgsPulseClient |
flags | the flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_pulse_client_set_flags ()

    void
    ags_pulse_client_set_flags (AgsPulseClient *pulse_client,
                                AgsPulseClientFlags flags);

Enable a feature of `pulse_client` .

#### Parameters

pulse_client | the AgsPulseClient |
flags | see AgsPulseClientFlags |

Since: 3.0.0

### ags_pulse_client_unset_flags ()

    void
    ags_pulse_client_unset_flags (AgsPulseClient *pulse_client,
                                  AgsPulseClientFlags flags);

Disable a feature of `pulse_client` .

#### Parameters

pulse_client | the AgsPulseClient |
flags | see AgsPulseClientFlags |

Since: 3.0.0

### ags_pulse_client_find_uuid ()

    GList *
    ags_pulse_client_find_uuid (GList *pulse_client,
                                gchar *client_uuid);

Finds next match of `client_uuid` in `pulse_client` .

#### Parameters

pulse_client | the GList containing AgsPulseClient. | [element-type AgsAudio.PulseClient][transfer none]
client_uuid | the client uuid to find |

#### Returns

the next matching GList or `NULL`.

[element-type AgsAudio.PulseClient][transfer none]

Since: 3.0.0

### ags_pulse_client_find ()

    GList *
    ags_pulse_client_find (GList *pulse_client,
                           gchar *client_name);

Finds next match of `client_name` in `pulse_client` .

#### Parameters

pulse_client | the GList containing AgsPulseClient. | [element-type AgsAudio.PulseClient][transfer none]
client_name | the client name to find |

#### Returns

the next matching GList or `NULL`.

[element-type AgsAudio.PulseClient][transfer none]

Since: 3.0.0

### ags_pulse_client_open ()

    void
    ags_pulse_client_open (AgsPulseClient *pulse_client,
                           gchar *client_name);

Open the pulseaudio client's connection and read uuid.

#### Parameters

pulse_client | the AgsPulseClient |
client_name | the client's name |

Since: 3.0.0

### ags_pulse_client_close ()

    void
    ags_pulse_client_close (AgsPulseClient *pulse_client);

Close the pulseaudio client's connection.

#### Parameters

pulse_client | the AgsPulseClient |

Since: 3.0.0

### ags_pulse_client_add_device ()

    void
    ags_pulse_client_add_device (AgsPulseClient *pulse_client,
                                 GObject *pulse_device);

Add `pulse_device` to `pulse_client` .

#### Parameters

pulse_client | the AgsPulseClient |
pulse_device | an AgsPulseDevout or AgsPulseDevin |

Since: 3.0.0

### ags_pulse_client_remove_device ()

    void
    ags_pulse_client_remove_device (AgsPulseClient *pulse_client,
                                    GObject *pulse_device);

Remove `pulse_device` from `pulse_client` .

#### Parameters

pulse_client | the AgsPulseClient |
pulse_device | an AgsPulseDevout or AgsPulseDevin |

Since: 3.0.0

### ags_pulse_client_add_port ()

    void
    ags_pulse_client_add_port (AgsPulseClient *pulse_client,
                               GObject *pulse_port);

Add `pulse_port` to `pulse_client` .

#### Parameters

pulse_client | the AgsPulseClient |
pulse_port | an AgsPulsePort |

Since: 3.0.0

### ags_pulse_client_remove_port ()

    void
    ags_pulse_client_remove_port (AgsPulseClient *pulse_client,
                                  GObject *pulse_port);

Remove `pulse_port` from `pulse_client` .

#### Parameters

pulse_client | the AgsPulseClient |
pulse_port | an AgsPulsePort |

Since: 3.0.0

### ags_pulse_client_activate ()

    void
    ags_pulse_client_activate (AgsPulseClient *pulse_client);

Activate client.

#### Parameters

pulse_client | the AgsPulseClient |

Since: 3.0.0

### ags_pulse_client_deactivate ()

    void
    ags_pulse_client_deactivate (AgsPulseClient *pulse_client);

Deactivate client.

#### Parameters

pulse_client | the AgsPulseClient |

Since: 3.0.0

### ags_pulse_client_new ()

    AgsPulseClient *
    ags_pulse_client_new (GObject *pulse_server);

Create a new instance of AgsPulseClient.

#### Parameters

pulse_server | the assigned AgsPulseServer |

#### Returns

the new AgsPulseClient

Since: 3.0.0

## Types and Values

### enum AgsPulseClientFlags

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

#### Members

AGS_PULSE_CLIENT_ACTIVATED | the client was activated |
AGS_PULSE_CLIENT_READY | the client is ready |

## Property Details

### The `“client-name”` property

      “client-name”              char *

The pulseaudio client name.

Owner: AgsPulseClient

Flags: Read / Write

Default value: NULL

Since: 3.0.0

### The `“device”` property

      “device”                   gpointer

The assigned devices.

[transfer full]

Owner: AgsPulseClient

Flags: Read / Write

Since: 3.0.0

### The `“port”` property

      “port”                     gpointer

The assigned ports.

[transfer full]

Owner: AgsPulseClient

Flags: Read / Write

Since: 3.0.0

### The `“pulse-server”` property

      “pulse-server”             AgsPulseServer *

The assigned AgsPulseServer.

Owner: AgsPulseClient

Flags: Read / Write

Since: 3.0.0