myMPD
Internal API documentation
Loading...
Searching...
No Matches
trigger.h
Go to the documentation of this file.
1/*
2 SPDX-License-Identifier: GPL-3.0-or-later
3 myMPD (c) 2018-2025 Juergen Mang <mail@jcgames.de>
4 https://github.com/jcorporation/mympd
5*/
6
11#ifndef MYMPD_API_TRIGGER_H
12#define MYMPD_API_TRIGGER_H
13
14#include "dist/sds/sds.h"
15#include "src/lib/list.h"
16#include "src/lib/sticker.h"
17
51
56 int event;
57 struct t_list *arguments;
58};
59
64 sds script;
66};
67
68bool mympd_api_trigger_save(struct t_list *trigger_list, sds name, int trigger_id, int event, sds partition,
69 struct t_trigger_data *trigger_data, sds *error);
70sds mympd_api_trigger_list(struct t_list *trigger_list, sds buffer, unsigned request_id, const char *partition);
71sds mympd_api_trigger_get(struct t_list *trigger_list, sds buffer, unsigned request_id, unsigned trigger_id);
72bool mympd_api_trigger_file_read(struct t_list *trigger_list, sds workdir);
73bool mympd_api_trigger_file_save(struct t_list *trigger_list, sds workdir);
74void mympd_api_trigger_list_clear(struct t_list *trigger_list);
75int mympd_api_trigger_execute(struct t_list *trigger_list, enum trigger_events event,
76 const char *partition, struct t_list *arguments);
77int mympd_api_trigger_execute_http(struct t_list *trigger_list, enum trigger_events event,
78 const char *partition, unsigned long conn_id, unsigned request_id,
79 struct t_list *arguments);
80int mympd_api_trigger_execute_feedback(struct t_list *trigger_list, sds uri,
81 enum mympd_feedback_type type, int value, const char *partition);
82bool mympd_api_trigger_delete(struct t_list *trigger_list, unsigned idx, sds *error);
83const char *mympd_api_event_name(int event);
85
87void mympd_api_trigger_data_free(struct t_trigger_data *trigger_data);
88
90void mympd_api_event_data_free(struct t_event_data *event_data);
91void mympd_api_event_data_free_void(void *event_data);
92
93#endif
MPD sticker helpers.
mympd_feedback_type
Definition sticker.h:68
Linked list implementation.
Definition trigger.h:55
struct t_list * arguments
arguments for the event
Definition trigger.h:57
int event
event id
Definition trigger.h:56
Definition list.h:32
Definition trigger.h:63
struct t_list arguments
arguments for the script to execute
Definition trigger.h:65
sds script
script to execute
Definition trigger.h:64
const char * mympd_api_event_name(int event)
Definition trigger.c:109
void mympd_api_trigger_list_clear(struct t_list *trigger_list)
Definition trigger.c:470
bool mympd_api_trigger_delete(struct t_list *trigger_list, unsigned idx, sds *error)
Definition trigger.c:283
void mympd_api_trigger_data_free(struct t_trigger_data *trigger_data)
Definition trigger.c:489
struct t_trigger_data * mympd_api_trigger_data_new(void)
Definition trigger.c:478
void mympd_api_event_data_free_void(void *event_data)
Definition trigger.c:521
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)
Definition trigger.c:259
void mympd_api_event_data_free(struct t_event_data *event_data)
Definition trigger.c:512
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)
Definition trigger.c:190
int mympd_api_trigger_execute(struct t_list *trigger_list, enum trigger_events event, const char *partition, struct t_list *arguments)
Definition trigger.c:153
bool mympd_api_trigger_file_read(struct t_list *trigger_list, sds workdir)
Definition trigger.c:392
bool mympd_api_trigger_file_save(struct t_list *trigger_list, sds workdir)
Definition trigger.c:458
int mympd_api_trigger_execute_feedback(struct t_list *trigger_list, sds uri, enum mympd_feedback_type type, int value, const char *partition)
Definition trigger.c:227
sds mympd_api_trigger_list(struct t_list *trigger_list, sds buffer, unsigned request_id, const char *partition)
Definition trigger.c:302
struct t_event_data * mympd_api_event_data_new(int event, struct t_list *arguments)
Definition trigger.c:501
trigger_events
Definition trigger.h:22
@ TRIGGER_MPD_MOUNT
mpd mount idle event
Definition trigger.h:49
@ TRIGGER_MPD_UPDATE
mpd database idle event (started or finished)
Definition trigger.h:43
@ TRIGGER_MPD_NEIGHBOR
mpd neighbor idle event
Definition trigger.h:48
@ TRIGGER_MYMPD_SKIPPED
myMPD song skipped (same event is used for skipped sticker)
Definition trigger.h:29
@ TRIGGER_MYMPD_LYRICS
myMPD lyrics
Definition trigger.h:30
@ TRIGGER_MPD_MIXER
mpd mixer idle event (volume)
Definition trigger.h:40
@ TRIGGER_MYMPD_BGIMAGE
myMPD background image
Definition trigger.h:35
@ TRIGGER_MPD_STICKER
mpd sticker idle event
Definition trigger.h:44
@ TRIGGER_MPD_MESSAGE
mpd message idle event
Definition trigger.h:46
@ TRIGGER_MYMPD_SMARTPLS
myMPD smart playlist creation
Definition trigger.h:34
@ TRIGGER_MYMPD_CONNECTED
myMPD connected to mpd event
Definition trigger.h:26
@ TRIGGER_MYMPD_FEEDBACK
myMPD feedback event (love/hate)
Definition trigger.h:28
@ TRIGGER_MPD_OUTPUT
mpd output idle event
Definition trigger.h:41
@ TRIGGER_MYMPD_JUKEBOX
myMPD jukebox
Definition trigger.h:33
@ TRIGGER_MYMPD_TAGART
myMPD tagart
Definition trigger.h:32
@ TRIGGER_MYMPD_START
myMPD was started (before mpd connection)
Definition trigger.h:24
@ TRIGGER_MPD_SUBSCRIPTION
mpd subscription idle event
Definition trigger.h:45
@ TRIGGER_MPD_STORED_PLAYLIST
mpd playlist idle event
Definition trigger.h:37
@ TRIGGER_MPD_QUEUE
mpd queue idle event
Definition trigger.h:38
@ TRIGGER_MYMPD_DISCONNECTED
myMPD disconnect from mpd event
Definition trigger.h:27
@ TRIGGER_MPD_PLAYER
mpd player idle event
Definition trigger.h:39
@ TRIGGER_MPD_DATABASE
mpd database has changed
Definition trigger.h:36
@ TRIGGER_MPD_PARTITION
mpd partition idle event
Definition trigger.h:47
@ TRIGGER_MYMPD_SCROBBLE
myMPD scrobble event (same event is used for last played sticker / list)
Definition trigger.h:23
@ TRIGGER_MYMPD_ALBUMART
myMPD albumart
Definition trigger.h:31
@ TRIGGER_MYMPD_STOP
myMPD stops
Definition trigger.h:25
@ TRIGGER_MPD_OPTIONS
mpd options idle event
Definition trigger.h:42
sds mympd_api_trigger_get(struct t_list *trigger_list, sds buffer, unsigned request_id, unsigned trigger_id)
Definition trigger.c:354
sds mympd_api_trigger_print_event_list(sds buffer)
Definition trigger.c:131