myMPD
Internal API documentation
Loading...
Searching...
No Matches
timer.h File Reference

myMPD timer API More...

#include "dist/sds/sds.h"
#include "src/lib/config/mympd_state.h"
#include "src/lib/json/json_query.h"
Include dependency graph for timer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  t_timer_node

Typedefs

typedef void(* timer_handler) (unsigned timer_id, struct t_timer_definition *definition, struct t_mympd_state *mympd_state)

Enumerations

enum  timer_intervals { TIMER_ONE_SHOT_REMOVE = -1 , TIMER_ONE_SHOT_DISABLE = 0 }

Functions

void mympd_api_timer_timerlist_init (struct t_timer_list *l)
void mympd_api_timer_timerlist_clear (struct t_timer_list *l)
bool mympd_api_timer_check (int fd, struct t_timer_list *timer_list, struct t_mympd_state *mympd_state)
bool mympd_api_timer_save (struct t_partition_state *partition_state, struct t_timer_list *timer_list, int interval, unsigned timerid, struct t_timer_definition *timer_def, sds *error)
bool mympd_api_timer_add (struct t_timer_list *l, int timeout, int interval, timer_handler handler, unsigned timer_id, struct t_timer_definition *definition)
bool mympd_api_timer_add_uniq (struct t_timer_list *l, int timeout, int interval, timer_handler handler, unsigned timer_id, struct t_timer_definition *definition)
bool mympd_api_timer_replace (struct t_timer_list *l, int timeout, int interval, timer_handler handler, unsigned timer_id, struct t_timer_definition *definition)
bool mympd_api_timer_remove (struct t_timer_list *l, unsigned timer_id)
bool mympd_api_timer_remove_by_fd (struct t_timer_list *l, int fd)
int mympd_api_timer_remove_partition (struct t_timer_list *l, sds partition)
bool mympd_api_timer_toggle (struct t_timer_list *l, unsigned timer_id, sds *error)
void * mympd_api_timer_free_definition (struct t_timer_definition *timer_def)
struct t_timer_definitionmympd_api_timer_parse (sds str, const char *partition, struct t_json_parse_error *error)
int mympd_api_timer_calc_starttime (int start_hour, int start_minute, int interval)
sds mympd_api_timer_list (struct t_timer_list *timer_list, sds buffer, unsigned request_id, const char *partition)
sds mympd_api_timer_get (struct t_timer_list *timer_list, sds buffer, unsigned request_id, unsigned timer_id)
bool mympd_api_timer_file_read (struct t_timer_list *timer_list, sds workdir)
bool mympd_api_timer_file_save (struct t_timer_list *timer_list, sds workdir)

Detailed Description

myMPD timer API

Typedef Documentation

◆ timer_handler

typedef void(* timer_handler) (unsigned timer_id, struct t_timer_definition *definition, struct t_mympd_state *mympd_state)

Callback functions for timers

Enumeration Type Documentation

◆ timer_intervals

Timer interval types

Function Documentation

◆ mympd_api_timer_add()

bool mympd_api_timer_add ( struct t_timer_list * l,
int timeout,
int interval,
timer_handler handler,
unsigned timer_id,
struct t_timer_definition * definition )

Adds a timer with given timer_id

Parameters
ltimer list
timeoutseconds when timer will run (offset from now)
intervalreschedule timer interval
handlertimer callback function
timer_idid of the timer
definitionpointer to timer definition (GUI) or NULL
Returns
true on success, else false

◆ mympd_api_timer_add_uniq()

bool mympd_api_timer_add_uniq ( struct t_timer_list * l,
int timeout,
int interval,
timer_handler handler,
unsigned timer_id,
struct t_timer_definition * definition )

Adds a timer with given timer_id only if timer_id is not already added

Parameters
ltimer list
timeoutseconds when timer will run (offset from now)
intervalreschedule timer interval
handlertimer callback function
timer_idid of the timer
definitionpointer to timer definition (GUI) or NULL
Returns
true on success, else false

◆ mympd_api_timer_calc_starttime()

int mympd_api_timer_calc_starttime ( int start_hour,
int start_minute,
int interval )

Calculates the offset from now for next start time for a timer

Parameters
start_hourstart hour
start_minutestart minute
intervalreschedule interval
Returns
unix timestamp of next start

◆ mympd_api_timer_check()

bool mympd_api_timer_check ( int fd,
struct t_timer_list * timer_list,
struct t_mympd_state * mympd_state )

Checks the timer event and executes the callback function

Parameters
fdfd with POLLIN event
timer_listtimer list
mympd_statePointer to mympd_state
Returns
true on success, else false

◆ mympd_api_timer_file_read()

bool mympd_api_timer_file_read ( struct t_timer_list * timer_list,
sds workdir )

Reads the timer file and populates the timer list

Parameters
timer_listtimer list
workdirworking directory
Returns
true on success, else false

◆ mympd_api_timer_file_save()

bool mympd_api_timer_file_save ( struct t_timer_list * timer_list,
sds workdir )

Saves the timer list to the timer file on disc

Parameters
timer_listtimer list
workdirworking directory
Returns
true on success, else false

◆ mympd_api_timer_free_definition()

void * mympd_api_timer_free_definition ( struct t_timer_definition * timer_def)

Frees a timer definition

Parameters
timer_defpointer to timer definition
Returns
NULL

◆ mympd_api_timer_get()

sds mympd_api_timer_get ( struct t_timer_list * timer_list,
sds buffer,
unsigned request_id,
unsigned timer_id )

Gets the timer with the given id as an jsonrpc response

Parameters
timer_listtimer list
bufferalready allocated sds string to append the response
request_idjsonrpc request id
timer_idtimer id
Returns
pointer to buffer

◆ mympd_api_timer_list()

sds mympd_api_timer_list ( struct t_timer_list * timer_list,
sds buffer,
unsigned request_id,
const char * partition )

Gets the timer list as an jsonrpc response

Parameters
timer_listtimer list
bufferalready allocated sds string to append the response
request_idjsonrpc request id
partitionmpd partition
Returns
pointer to buffer

◆ mympd_api_timer_parse()

struct t_timer_definition * mympd_api_timer_parse ( sds str,
const char * partition,
struct t_json_parse_error * error )

Parses a json object string to a timer definition.

Parameters
strstring to parse
partitionmpd partition
errorpointer to sds string to populate an error string
Returns
pointer to timer_def or NULL on error

◆ mympd_api_timer_remove()

bool mympd_api_timer_remove ( struct t_timer_list * l,
unsigned timer_id )

Removes a timer with given id

Parameters
ltimer list
timer_idtimer id to remove
Returns
true on success, else false

◆ mympd_api_timer_remove_by_fd()

bool mympd_api_timer_remove_by_fd ( struct t_timer_list * l,
int fd )

Removes a timer with given fd

Parameters
lTimer list
fdTimer fd to remove
Returns
true on success, else false

◆ mympd_api_timer_remove_partition()

int mympd_api_timer_remove_partition ( struct t_timer_list * l,
sds partition )

Removes all user defines timers for specified partition

Parameters
lTimer list
partitionPartition name
Returns
Number of removed timers or -1 on error

◆ mympd_api_timer_replace()

bool mympd_api_timer_replace ( struct t_timer_list * l,
int timeout,
int interval,
timer_handler handler,
unsigned timer_id,
struct t_timer_definition * definition )

Replaces a timer with given timer_id

Parameters
ltimer list
timeoutseconds when timer will run
intervalreschedule timer interval
handlertimer callback function
timer_idid of the timer
definitionpointer to timer definition (GUI) or NULL
Returns
true on success, else false

◆ mympd_api_timer_save()

bool mympd_api_timer_save ( struct t_partition_state * partition_state,
struct t_timer_list * timer_list,
int interval,
unsigned timerid,
struct t_timer_definition * timer_def,
sds * error )

Saves a new or existing timer

Parameters
partition_statepointer to partition state
timer_listpointer to timer list
intervaltimer interval
timeridthe timerid
timer_defpointer to populated timer definition
errorpointer to already allocated sds string to append an error message
Returns
true on success, else false

◆ mympd_api_timer_timerlist_clear()

void mympd_api_timer_timerlist_clear ( struct t_timer_list * l)

Clears the timer list

Parameters
ltimer list

◆ mympd_api_timer_timerlist_init()

void mympd_api_timer_timerlist_init ( struct t_timer_list * l)

Public functions Inits the timer list

Parameters
lpointer to already allocated timer list

◆ mympd_api_timer_toggle()

bool mympd_api_timer_toggle ( struct t_timer_list * l,
unsigned timer_id,
sds * error )

Toggles the enabled state of a timer

Parameters
ltimer list
timer_idtimer id to toggle
errorpointer to already allocated sds string to append an error message
Returns
true on success, else false