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

myMPD timer API More...

#include "dist/sds/sds.h"
#include "src/lib/json/json_query.h"
#include "src/lib/mympd_state.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)
 

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)
 
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_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_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)

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_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 
)

Checks the timer event and executes the callback function

Parameters
fdfd with POLLIN event
timer_listtimer list
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_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