aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/media
diff options
context:
space:
mode:
authorManuel Bachmann <manuel.bachmann@iot.bzh>2016-01-26 15:32:37 +0100
committerManuel Bachmann <manuel.bachmann@iot.bzh>2016-01-26 15:32:37 +0100
commitae8e72788e8f2db33efea6045e5ee835266b10eb (patch)
tree7f2010696a61bed78c74b292996c1ec95b3ff249 /plugins/media
parentf1a75365067fb89dd293aa2c8e003c3b041a3c9a (diff)
Fix getPostFile() upload function, return bare JSON in list
getPostFile() does not fail anymore when creating a new folder (return value was incorrect). Media Plugin list API now directly returns JSON, with track list array indexed as "list". Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Diffstat (limited to 'plugins/media')
-rw-r--r--plugins/media/media-api.c22
-rw-r--r--plugins/media/media-api.h2
-rw-r--r--plugins/media/media-rygel.c4
3 files changed, 19 insertions, 9 deletions
diff --git a/plugins/media/media-api.c b/plugins/media/media-api.c
index 257b1cf1..e91eb39c 100644
--- a/plugins/media/media-api.c
+++ b/plugins/media/media-api.c
@@ -64,15 +64,12 @@ STATIC json_object* list (AFB_request *request) { /* AFB_SESSION_CHECK */
mediaCtxHandleT *ctx = (mediaCtxHandleT*)request->context;
json_object *jresp;
- char *result;
- result = _rygel_list (ctx);
+ jresp = _rygel_list (ctx);
- if (!result)
+ if (!jresp)
return jsonNewMessage(AFB_FAIL, "No content found in media server");
- jresp = json_object_new_object();
- json_object_object_add(jresp, "list", json_object_new_string (result));
return jresp;
}
@@ -155,9 +152,11 @@ STATIC json_object* seek (AFB_request *request) { /* AFB_SESSION_CHECK */
return jsonNewMessage(AFB_SUCCESS, "Seeked media");
}
-STATIC json_object* upload (AFB_request *request) { /* AFB_SESSION_CHECK */
+STATIC json_object* upload (AFB_request *request, AFB_PostItem *item) { /* AFB_SESSION_CHECK */
mediaCtxHandleT *ctx = (mediaCtxHandleT*)request->context;
+ AFB_PostCtx *postFileCtx;
+#if 0
const char *value = getQueryValue (request, "value");
json_object *jresp;
char path[256];
@@ -165,7 +164,17 @@ STATIC json_object* upload (AFB_request *request) { /* AFB_SESSION_CHECK */
/* no "?value=" parameter : return error */
if (!value)
return jsonNewMessage(AFB_FAIL, "You must provide a file name");
+#endif
+ if (item == NULL) {
+ postFileCtx = getPostContext (request);
+ if (postFileCtx) {
+ postFileCtx->errcode = MHD_HTTP_OK;
+ postFileCtx->jresp = jsonNewMessage (AFB_SUCCESS, "upload=%s done", getPostPath (request));
+ }
+ }
+ return getPostFile (request, item, "media");
+#if 0
snprintf (path, sizeof(path), "/tmp/%s", value);
if (access (path, R_OK) == -1)
return jsonNewMessage(AFB_FAIL, "File not found");
@@ -174,6 +183,7 @@ STATIC json_object* upload (AFB_request *request) { /* AFB_SESSION_CHECK */
return jsonNewMessage(AFB_FAIL, "Error when uploading file... could not complete");
return jsonNewMessage(AFB_SUCCESS, "File successfully uploaded");
+#endif
}
STATIC json_object* ping (AFB_request *request) { /* AFB_SESSION_NONE */
diff --git a/plugins/media/media-api.h b/plugins/media/media-api.h
index 70dcc1e6..5a3cf9f0 100644
--- a/plugins/media/media-api.h
+++ b/plugins/media/media-api.h
@@ -29,6 +29,6 @@ typedef struct {
unsigned int index; /* currently selected media file */
} mediaCtxHandleT;
-PUBLIC char* _rygel_list (mediaCtxHandleT *);
+PUBLIC json_object* _rygel_list (mediaCtxHandleT *);
#endif /* MEDIA_API_H */
diff --git a/plugins/media/media-rygel.c b/plugins/media/media-rygel.c
index be8cb96d..32969b2d 100644
--- a/plugins/media/media-rygel.c
+++ b/plugins/media/media-rygel.c
@@ -88,7 +88,7 @@ PUBLIC void _rygel_free (mediaCtxHandleT *ctx) {
dev_ctx_c->content_res = NULL;
}
-PUBLIC char* _rygel_list (mediaCtxHandleT *ctx) {
+PUBLIC json_object* _rygel_list (mediaCtxHandleT *ctx) {
dev_ctx_T *dev_ctx_c = (dev_ctx_T*)ctx->media_server;
json_object *json_o, *json_a;
@@ -136,7 +136,7 @@ PUBLIC char* _rygel_list (mediaCtxHandleT *ctx) {
json_object_object_add (json_o, "list", json_a);
- return (char*) json_object_to_json_string (json_o);
+ return json_o;
}
PUBLIC unsigned char _rygel_select (mediaCtxHandleT *ctx, unsigned int index) {