## AgsPulsePort

AgsPulsePort — pulseaudio resource.

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_PULSE_PORT_GET_OBJ_MUTEX()
gboolean | ags_pulse_port_test_flags ()
void | ags_pulse_port_set_flags ()
void | ags_pulse_port_unset_flags ()
GList * | ags_pulse_port_find ()
void | ags_pulse_port_register ()
void | ags_pulse_port_unregister ()
guint | ags_pulse_port_get_fixed_size ()
void | ags_pulse_port_set_samplerate ()
void | ags_pulse_port_set_pcm_channels ()
void | ags_pulse_port_set_buffer_size ()
void | ags_pulse_port_set_format ()
void | ags_pulse_port_set_cache_buffer_size ()
guint | ags_pulse_port_get_latency ()
AgsPulsePort * | ags_pulse_port_new ()

## Properties

char * | port-name | Read / Write
AgsPulseClient * | pulse-client | Read / Write
AgsPulseDevin * | pulse-devin | Read / Write
AgsPulseDevout * | pulse-devout | Read / Write

## Types and Values

#define | AGS_PULSE_PORT_DEFAULT_CACHE_COUNT
#define | AGS_PULSE_PORT_DEFAULT_CACHE_BUFFER_SIZE
enum | AgsPulsePortFlags

## Object Hierarchy

        GFlags
        ╰── AgsPulsePortFlags
        GObject
        ╰── AgsPulsePort

## Includes

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

## Description

The AgsPulsePort represents either a pulseaudio sequencer or soundcard to communicate with.

## Functions

### AGS_PULSE_PORT_GET_OBJ_MUTEX()

    #define AGS_PULSE_PORT_GET_OBJ_MUTEX(obj) (&(((AgsPulsePort *) obj)->obj_mutex))

### ags_pulse_port_test_flags ()

    gboolean
    ags_pulse_port_test_flags (AgsPulsePort *pulse_port,
                               guint flags);

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

#### Parameters

pulse_port | the AgsPulsePort |
flags | the flags |

#### Returns

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

Since: 3.0.0

### ags_pulse_port_set_flags ()

    void
    ags_pulse_port_set_flags (AgsPulsePort *pulse_port,
                              guint flags);

Enable a feature of `pulse_port` .

#### Parameters

pulse_port | the AgsPulsePort |
flags | see AgsPulsePortFlags |

Since: 3.0.0

### ags_pulse_port_unset_flags ()

    void
    ags_pulse_port_unset_flags (AgsPulsePort *pulse_port,
                                guint flags);

Disable a feature of `pulse_port` .

#### Parameters

pulse_port | the AgsPulsePort |
flags | see AgsPulsePortFlags |

Since: 3.0.0

### ags_pulse_port_find ()

    GList *
    ags_pulse_port_find (GList *pulse_port,
                         gchar *port_name);

Finds next match of `port_name` in `pulse_port` .

#### Parameters

pulse_port | the GList containig AgsPulsePort. | [element-type AgsAudio.PulsePort][transfer none]
port_name | the port name to find |

#### Returns

the next matching GList or `NULL`.

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

Since: 3.0.0

### ags_pulse_port_register ()

    void
    ags_pulse_port_register (AgsPulsePort *pulse_port,
                             gchar *port_name,
                             gboolean is_audio,
                             gboolean is_midi,
                             gboolean is_output);

Register a new pulseaudio port and read uuid. Creates a new AgsSequencer or AgsSoundcard object.

#### Parameters

pulse_port | the AgsPulsePort |
port_name | the name as string |
is_audio | if `TRUE` interpreted as audio port |
is_midi | if `TRUE` interpreted as midi port |
is_output | if `TRUE` port is acting as output, otherwise as input |

Since: 3.0.0

### ags_pulse_port_unregister ()

    void
    ags_pulse_port_unregister (AgsPulsePort *pulse_port);

### ags_pulse_port_get_fixed_size ()

    guint
    ags_pulse_port_get_fixed_size (AgsPulsePort *pulse_port);

### ags_pulse_port_set_samplerate ()

    void
    ags_pulse_port_set_samplerate (AgsPulsePort *pulse_port,
                                   guint samplerate);

### ags_pulse_port_set_pcm_channels ()

    void
    ags_pulse_port_set_pcm_channels (AgsPulsePort *pulse_port,
                                     guint pcm_channels);

### ags_pulse_port_set_buffer_size ()

    void
    ags_pulse_port_set_buffer_size (AgsPulsePort *pulse_port,
                                    guint buffer_size);

### ags_pulse_port_set_format ()

    void
    ags_pulse_port_set_format (AgsPulsePort *pulse_port,
                               guint format);

### ags_pulse_port_set_cache_buffer_size ()

    void
    ags_pulse_port_set_cache_buffer_size (AgsPulsePort *pulse_port,
                                          guint cache_buffer_size);

### ags_pulse_port_get_latency ()

    guint
    ags_pulse_port_get_latency (AgsPulsePort *pulse_port);

Gets latency.

#### Parameters

pulse_port | the AgsPulsePort |

Since: 3.0.0

### ags_pulse_port_new ()

    AgsPulsePort *
    ags_pulse_port_new (GObject *pulse_client);

Create a new instance of AgsPulsePort.

#### Parameters

pulse_client | the AgsPulseClient assigned to |

#### Returns

the new AgsPulsePort

Since: 3.0.0

## Types and Values

### AGS_PULSE_PORT_DEFAULT_CACHE_COUNT

    #define AGS_PULSE_PORT_DEFAULT_CACHE_COUNT (4)

### AGS_PULSE_PORT_DEFAULT_CACHE_BUFFER_SIZE

    #define AGS_PULSE_PORT_DEFAULT_CACHE_BUFFER_SIZE (4096)

### enum AgsPulsePortFlags

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

#### Members

AGS_PULSE_PORT_REGISTERED | the port was registered |
AGS_PULSE_PORT_IS_AUDIO | the port provides audio data |
AGS_PULSE_PORT_IS_MIDI | the port provides midi data |
AGS_PULSE_PORT_IS_OUTPUT | the port does output |
AGS_PULSE_PORT_IS_INPUT | the port does input |

## Property Details

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

      “port-name”                char *

The pulse soundcard indentifier

Owner: AgsPulsePort

Flags: Read / Write

Default value: NULL

Since: 3.0.0

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

      “pulse-client”             AgsPulseClient *

The assigned AgsPulseClient.

Owner: AgsPulsePort

Flags: Read / Write

Since: 3.0.0

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

      “pulse-devin”              AgsPulseDevin *

The assigned AgsPulseDevout.

Owner: AgsPulsePort

Flags: Read / Write

Since: 3.0.0

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

      “pulse-devout”             AgsPulseDevout *

The assigned AgsPulseDevout.

Owner: AgsPulsePort

Flags: Read / Write

Since: 3.0.0