Topology Interface

Overview

// typedefs

typedef struct snd_tplg snd_tplg_t;

// enums

enum snd_tplg_type;

// structs

struct snd_tplg_bytes_template;
struct snd_tplg_channel_elem;
struct snd_tplg_channel_map_template;
struct snd_tplg_channel_template;
struct snd_tplg_ctl_template;
struct snd_tplg_dai_template;
struct snd_tplg_enum_template;
struct snd_tplg_graph_elem;
struct snd_tplg_graph_template;
struct snd_tplg_hw_config_template;
struct snd_tplg_io_ops_template;
struct snd_tplg_link_template;
struct snd_tplg_mixer_template;
struct snd_tplg_obj_template;
struct snd_tplg_obj_template_t;
struct snd_tplg_pcm_template;
struct snd_tplg_pdata_template;
struct snd_tplg_stream_caps_template;
struct snd_tplg_stream_template;
struct snd_tplg_tlv_dbscale_template;
struct snd_tplg_tlv_template;
struct snd_tplg_widget_template;

// global functions

snd_tplg_t*
snd_tplg_new(void);

void
snd_tplg_free(snd_tplg_t* tplg);

int
snd_tplg_build_file(
    snd_tplg_t* tplg,
    const char* infile,
    const char* outfile
);

void
snd_tplg_verbose(
    snd_tplg_t* tplg,
    int verbose
);

int
snd_tplg_add_object(
    snd_tplg_t* tplg,
    snd_tplg_obj_template_t* t
);

int
snd_tplg_build(
    snd_tplg_t* tplg,
    const char* outfile
);

int
snd_tplg_set_manifest_data(
    snd_tplg_t* tplg,
    const void* data,
    int len
);

int
snd_tplg_set_version(
    snd_tplg_t* tplg,
    unsigned int version
);

// macros

#define SND_TPLG_MAX_CHAN

Detailed Documentation

Typedefs

typedef struct snd_tplg snd_tplg_t

Topology context

Global Functions

snd_tplg_t*
snd_tplg_new(void)

Create a new topology parser instance.

Returns:

New topology parser instance

void
snd_tplg_free(snd_tplg_t* tplg)

Free a topology parser instance.

Parameters:

tplg

Topology parser instance

int
snd_tplg_build_file(
    snd_tplg_t* tplg,
    const char* infile,
    const char* outfile
)

Parse and build topology text file into binary file.

Parameters:

tplg

Topology instance.

infile

Topology text input file to be parsed

outfile

Binary topology output file.

Returns:

Zero on success, otherwise a negative error code

void
snd_tplg_verbose(
    snd_tplg_t* tplg,
    int verbose
)

Enable verbose reporting of binary file output.

Parameters:

tplg

Topology Instance

verbose

Enable verbose output level if non zero

int
snd_tplg_add_object(
    snd_tplg_t* tplg,
    snd_tplg_obj_template_t* t
)

Register topology template object.

Parameters:

tplg

Topology instance.

t

Template object.

Returns:

Zero on success, otherwise a negative error code

int
snd_tplg_build(
    snd_tplg_t* tplg,
    const char* outfile
)

Build all registered topology data into binary file.

Parameters:

tplg

Topology instance.

outfile

Binary topology output file.

Returns:

Zero on success, otherwise a negative error code

int
snd_tplg_set_manifest_data(
    snd_tplg_t* tplg,
    const void* data,
    int len
)

Attach private data to topology manifest.

Parameters:

tplg

Topology instance.

data

Private data.

len

Length of data in bytes.

Returns:

Zero on success, otherwise a negative error code

int
snd_tplg_set_version(
    snd_tplg_t* tplg,
    unsigned int version
)

Set an optional vendor specific version number.

Parameters:

tplg

Topology instance.

version

Vendor specific version number.

Returns:

Zero on success, otherwise a negative error code

Macros

#define SND_TPLG_MAX_CHAN

Maximum number of channels supported in one control