static void gss_program_add_resources (GssProgram * program) { char *s; s = g_strdup_printf ("/%s", GST_OBJECT_NAME (program)); program->resource = gss_server_add_resource (program->server, s, GSS_RESOURCE_UI, "text/html", gss_program_get_resource, NULL, gss_config_post_resource, program); g_free (s); s = g_strdup_printf ("/%s.frag", GST_OBJECT_NAME (program)); gss_server_add_resource (program->server, s, GSS_RESOURCE_UI, "text/plain", gss_program_frag_resource, NULL, NULL, program); g_free (s); s = g_strdup_printf ("/%s.list", GST_OBJECT_NAME (program)); gss_server_add_resource (program->server, s, GSS_RESOURCE_UI, "text/plain", gss_program_list_resource, NULL, NULL, program); g_free (s); s = g_strdup_printf ("/%s-snapshot.png", GST_OBJECT_NAME (program)); gss_server_add_resource (program->server, s, GSS_RESOURCE_UI, "image/png", gss_program_png_resource, NULL, NULL, program); g_free (s); s = g_strdup_printf ("/%s-snapshot.jpeg", GST_OBJECT_NAME (program)); gss_server_add_resource (program->server, s, 0, "image/jpeg", gss_program_jpeg_resource, NULL, NULL, program); g_free (s); }
static void gss_program_add_resources (GssProgram * program) { char *s; s = g_strdup_printf ("/%s", GSS_OBJECT_NAME (program)); program->resource = gss_server_add_resource (GSS_OBJECT_SERVER (program), s, GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_program_get_resource, NULL, gss_config_post_resource, program); g_free (s); s = g_strdup_printf ("/%s.frag", GSS_OBJECT_NAME (program)); gss_server_add_resource (GSS_OBJECT_SERVER (program), s, GSS_RESOURCE_UI, GSS_TEXT_PLAIN, gss_program_frag_resource, NULL, NULL, program); g_free (s); s = g_strdup_printf ("/%s.list", GSS_OBJECT_NAME (program)); gss_server_add_resource (GSS_OBJECT_SERVER (program), s, GSS_RESOURCE_UI, GSS_TEXT_PLAIN, gss_program_list_resource, NULL, NULL, program); g_free (s); s = g_strdup_printf ("/%s-snapshot.png", GSS_OBJECT_NAME (program)); gss_server_add_resource (GSS_OBJECT_SERVER (program), s, GSS_RESOURCE_UI, "image/png", gss_program_png_resource, NULL, NULL, program); g_free (s); s = g_strdup_printf ("/%s-snapshot.jpeg", GSS_OBJECT_NAME (program)); gss_server_add_resource (GSS_OBJECT_SERVER (program), s, 0, "image/jpeg", gss_program_jpeg_resource, NULL, NULL, program); g_free (s); }
void gss_config_add_server_resources (GssServer * server) { GssResource *r; r = gss_server_add_resource (server, "/admin/server", GSS_RESOURCE_ADMIN, "text/html", gss_server_get_resource, NULL, gss_server_post_resource, server); gss_server_add_admin_resource (server, r, "Server"); r = gss_server_add_resource (server, "/admin/config", GSS_RESOURCE_ADMIN, "text/html", gss_config_get_resource, NULL, gss_config_post_resource, NULL); gss_server_add_resource (server, "/admin/config_file", GSS_RESOURCE_ADMIN, "text/plain", gss_config_file_get_resource, NULL, NULL, NULL); }
static void gss_server_attach (GssObject * object, GssServer * x_server) { GssServer *server = GSS_SERVER (object); GssResource *r; r = gss_server_add_resource (GSS_OBJECT_SERVER (object), "/admin/server", GSS_RESOURCE_ADMIN, GSS_TEXT_HTML, gss_server_get_resource, NULL, gss_server_post_resource, server); r->name = g_strdup ("Server"); gss_module_set_admin_resource (GSS_MODULE (server), r); }
void gss_vod_setup (GssServer * server) { GDir *dir; dir = g_dir_open (server->archive_dir, 0, NULL); if (dir) { const gchar *name = g_dir_read_name (dir); while (name) { if (g_str_has_suffix (name, ".webm")) { GssProgram *program; GssStream *stream; char *s; program = gss_server_add_program (server, name); program->is_archive = TRUE; stream = gss_stream_new (GSS_STREAM_TYPE_WEBM, 640, 360, 600); gss_program_add_stream (program, stream); s = g_strdup_printf ("%s-%dx%d-%dkbps%s.%s", GSS_OBJECT_NAME (program), stream->width, stream->height, stream->bitrate / 1000, gss_stream_type_get_mod (stream->type), gss_stream_type_get_ext (stream->type)); gst_object_set_name (GST_OBJECT (stream), s); g_free (s); s = g_strdup_printf ("/%s", GSS_OBJECT_NAME (stream)); gss_server_add_resource (GSS_OBJECT_SERVER (program), s, GSS_RESOURCE_HTTP_ONLY, gss_stream_type_get_content_type (stream->type), vod_resource_chunked, NULL, NULL, program); g_free (s); } name = g_dir_read_name (dir); } g_dir_close (dir); } }
static void gss_server_setup_resources (GssServer * server) { gss_session_add_session_callbacks (server); gss_server_add_resource (server, "/", GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_server_resource_main_page, NULL, NULL, NULL); gss_server_add_resource (server, "/list", GSS_RESOURCE_UI, GSS_TEXT_PLAIN, gss_server_resource_list, NULL, NULL, NULL); gss_server_add_string_resource (server, "/check", 0, GSS_TEXT_HTML, "<!DOCTYPE html><html><title>Status</title>" "<body>status: ok</body></html>\n"); gss_server_add_resource (server, "/about", GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_server_resource_about, NULL, NULL, NULL); gss_server_add_resource (server, "/contact", GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_resource_unimplemented, NULL, NULL, NULL); gss_server_add_resource (server, "/add_program", GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_resource_unimplemented, NULL, NULL, NULL); gss_server_add_resource (server, "/dashboard", GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_resource_unimplemented, NULL, NULL, NULL); gss_server_add_resource (server, "/monitor", GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_resource_unimplemented, NULL, NULL, NULL); gss_server_add_resource (server, "/meep", GSS_RESOURCE_UI, GSS_TEXT_HTML, gss_resource_unimplemented, NULL, NULL, NULL); if (server->enable_cortado) { gss_server_add_file_resource (server, "/cortado.jar", 0, "application/java-archive"); } if (server->enable_osplayer) { gss_server_add_file_resource (server, "/OSplayer.swf", 0, "application/x-shockwave-flash"); gss_server_add_file_resource (server, "/AC_RunActiveContent.js", 0, "application/javascript"); } if (server->enable_flowplayer) { gss_server_add_file_resource (server, "/flowplayer-3.2.15.swf", 0, "application/x-shockwave-flash"); gss_server_add_file_resource (server, "/flowplayer.controls-3.2.14.swf", 0, "application/x-shockwave-flash"); gss_server_add_file_resource (server, "/flowplayer-3.2.11.min.js", 0, "application/javascript"); } gss_server_add_static_resource (server, "/images/footer-entropywave.png", 0, "image/png", gss_data_footer_entropywave_png, gss_data_footer_entropywave_png_len); gss_server_add_string_resource (server, "/robots.txt", 0, GSS_TEXT_PLAIN, "User-agent: *\nDisallow: /\n"); gss_server_add_static_resource (server, "/dash.min.js", 0, "text/javascript", gss_data_dash_min_js, gss_data_dash_min_js_len); gss_server_add_static_resource (server, "/include.js", 0, "text/javascript", gss_data_include_js, gss_data_include_js_len); gss_server_add_static_resource (server, "/bootstrap/css/bootstrap-responsive.css", 0, "text/css", gss_data_bootstrap_responsive_css, gss_data_bootstrap_responsive_css_len); gss_server_add_static_resource (server, "/bootstrap/css/bootstrap.css", 0, "text/css", gss_data_bootstrap_css, gss_data_bootstrap_css_len); gss_server_add_static_resource (server, "/bootstrap/js/bootstrap.js", 0, "text/javascript", gss_data_bootstrap_js, gss_data_bootstrap_js_len); gss_server_add_static_resource (server, "/bootstrap/js/jquery.js", 0, "text/javascript", gss_data_jquery_js, gss_data_jquery_js_len); gss_server_add_static_resource (server, "/bootstrap/img/glyphicons-halflings.png", 0, "image/png", gss_data_glyphicons_halflings_png, gss_data_glyphicons_halflings_png_len); gss_server_add_static_resource (server, "/bootstrap/img/glyphicons-halflings-white.png", 0, "image/png", gss_data_glyphicons_halflings_white_png, gss_data_glyphicons_halflings_white_png_len); gss_server_add_static_resource (server, "/no-snapshot.jpg", 0, "image/jpeg", gss_data_no_snapshot_jpg, gss_data_no_snapshot_jpg_len); gss_server_add_static_resource (server, "/offline.jpg", 0, "image/jpeg", gss_data_offline_jpg, gss_data_offline_jpg_len); gss_server_add_static_resource (server, "/sign_in_blue.png", 0, "image/png", gss_data_sign_in_blue_png, gss_data_sign_in_blue_png_len); gss_server_add_resource (server, "/assets/", GSS_RESOURCE_PREFIX, NULL, gss_asset_get_resource, NULL, NULL, NULL); gss_playready_setup (server); }