|
myMPD
Internal API documentation
|
myMPD trigger API More...
#include "compile_time.h"#include "dist/sds/sds.h"#include "src/lib/sticker.h"#include "src/mympd_api/trigger.h"#include "src/lib/api.h"#include "src/lib/filehandler.h"#include "src/lib/json/json_print.h"#include "src/lib/json/json_query.h"#include "src/lib/json/json_rpc.h"#include "src/lib/log.h"#include "src/lib/mem.h"#include "src/lib/sds_extras.h"#include "src/lib/state_files.h"#include "src/scripts/events.h"#include <errno.h>#include <string.h>
Functions | |
| static void | list_free_cb_trigger_data (struct t_list_node *current) |
| static sds | trigger_to_line_cb (sds buffer, struct t_list_node *current, bool newline) |
| void | trigger_execute (sds script, enum script_start_events script_event, struct t_list *arguments, const char *partition, unsigned long conn_id, unsigned request_id) |
| const char * | mympd_api_event_name (int event) |
| sds | mympd_api_trigger_print_event_list (sds buffer) |
| int | mympd_api_trigger_execute (struct t_list *trigger_list, enum trigger_events event, const char *partition, struct t_list *arguments) |
| int | mympd_api_trigger_execute_http (struct t_list *trigger_list, enum trigger_events event, const char *partition, unsigned long conn_id, unsigned request_id, struct t_list *arguments) |
| int | mympd_api_trigger_execute_feedback (struct t_list *trigger_list, sds uri, enum mympd_feedback_type type, int value, const char *partition) |
| bool | mympd_api_trigger_save (struct t_list *trigger_list, sds name, int trigger_id, int event, sds partition, struct t_trigger_data *trigger_data, sds *error) |
| bool | mympd_api_trigger_delete (struct t_list *trigger_list, unsigned idx, sds *error) |
| sds | mympd_api_trigger_list (struct t_list *trigger_list, sds buffer, unsigned request_id, const char *partition) |
| sds | mympd_api_trigger_get (struct t_list *trigger_list, sds buffer, unsigned request_id, unsigned trigger_id) |
| bool | mympd_api_trigger_file_read (struct t_list *trigger_list, sds workdir) |
| bool | mympd_api_trigger_file_save (struct t_list *trigger_list, sds workdir) |
| void | mympd_api_trigger_list_clear (struct t_list *trigger_list) |
| struct t_trigger_data * | mympd_api_trigger_data_new (void) |
| void | mympd_api_trigger_data_free (struct t_trigger_data *trigger_data) |
| struct t_event_data * | mympd_api_event_data_new (int event, struct t_list *arguments) |
| void | mympd_api_event_data_free (struct t_event_data *event_data) |
| void | mympd_api_event_data_free_void (void *event_data) |
Variables | |
| static const char *const | mpd_event_names [] |
| static const char *const | trigger_event_names [] |
| static const char *const | mympd_event_names [] |
myMPD trigger API
|
static |
Private definitions
Private functions Callback function to free user_data of type t_trigger_data
| current | list node |
| void mympd_api_event_data_free | ( | struct t_event_data * | event_data | ) |
Frees the t_event_data struct and arguments list
| event_data | pointer to event data |
| void mympd_api_event_data_free_void | ( | void * | event_data | ) |
Frees the t_event_data struct and arguments list
| event_data | pointer to event data |
| struct t_event_data * mympd_api_event_data_new | ( | int | event, |
| struct t_list * | arguments | ||
| ) |
Creates and initializes the t_event_data struct
| event | Event id |
| arguments | Arguments list, can be null |
| const char * mympd_api_event_name | ( | int | event | ) |
Public functions Returns the event name
| event | event to resolv |
| void mympd_api_trigger_data_free | ( | struct t_trigger_data * | trigger_data | ) |
Frees the t_trigger_data struct
| trigger_data | pointer to trigger data |
| struct t_trigger_data * mympd_api_trigger_data_new | ( | void | ) |
Creates and initializes the t_trigger_data struct
| bool mympd_api_trigger_delete | ( | struct t_list * | trigger_list, |
| unsigned | idx, | ||
| sds * | error | ||
| ) |
Deletes a trigger
| trigger_list | trigger list |
| idx | index of trigger node to remove |
| error | already allocated sds string to append the error message |
| int mympd_api_trigger_execute | ( | struct t_list * | trigger_list, |
| enum trigger_events | event, | ||
| const char * | partition, | ||
| struct t_list * | arguments | ||
| ) |
Executes all scripts associated with the trigger
| trigger_list | trigger list |
| event | trigger to execute scripts for |
| partition | mpd partition |
| arguments | list of script arguments |
| int mympd_api_trigger_execute_feedback | ( | struct t_list * | trigger_list, |
| sds | uri, | ||
| enum mympd_feedback_type | type, | ||
| int | value, | ||
| const char * | partition | ||
| ) |
Executes the feedback trigger
| trigger_list | trigger list |
| uri | feedback uri |
| type | feedback type |
| value | the feedback |
| partition | mpd partition |
| int mympd_api_trigger_execute_http | ( | struct t_list * | trigger_list, |
| enum trigger_events | event, | ||
| const char * | partition, | ||
| unsigned long | conn_id, | ||
| unsigned | request_id, | ||
| struct t_list * | arguments | ||
| ) |
Executes triggers for http output
| trigger_list | trigger list |
| event | trigger to execute scripts for |
| partition | mpd partition |
| conn_id | mongoose connection id |
| request_id | jsonprc id |
| arguments | list of script arguments or NULL for no arguments |
| bool mympd_api_trigger_file_read | ( | struct t_list * | trigger_list, |
| sds | workdir | ||
| ) |
Reads the trigger file from disc and populates the trigger list
| trigger_list | trigger list |
| workdir | working directory |
| bool mympd_api_trigger_file_save | ( | struct t_list * | trigger_list, |
| sds | workdir | ||
| ) |
Saves the trigger list to disc
| trigger_list | trigger list |
| workdir | working directory |
| sds mympd_api_trigger_get | ( | struct t_list * | trigger_list, |
| sds | buffer, | ||
| unsigned | request_id, | ||
| unsigned | trigger_id | ||
| ) |
Prints the trigger with given id as jsonrpc response
| trigger_list | trigger list |
| buffer | already allocated sds string to append the response |
| request_id | jsonrpc request id |
| trigger_id | trigger id to print |
| sds mympd_api_trigger_list | ( | struct t_list * | trigger_list, |
| sds | buffer, | ||
| unsigned | request_id, | ||
| const char * | partition | ||
| ) |
Prints the trigger list as jsonrpc response
| trigger_list | trigger list |
| buffer | already allocated sds string to append the response |
| request_id | jsonrpc request id |
| partition | mpd partition |
| void mympd_api_trigger_list_clear | ( | struct t_list * | trigger_list | ) |
Clears the trigger list
| trigger_list | trigger list to clear |
| sds mympd_api_trigger_print_event_list | ( | sds | buffer | ) |
Prints all events names as json string
| buffer | already allocated sds string to append the response |
| bool mympd_api_trigger_save | ( | struct t_list * | trigger_list, |
| sds | name, | ||
| int | trigger_id, | ||
| int | event, | ||
| sds | partition, | ||
| struct t_trigger_data * | trigger_data, | ||
| sds * | error | ||
| ) |
Saves a trigger
| trigger_list | trigger list |
| name | trigger name |
| trigger_id | existing trigger id to replace or -1 |
| event | trigger event |
| partition | mpd partition |
| trigger_data | the trigger data (script name and arguments) |
| error | already allocated sds string to append the error message |
| void trigger_execute | ( | sds | script, |
| enum script_start_events | script_event, | ||
| struct t_list * | arguments, | ||
| const char * | partition, | ||
| unsigned long | conn_id, | ||
| unsigned | request_id | ||
| ) |
Creates and pushes a request to execute a script
| script | script to execute |
| script_event | script start event |
| arguments | script arguments |
| partition | mpd partition |
| conn_id | mongoose connection id |
| request_id | jsonprc id |
|
static |
Prints a trigger as a json object string
| buffer | already allocated sds string to append the response |
| current | trigger node to print |
| newline | append a newline char |
|
static |
All MPD idle events
|
static |
myMPD events for triggers
|
static |
MPD idle events for triggers This events are enabled by the idle bitmask