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
53
58 int event;
59 struct t_list *arguments;
60};
61
66 sds script;
68};
69
70bool mympd_api_trigger_save(struct t_list *trigger_list, sds name, int trigger_id, int event, sds partition,
71 struct t_trigger_data *trigger_data, sds *error);
72sds mympd_api_trigger_list(struct t_list *trigger_list, sds buffer, unsigned request_id, const char *partition);
73sds mympd_api_trigger_get(struct t_list *trigger_list, sds buffer, unsigned request_id, unsigned trigger_id);
74bool mympd_api_trigger_file_read(struct t_list *trigger_list, sds workdir);
75bool mympd_api_trigger_file_save(struct t_list *trigger_list, sds workdir);
76void mympd_api_trigger_list_clear(struct t_list *trigger_list);
77int mympd_api_trigger_execute(struct t_list *trigger_list, enum trigger_events event,
78 const char *partition, struct t_list *arguments);
79int mympd_api_trigger_execute_http(struct t_list *trigger_list, enum trigger_events event,
80 const char *partition, unsigned long conn_id, unsigned request_id,
81 struct t_list *arguments);
82int mympd_api_trigger_execute_feedback(struct t_list *trigger_list, sds uri,
83 enum mympd_feedback_type type, int value, const char *partition);
84bool mympd_api_trigger_delete(struct t_list *trigger_list, unsigned idx, sds *error);
85const char *mympd_api_event_name(int event);
87
89void mympd_api_trigger_data_free(struct t_trigger_data *trigger_data);
90
92void mympd_api_event_data_free(struct t_event_data *event_data);
93void mympd_api_event_data_free_void(void *event_data);
94
95#endif
MPD sticker helpers.
mympd_feedback_type
Definition sticker.h:68
Linked list implementation.
Definition trigger.h:57
struct t_list * arguments
arguments for the event
Definition trigger.h:59
int event
event id
Definition trigger.h:58
Definition list.h:32
Definition trigger.h:65
struct t_list arguments
arguments for the script to execute
Definition trigger.h:67
sds script
script to execute
Definition trigger.h:66
const char * mympd_api_event_name(int event)
Definition trigger.c:111
void mympd_api_trigger_list_clear(struct t_list *trigger_list)
Definition trigger.c:474
bool mympd_api_trigger_delete(struct t_list *trigger_list, unsigned idx, sds *error)
Definition trigger.c:286
void mympd_api_trigger_data_free(struct t_trigger_data *trigger_data)
Definition trigger.c:493
struct t_trigger_data * mympd_api_trigger_data_new(void)
Definition trigger.c:482
void mympd_api_event_data_free_void(void *event_data)
Definition trigger.c:525
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:261
void mympd_api_event_data_free(struct t_event_data *event_data)
Definition trigger.c:516
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:192
int mympd_api_trigger_execute(struct t_list *trigger_list, enum trigger_events event, const char *partition, struct t_list *arguments)
Definition trigger.c:155
bool mympd_api_trigger_file_read(struct t_list *trigger_list, sds workdir)
Definition trigger.c:395
bool mympd_api_trigger_file_save(struct t_list *trigger_list, sds workdir)
Definition trigger.c:462
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:229
sds mympd_api_trigger_list(struct t_list *trigger_list, sds buffer, unsigned request_id, const char *partition)
Definition trigger.c:305
struct t_event_data * mympd_api_event_data_new(int event, struct t_list *arguments)
Definition trigger.c:505
trigger_events
Definition trigger.h:22
@ TRIGGER_MPD_MOUNT
mpd mount idle event
Definition trigger.h:51
@ TRIGGER_MPD_UPDATE
mpd database idle event (started or finished)
Definition trigger.h:45
@ TRIGGER_MPD_NEIGHBOR
mpd neighbor idle event
Definition trigger.h:50
@ TRIGGER_MYMPD_FOLDERART
myMPD folderart
Definition trigger.h:37
@ 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:42
@ TRIGGER_MYMPD_BGIMAGE
myMPD background image
Definition trigger.h:35
@ TRIGGER_MPD_STICKER
mpd sticker idle event
Definition trigger.h:46
@ TRIGGER_MPD_MESSAGE
mpd message idle event
Definition trigger.h:48
@ 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:43
@ TRIGGER_MYMPD_JUKEBOX
myMPD jukebox
Definition trigger.h:33
@ TRIGGER_MYMPD_PLAYLISTART
myMPD playlistart
Definition trigger.h:36
@ 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:47
@ TRIGGER_MPD_STORED_PLAYLIST
mpd playlist idle event
Definition trigger.h:39
@ TRIGGER_MPD_QUEUE
mpd queue idle event
Definition trigger.h:40
@ TRIGGER_MYMPD_DISCONNECTED
myMPD disconnect from mpd event
Definition trigger.h:27
@ TRIGGER_MPD_PLAYER
mpd player idle event
Definition trigger.h:41
@ TRIGGER_MPD_DATABASE
mpd database has changed
Definition trigger.h:38
@ TRIGGER_MPD_PARTITION
mpd partition idle event
Definition trigger.h:49
@ 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:44
sds mympd_api_trigger_get(struct t_list *trigger_list, sds buffer, unsigned request_id, unsigned trigger_id)
Definition trigger.c:357
sds mympd_api_trigger_print_event_list(sds buffer)
Definition trigger.c:133