From: Jaroslav Kysela Date: Wed, 2 Dec 2015 19:50:11 +0000 (+0100) Subject: WEBUI: streaming profile updates, epggrab channels updates X-Git-Tag: v4.2.1~1401 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1c1c8140e5f45f3816d453e1af877d4d74e8ad42;p=thirdparty%2Ftvheadend.git WEBUI: streaming profile updates, epggrab channels updates --- diff --git a/src/epggrab/channel.c b/src/epggrab/channel.c index 125d650b2..780e42a79 100644 --- a/src/epggrab/channel.c +++ b/src/epggrab/channel.c @@ -650,12 +650,20 @@ const idclass_t epggrab_channel_class = { .ic_save = epggrab_channel_class_save, .ic_get_title = epggrab_channel_class_get_title, .ic_delete = epggrab_channel_class_delete, + .ic_groups = (const property_group_t[]) { + { + .name = N_("Configuration"), + .number = 1, + }, + {} + }, .ic_properties = (const property_t[]){ { .type = PT_BOOL, .id = "enabled", .name = N_("Enabled"), .off = offsetof(epggrab_channel_t, enabled), + .group = 1 }, { .type = PT_STR, @@ -664,6 +672,7 @@ const idclass_t epggrab_channel_class = { .get = epggrab_channel_class_modid_get, .set = epggrab_channel_class_modid_set, .opts = PO_RDONLY | PO_HIDDEN, + .group = 1 }, { .type = PT_STR, @@ -671,6 +680,7 @@ const idclass_t epggrab_channel_class = { .name = N_("Module"), .get = epggrab_channel_class_module_get, .opts = PO_RDONLY | PO_NOSAVE, + .group = 1 }, { .type = PT_STR, @@ -678,6 +688,7 @@ const idclass_t epggrab_channel_class = { .name = N_("Path"), .get = epggrab_channel_class_path_get, .opts = PO_RDONLY | PO_NOSAVE, + .group = 1 }, { .type = PT_TIME, @@ -685,18 +696,21 @@ const idclass_t epggrab_channel_class = { .name = N_("Updated"), .off = offsetof(epggrab_channel_t, laststamp), .opts = PO_RDONLY | PO_NOSAVE, + .group = 1 }, { .type = PT_STR, .id = "id", .name = N_("ID"), .off = offsetof(epggrab_channel_t, id), + .group = 1 }, { .type = PT_STR, .id = "name", .name = N_("Name"), .off = offsetof(epggrab_channel_t, name), + .group = 1 }, { .type = PT_STR, @@ -704,6 +718,7 @@ const idclass_t epggrab_channel_class = { .name = N_("Names"), .get = epggrab_channel_class_names_get, .set = epggrab_channel_class_names_set, + .group = 1 }, { .type = PT_S64, @@ -711,12 +726,14 @@ const idclass_t epggrab_channel_class = { .id = "number", .name = N_("Number"), .off = offsetof(epggrab_channel_t, lcn), + .group = 1 }, { .type = PT_STR, .id = "icon", .name = N_("Icon"), .off = offsetof(epggrab_channel_t, icon), + .group = 1 }, { .type = PT_STR, @@ -727,6 +744,7 @@ const idclass_t epggrab_channel_class = { .get = epggrab_channel_class_channels_get, .list = channel_class_get_list, .rend = epggrab_channel_class_channels_rend, + .group = 1 }, { .type = PT_BOOL, @@ -734,12 +752,14 @@ const idclass_t epggrab_channel_class = { .name = N_("Only one auto channel"), .off = offsetof(epggrab_channel_t, only_one), .notify = epggrab_channel_class_only_one_notify, + .group = 1 }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), - .off = offsetof(epggrab_channel_t, comment) + .off = offsetof(epggrab_channel_t, comment), + .group = 1 }, {} } diff --git a/src/profile.c b/src/profile.c index 7a0aa7fb9..de0d2adfa 100644 --- a/src/profile.c +++ b/src/profile.c @@ -277,6 +277,13 @@ const idclass_t profile_class = .ic_save = profile_class_save, .ic_get_title = profile_class_get_title, .ic_delete = profile_class_delete, + .ic_groups = (const property_group_t[]) { + { + .name = N_("Configuration"), + .number = 1, + }, + {} + }, .ic_properties = (const property_t[]){ { .type = PT_STR, @@ -285,6 +292,7 @@ const idclass_t profile_class = .opts = PO_RDONLY | PO_HIDDEN, .get = profile_class_class_get, .set = profile_class_class_set, + .group = 1 }, { .type = PT_BOOL, @@ -292,6 +300,7 @@ const idclass_t profile_class = .name = N_("Enabled"), .off = offsetof(profile_t, pro_enabled), .get_opts = profile_class_enabled_opts, + .group = 1 }, { .type = PT_BOOL, @@ -299,6 +308,8 @@ const idclass_t profile_class = .name = N_("Default"), .set = profile_class_default_set, .get = profile_class_default_get, + .opts = PO_EXPERT, + .group = 1 }, { .type = PT_STR, @@ -307,12 +318,14 @@ const idclass_t profile_class = .off = offsetof(profile_t, pro_name), .get_opts = profile_class_name_opts, .notify = idnode_notify_title_changed, + .group = 1 }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), .off = offsetof(profile_t, pro_comment), + .group = 1 }, { .type = PT_INT, @@ -320,14 +333,17 @@ const idclass_t profile_class = .name = N_("Default priority"), .list = profile_class_priority_list, .off = offsetof(profile_t, pro_prio), - .opts = PO_SORTKEY, - .def.i = PROFILE_SPRIO_NORMAL + .opts = PO_SORTKEY | PO_ADVANCED, + .def.i = PROFILE_SPRIO_NORMAL, + .group = 1 }, { .type = PT_INT, .id = "fpriority", .name = N_("Force priority"), .off = offsetof(profile_t, pro_fprio), + .opts = PO_EXPERT, + .group = 1 }, { .type = PT_INT, @@ -335,20 +351,25 @@ const idclass_t profile_class = .name = N_("Timeout (sec) (0=infinite)"), .off = offsetof(profile_t, pro_timeout), .def.i = 5, + .group = 1 }, { .type = PT_BOOL, .id = "restart", .name = N_("Restart on error"), .off = offsetof(profile_t, pro_restart), + .opts = PO_EXPERT, .def.i = 0, + .group = 1 }, { .type = PT_BOOL, .id = "contaccess", .name = N_("Continue even if descrambling fails"), .off = offsetof(profile_t, pro_contaccess), + .opts = PO_EXPERT, .def.i = 1, + .group = 1 }, { .type = PT_INT, @@ -356,8 +377,9 @@ const idclass_t profile_class = .name = N_("Preferred service video type"), .list = profile_class_svfilter_list, .off = offsetof(profile_t, pro_svfilter), - .opts = PO_SORTKEY, - .def.i = PROFILE_SVF_NONE + .opts = PO_SORTKEY | PO_ADVANCED, + .def.i = PROFILE_SVF_NONE, + .group = 1 }, { } } @@ -998,34 +1020,53 @@ const idclass_t profile_mpegts_pass_class = .ic_super = &profile_class, .ic_class = "profile-mpegts", .ic_caption = N_("MPEG-TS Pass-thru/built-in"), + .ic_groups = (const property_group_t[]) { + { + .name = N_("Configuration"), + .number = 1, + }, + { + .name = N_("Rewrite MPEG-TS SI tables"), + .number = 2, + }, + {} + }, .ic_properties = (const property_t[]){ { .type = PT_BOOL, .id = "rewrite_pmt", .name = N_("Rewrite PMT"), .off = offsetof(profile_mpegts_t, pro_rewrite_pmt), + .opts = PO_ADVANCED, .def.i = 1, + .group = 2 }, { .type = PT_BOOL, .id = "rewrite_pat", .name = N_("Rewrite PAT"), .off = offsetof(profile_mpegts_t, pro_rewrite_pat), + .opts = PO_ADVANCED, .def.i = 1, + .group = 2 }, { .type = PT_BOOL, .id = "rewrite_sdt", .name = N_("Rewrite SDT"), .off = offsetof(profile_mpegts_t, pro_rewrite_sdt), + .opts = PO_ADVANCED, .def.i = 1, + .group = 2 }, { .type = PT_BOOL, .id = "rewrite_eit", .name = N_("Rewrite EIT"), .off = offsetof(profile_mpegts_t, pro_rewrite_eit), + .opts = PO_ADVANCED, .def.i = 1, + .group = 2 }, { } } @@ -1099,13 +1140,26 @@ const idclass_t profile_matroska_class = .ic_super = &profile_class, .ic_class = "profile-matroska", .ic_caption = N_("Matroska (mkv)/built-in"), + .ic_groups = (const property_group_t[]) { + { + .name = N_("Configuration"), + .number = 1, + }, + { + .name = N_("Matroska specific"), + .number = 2, + }, + {} + }, .ic_properties = (const property_t[]){ { .type = PT_BOOL, .id = "webm", .name = N_("WEBM"), .off = offsetof(profile_matroska_t, pro_webm), + .opts = PO_ADVANCED, .def.i = 0, + .group = 2 }, { } } @@ -1255,13 +1309,26 @@ const idclass_t profile_libav_matroska_class = .ic_super = &profile_class, .ic_class = "profile-libav-matroska", .ic_caption = N_("Matroska/av-lib"), + .ic_groups = (const property_group_t[]) { + { + .name = N_("Configuration"), + .number = 1, + }, + { + .name = N_("Matroska specific"), + .number = 2, + }, + {} + }, .ic_properties = (const property_t[]){ { .type = PT_BOOL, .id = "webm", .name = N_("WEBM"), .off = offsetof(profile_libav_matroska_t, pro_webm), + .opts = PO_ADVANCED, .def.i = 0, + .group = 2 }, { } } @@ -1497,6 +1564,17 @@ const idclass_t profile_transcode_class = .ic_super = &profile_class, .ic_class = "profile-transcode", .ic_caption = N_("Transcode/av-lib"), + .ic_groups = (const property_group_t[]) { + { + .name = N_("Configuration"), + .number = 1, + }, + { + .name = N_("Transcoding"), + .number = 2, + }, + {} + }, .ic_properties = (const property_t[]){ { .type = PT_INT, @@ -1505,6 +1583,7 @@ const idclass_t profile_transcode_class = .off = offsetof(profile_transcode_t, pro_mc), .def.i = MC_MATROSKA, .list = profile_class_mc_list, + .group = 1 }, { .type = PT_U32, @@ -1512,6 +1591,7 @@ const idclass_t profile_transcode_class = .name = N_("Resolution (height)"), .off = offsetof(profile_transcode_t, pro_resolution), .def.u32 = 384, + .group = 2 }, { .type = PT_U32, @@ -1520,6 +1600,8 @@ const idclass_t profile_transcode_class = .off = offsetof(profile_transcode_t, pro_channels), .def.u32 = 2, .list = profile_class_channels_list, + .opts = PO_ADVANCED, + .group = 2 }, { .type = PT_STR, @@ -1527,6 +1609,8 @@ const idclass_t profile_transcode_class = .name = N_("Language"), .off = offsetof(profile_transcode_t, pro_language), .list = profile_class_language_list, + .opts = PO_ADVANCED, + .group = 2 }, { .type = PT_STR, @@ -1535,13 +1619,17 @@ const idclass_t profile_transcode_class = .off = offsetof(profile_transcode_t, pro_vcodec), .def.s = "libx264", .list = profile_class_vcodec_list, + .opts = PO_ADVANCED, + .group = 2 }, { .type = PT_U32, .id = "vbitrate", .name = N_("Video bitrate (kb/s) (0=auto)"), .off = offsetof(profile_transcode_t, pro_vbitrate), + .opts = PO_ADVANCED, .def.u32 = 0, + .group = 2 }, { .type = PT_STR, @@ -1550,13 +1638,17 @@ const idclass_t profile_transcode_class = .off = offsetof(profile_transcode_t, pro_acodec), .def.s = "libvorbis", .list = profile_class_acodec_list, + .opts = PO_ADVANCED, + .group = 2 }, { .type = PT_U32, .id = "abitrate", .name = N_("Audio Bitrate (kb/s) (0=Auto)"), .off = offsetof(profile_transcode_t, pro_abitrate), + .opts = PO_ADVANCED, .def.u32 = 0, + .group = 2 }, { .type = PT_STR, @@ -1565,6 +1657,8 @@ const idclass_t profile_transcode_class = .off = offsetof(profile_transcode_t, pro_scodec), .def.s = "", .list = profile_class_scodec_list, + .opts = PO_ADVANCED, + .group = 2 }, { } }