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

myMPD trigger API More...

#include "dist/sds/sds.h"
#include "src/lib/list.h"
#include "src/lib/sticker.h"
Include dependency graph for trigger.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  t_event_data
 
struct  t_trigger_data
 

Enumerations

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
}
 

Functions

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_datamympd_api_trigger_data_new (void)
 
void mympd_api_trigger_data_free (struct t_trigger_data *trigger_data)
 
struct t_event_datamympd_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)
 

Detailed Description

myMPD trigger API

Enumeration Type Documentation

◆ 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

Function Documentation

◆ 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_datapointer 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_datapointer to event data

◆ mympd_api_event_data_new()

struct t_event_data * mympd_api_event_data_new ( int  event,
struct t_list arguments 
)

Creates and initializes the t_event_data struct

Parameters
eventEvent id
argumentsArguments 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
eventevent to resolv
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_datapointer to trigger data

◆ mympd_api_trigger_data_new()

struct t_trigger_data * mympd_api_trigger_data_new ( void  )

Creates and initializes the t_trigger_data struct

Returns
pointer to allocated t_trigger_data struct

◆ mympd_api_trigger_delete()

bool mympd_api_trigger_delete ( struct t_list trigger_list,
unsigned  idx,
sds *  error 
)

Deletes a trigger

Parameters
trigger_listtrigger list
idxindex of trigger node to remove
erroralready 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_listtrigger list
eventtrigger to execute scripts for
partitionmpd partition
argumentslist 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_listtrigger list
urifeedback uri
typefeedback type
valuethe feedback
partitionmpd 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_listtrigger list
eventtrigger to execute scripts for
partitionmpd partition
conn_idmongoose connection id
request_idjsonprc id
argumentslist 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_listtrigger list
workdirworking 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_listtrigger list
workdirworking 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_listtrigger list
bufferalready allocated sds string to append the response
request_idjsonrpc request id
trigger_idtrigger 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_listtrigger list
bufferalready allocated sds string to append the response
request_idjsonrpc request id
partitionmpd 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_listtrigger 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
bufferalready 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_listtrigger list
nametrigger name
trigger_idexisting trigger id to replace or -1
eventtrigger event
partitionmpd partition
trigger_datathe trigger data (script name and arguments)
erroralready allocated sds string to append the error message
Returns
true on success, else false