paraslash Paraslash Audio Streaming
About   News   Download   Documentation   Development

Macros | Functions
write_common.c File Reference

common functions of para_audiod and para_write More...

#include <regex.h>
#include <lopsub.h>
#include "write_cmd.lsg.h"
#include "para.h"
#include "string.h"
#include "list.h"
#include "sched.h"
#include "buffer_tree.h"
#include "write.h"
#include "error.h"

Macros

#define FOR_EACH_WRITER(i)   for (i = 1; lls_cmd(i, write_cmd_suite); i++)
 Loop over all writers. More...
 

Functions

const struct writerwriter_get (int wid)
 Return the writer structure from a writer ID. More...
 
const char * writer_name (int wid)
 Return name of the writer identified by a writer ID. More...
 
int check_writer_arg_or_die (const char *wa, struct lls_parse_result **lprp)
 Check if the given string is a valid command line for any writer. More...
 
void register_writer_node (struct writer_node *wn, struct btr_node *parent, struct sched *s)
 Open a writer node and register the corresponding task. More...
 
void print_writer_helps (bool detailed)
 Print the help text of all writers to stdout. More...
 
int get_btr_sample_rate (struct btr_node *btrn, int32_t *result)
 Ask parent btr nodes for the sample rate of the current stream. More...
 
int get_btr_channels (struct btr_node *btrn, int32_t *result)
 Ask parent btr nodes for the channel count of the current stream. More...
 
int get_btr_sample_format (struct btr_node *btrn, int32_t *result)
 Ask parent btr nodes for the number of bits per sample and the byte sex. More...
 

Detailed Description

common functions of para_audiod and para_write

Macro Definition Documentation

◆ FOR_EACH_WRITER

#define FOR_EACH_WRITER (   i)    for (i = 1; lls_cmd(i, write_cmd_suite); i++)

Loop over all writers.

Function Documentation

◆ writer_get()

const struct writer* writer_get ( int  wid)

Return the writer structure from a writer ID.

Parameters
widIf non-positive, a pointer to the default writer is returned.
Returns
Pointer to a (constant) struct writer.

Referenced by register_writer_node().

◆ writer_name()

const char* writer_name ( int  wid)

Return name of the writer identified by a writer ID.

Parameters
widIf non-positive, the name of the default writer is returned.
Returns
The returned buffer must not be freed by the caller.

Referenced by register_writer_node().

◆ check_writer_arg_or_die()

int check_writer_arg_or_die ( const char *  wa,
struct lls_parse_result **  lprp 
)

Check if the given string is a valid command line for any writer.

Parameters
waString of the form writer_name options.
lprpContains the parsed command line on success.

If wa is NULL, the (configuration-dependent) default writer is assumed. Otherwise, the function checks whether wa starts with the name of a supported writer. If a valid writer name was found, the rest of the command line is passed to the config parser of this writer.

Returns
On success, the positive writer ID is returned. Otherwise the function prints an error message and calls exit().

◆ register_writer_node()

void register_writer_node ( struct writer_node wn,
struct btr_node *  parent,
struct sched s 
)

Open a writer node and register the corresponding task.

Parameters
wnThe writer node to open.
parentThe parent btr node (the source for the writer node).
sThe scheduler instance to register the task to.

References btr_new_node(), writer_node::btrn, EMBRACE, writer::execute, writer::post_monitor, writer::pre_monitor, writer_node::task, task_register(), writer_node::wid, writer_get(), and writer_name().

◆ print_writer_helps()

void print_writer_helps ( bool  detailed)

Print the help text of all writers to stdout.

Parameters
detailedWhether to print the short or the detailed help.

References FOR_EACH_WRITER.

◆ get_btr_sample_rate()

int get_btr_sample_rate ( struct btr_node *  btrn,
int32_t *  result 
)

Ask parent btr nodes for the sample rate of the current stream.

Parameters
btrnWhere to start the search.
resultFilled in by this function.
Returns
Standard.

◆ get_btr_channels()

int get_btr_channels ( struct btr_node *  btrn,
int32_t *  result 
)

Ask parent btr nodes for the channel count of the current stream.

Parameters
btrnSee get_btr_sample_rate.
resultSee get_btr_sample_rate.
Returns
Standard.

◆ get_btr_sample_format()

int get_btr_sample_format ( struct btr_node *  btrn,
int32_t *  result 
)

Ask parent btr nodes for the number of bits per sample and the byte sex.

Parameters
btrnSee get_btr_sample_rate.
resultContains the sample format as an enum sample_format type.
Returns
Standard.