myMPD trigger API
More...
#include "dist/sds/sds.h"
#include "src/lib/list.h"
#include "src/lib/sticker.h"
Go to the source code of this file.
|
enum | trigger_events {
TRIGGER_MYMPD_SCROBBLE = -1
, TRIGGER_MYMPD_START = -2
, TRIGGER_MYMPD_STOP = -3
, TRIGGER_MYMPD_CONNECTED = -4
,
TRIGGER_MYMPD_DISCONNECTED = -5
, TRIGGER_MYMPD_FEEDBACK = -6
, TRIGGER_MYMPD_SKIPPED = -7
, TRIGGER_MYMPD_LYRICS = -8
,
TRIGGER_MYMPD_ALBUMART = -9
, TRIGGER_MYMPD_TAGART = -10
, TRIGGER_MYMPD_JUKEBOX = -11
, TRIGGER_MYMPD_SMARTPLS = - 12
,
TRIGGER_MYMPD_BGIMAGE = -13
, TRIGGER_MPD_DATABASE = 0x1
, TRIGGER_MPD_STORED_PLAYLIST = 0x2
, TRIGGER_MPD_QUEUE = 0x4
,
TRIGGER_MPD_PLAYER = 0x8
, TRIGGER_MPD_MIXER = 0x10
, TRIGGER_MPD_OUTPUT = 0x20
, TRIGGER_MPD_OPTIONS = 0x40
,
TRIGGER_MPD_UPDATE = 0x80
, TRIGGER_MPD_STICKER = 0x100
, TRIGGER_MPD_SUBSCRIPTION = 0x200
, TRIGGER_MPD_MESSAGE = 0x400
,
TRIGGER_MPD_PARTITION = 0x800
, TRIGGER_MPD_NEIGHBOR = 0x1000
, TRIGGER_MPD_MOUNT = 0x2000
} |
|
|
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) |
|
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) |
|
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_delete (struct t_list *trigger_list, unsigned idx, sds *error) |
|
const char * | mympd_api_event_name (int event) |
|
sds | mympd_api_trigger_print_event_list (sds buffer) |
|
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) |
|
◆ trigger_events
myMPD trigger events. The list is composed of MPD idle events and myMPD specific events.
Enumerator |
---|
TRIGGER_MYMPD_SCROBBLE | myMPD scrobble event (same event is used for last played sticker / list)
|
TRIGGER_MYMPD_START | myMPD was started (before mpd connection)
|
TRIGGER_MYMPD_STOP | myMPD stops
|
TRIGGER_MYMPD_CONNECTED | myMPD connected to mpd event
|
TRIGGER_MYMPD_DISCONNECTED | myMPD disconnect from mpd event
|
TRIGGER_MYMPD_FEEDBACK | myMPD feedback event (love/hate)
|
TRIGGER_MYMPD_SKIPPED | myMPD song skipped (same event is used for skipped sticker)
|
TRIGGER_MYMPD_LYRICS | myMPD lyrics
|
TRIGGER_MYMPD_ALBUMART | myMPD albumart
|
TRIGGER_MYMPD_TAGART | myMPD tagart
|
TRIGGER_MYMPD_JUKEBOX | myMPD jukebox
|
TRIGGER_MYMPD_SMARTPLS | myMPD smart playlist creation
|
TRIGGER_MYMPD_BGIMAGE | myMPD background image
|
TRIGGER_MPD_DATABASE | mpd database has changed
|
TRIGGER_MPD_STORED_PLAYLIST | mpd playlist idle event
|
TRIGGER_MPD_QUEUE | mpd queue idle event
|
TRIGGER_MPD_PLAYER | mpd player idle event
|
TRIGGER_MPD_MIXER | mpd mixer idle event (volume)
|
TRIGGER_MPD_OUTPUT | mpd output idle event
|
TRIGGER_MPD_OPTIONS | mpd options idle event
|
TRIGGER_MPD_UPDATE | mpd database idle event (started or finished)
|
TRIGGER_MPD_STICKER | mpd sticker idle event
|
TRIGGER_MPD_SUBSCRIPTION | mpd subscription idle event
|
TRIGGER_MPD_MESSAGE | mpd message idle event
|
TRIGGER_MPD_PARTITION | mpd partition idle event
|
TRIGGER_MPD_NEIGHBOR | mpd neighbor idle event
|
TRIGGER_MPD_MOUNT | mpd mount idle event
|
◆ mympd_api_event_data_free()
void mympd_api_event_data_free |
( |
struct t_event_data * |
event_data | ) |
|
Frees the t_event_data struct and arguments list
- Parameters
-
event_data | pointer to event data |
◆ mympd_api_event_data_free_void()
void mympd_api_event_data_free_void |
( |
void * |
event_data | ) |
|
Frees the t_event_data struct and arguments list
- Parameters
-
event_data | pointer to event data |
◆ mympd_api_event_data_new()
Creates and initializes the t_event_data struct
- Parameters
-
event | Event id |
arguments | Arguments list, can be null |
- Returns
- Pointer to allocated t_event_data struct
◆ mympd_api_event_name()
const char * mympd_api_event_name |
( |
int |
event | ) |
|
Public functions Returns the event name
- Parameters
-
- Returns
- trigger as string
◆ mympd_api_trigger_data_free()
void mympd_api_trigger_data_free |
( |
struct t_trigger_data * |
trigger_data | ) |
|
Frees the t_trigger_data struct
- Parameters
-
trigger_data | pointer to trigger data |
◆ mympd_api_trigger_data_new()
◆ mympd_api_trigger_delete()
bool mympd_api_trigger_delete |
( |
struct t_list * |
trigger_list, |
|
|
unsigned |
idx, |
|
|
sds * |
error |
|
) |
| |
Deletes a trigger
- Parameters
-
trigger_list | trigger list |
idx | index of trigger node to remove |
error | already allocated sds string to append the error message |
- Returns
- true on success, else false
◆ mympd_api_trigger_execute()
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
- Parameters
-
trigger_list | trigger list |
event | trigger to execute scripts for |
partition | mpd partition |
arguments | list of script arguments |
- Returns
- number of executed triggers
◆ mympd_api_trigger_execute_feedback()
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
- Parameters
-
trigger_list | trigger list |
uri | feedback uri |
type | feedback type |
value | the feedback |
partition | mpd partition |
- Returns
- number of executed triggers
◆ mympd_api_trigger_execute_http()
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
- Parameters
-
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 |
- Returns
- number of executed triggers
◆ mympd_api_trigger_file_read()
bool mympd_api_trigger_file_read |
( |
struct t_list * |
trigger_list, |
|
|
sds |
workdir |
|
) |
| |
Reads the trigger file from disc and populates the trigger list
- Parameters
-
trigger_list | trigger list |
workdir | working directory |
- Returns
- true on success, else false
◆ mympd_api_trigger_file_save()
bool mympd_api_trigger_file_save |
( |
struct t_list * |
trigger_list, |
|
|
sds |
workdir |
|
) |
| |
Saves the trigger list to disc
- Parameters
-
trigger_list | trigger list |
workdir | working directory |
- Returns
- true on success, else false
◆ mympd_api_trigger_get()
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
- Parameters
-
trigger_list | trigger list |
buffer | already allocated sds string to append the response |
request_id | jsonrpc request id |
trigger_id | trigger id to print |
- Returns
- pointer to buffer
◆ mympd_api_trigger_list()
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
- Parameters
-
trigger_list | trigger list |
buffer | already allocated sds string to append the response |
request_id | jsonrpc request id |
partition | mpd partition |
- Returns
- pointer to buffer
◆ mympd_api_trigger_list_clear()
void mympd_api_trigger_list_clear |
( |
struct t_list * |
trigger_list | ) |
|
Clears the trigger list
- Parameters
-
trigger_list | trigger list to clear |
◆ mympd_api_trigger_print_event_list()
sds mympd_api_trigger_print_event_list |
( |
sds |
buffer | ) |
|
Prints all events names as json string
- Parameters
-
buffer | already allocated sds string to append the response |
- Returns
- pointer to buffer
◆ mympd_api_trigger_save()
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
- Parameters
-
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 |
- Returns
- true on success, else false