+STATIC json_object* seek (AFB_request *request) { /* AFB_SESSION_CHECK */
+
+ mediaCtxHandleT *ctx = (mediaCtxHandleT*)request->context;
+ const char *value = getQueryValue (request, "value");
+
+ /* no "?value=" parameter : return error */
+ if (!value)
+ return jsonNewMessage(AFB_FAIL, "You must provide a time");
+
+ if (!_rygel_do (ctx, SEEK, value))
+ return jsonNewMessage(AFB_FAIL, "Could not seek chosen media");
+
+ return jsonNewMessage(AFB_SUCCESS, "Seeked media");
+}
+
+STATIC json_object* upload (AFB_request *request) { /* AFB_SESSION_CHECK */
+
+ mediaCtxHandleT *ctx = (mediaCtxHandleT*)request->context;
+ const char *value = getQueryValue (request, "value");
+ json_object *jresp;
+ char path[256];
+
+ /* no "?value=" parameter : return error */
+ if (!value)
+ return jsonNewMessage(AFB_FAIL, "You must provide a file name");
+
+ snprintf (path, sizeof(path), "/tmp/%s", value);
+ if (access (path, R_OK) == -1)
+ return jsonNewMessage(AFB_FAIL, "File not found");
+
+ if (!_rygel_upload (ctx, path))
+ return jsonNewMessage(AFB_FAIL, "Error when uploading file... could not complete");
+
+ return jsonNewMessage(AFB_SUCCESS, "File successfully uploaded");
+}
+