myMPD API handling
More...
#include "compile_time.h"
#include "src/lib/api.h"
#include "src/lib/log.h"
#include "src/lib/mem.h"
#include "src/lib/msg_queue.h"
#include "src/lib/sds_extras.h"
#include <string.h>
|
| enum mympd_cmd_ids | get_cmd_id (const char *cmd) |
| |
| const char * | get_cmd_id_method_name (enum mympd_cmd_ids cmd_id) |
| |
| bool | check_cmd_acl (enum mympd_cmd_ids cmd_id, enum mympd_cmd_acl_entity ace) |
| |
| void | ws_notify (sds message, const char *partition) |
| |
| void | ws_notify_client (sds message, unsigned request_id) |
| |
| void | ws_script_dialog (sds message, unsigned request_id) |
| |
| struct t_work_response * | create_response (struct t_work_request *request) |
| |
| struct t_work_response * | create_response_new (enum work_response_types type, unsigned long conn_id, unsigned request_id, enum mympd_cmd_ids cmd_id, const char *partition) |
| |
| struct t_work_request * | create_request (enum work_request_types type, unsigned long conn_id, unsigned request_id, enum mympd_cmd_ids cmd_id, const char *data, const char *partition) |
| |
| void | free_request (struct t_work_request *request) |
| |
| void | free_response (struct t_work_response *response) |
| |
| bool | push_response (struct t_work_response *response) |
| |
| bool | push_request (struct t_work_request *request, unsigned id) |
| |
◆ IFV_N
Compile time initialization check
◆ check_cmd_acl()
Checks the myMPD method ACL
- Parameters
-
| cmd_id | method to check |
| ace | Access method |
- Returns
- bool true on success, else false
◆ create_request()
Mallocs and initializes a t_work_request struct
- Parameters
-
| type | work request type |
| conn_id | connection id (from webserver) |
| request_id | id for the request |
| cmd_id | myMPD API method |
| data | jsonrpc request, if NULL the start of a jsonrpc request is added, use a empty string to assign NULL, else a sds string is malloced from data |
| partition | mpd partition |
- Returns
- the initialized t_work_request struct
◆ create_response()
Mallocs and initializes a t_work_response struct, as reply of the provided request
- Parameters
-
| request | the request the ids are copied |
- Returns
- the initialized t_work_response struct
◆ create_response_new()
Mallocs and initializes a t_work_response struct
- Parameters
-
| type | work response type |
| conn_id | connection id (from webserver) |
| request_id | id for the request |
| cmd_id | myMPD API method |
| partition | mpd partition |
- Returns
- the initialized t_work_response struct
◆ free_request()
Frees the request struct
- Parameters
-
| request | request struct to free |
◆ free_response()
Frees the response struct
- Parameters
-
| response | response struct to free |
◆ get_cmd_id()
Converts a string to the mympd_cmd_ids enum
- Parameters
-
- Returns
- enum mympd_cmd_ids
◆ get_cmd_id_method_name()
Converts the mympd_cmd_ids enum to the string
- Parameters
-
- Returns
- the API method as string
◆ push_request()
Pushes the request to a queue
- Parameters
-
| request | pointer to request struct to push |
| id | request id |
- Returns
- true on success, else false
◆ push_response()
Pushes the response to a queue or frees it
- Parameters
-
| response | pointer to response struct to push |
- Returns
- true on success, else false
◆ ws_notify()
| void ws_notify |
( |
sds |
message, |
|
|
const char * |
partition |
|
) |
| |
Sends a websocket message to all clients in a partition
- Parameters
-
| message | the message to send |
| partition | mpd partition |
◆ ws_notify_client()
| void ws_notify_client |
( |
sds |
message, |
|
|
unsigned |
request_id |
|
) |
| |
Sends a websocket message to a client
- Parameters
-
| message | the message to send |
| request_id | the jsonrpc id of the client |
◆ ws_script_dialog()
| void ws_script_dialog |
( |
sds |
message, |
|
|
unsigned |
request_id |
|
) |
| |
Sends a websocket message to a client to display a dialog.
- Parameters
-
| message | The message to send |
| request_id | the jsonrpc id of the client |
◆ mympd_cmd_acl
ACL for myMPD API methods
◆ mympd_cmd_strs
myMPD API methods as strings