.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,
.get = epggrab_channel_class_modid_get,
.set = epggrab_channel_class_modid_set,
.opts = PO_RDONLY | PO_HIDDEN,
+ .group = 1
},
{
.type = PT_STR,
.name = N_("Module"),
.get = epggrab_channel_class_module_get,
.opts = PO_RDONLY | PO_NOSAVE,
+ .group = 1
},
{
.type = PT_STR,
.name = N_("Path"),
.get = epggrab_channel_class_path_get,
.opts = PO_RDONLY | PO_NOSAVE,
+ .group = 1
},
{
.type = PT_TIME,
.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,
.name = N_("Names"),
.get = epggrab_channel_class_names_get,
.set = epggrab_channel_class_names_set,
+ .group = 1
},
{
.type = PT_S64,
.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,
.get = epggrab_channel_class_channels_get,
.list = channel_class_get_list,
.rend = epggrab_channel_class_channels_rend,
+ .group = 1
},
{
.type = PT_BOOL,
.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
},
{}
}
.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,
.opts = PO_RDONLY | PO_HIDDEN,
.get = profile_class_class_get,
.set = profile_class_class_set,
+ .group = 1
},
{
.type = PT_BOOL,
.name = N_("Enabled"),
.off = offsetof(profile_t, pro_enabled),
.get_opts = profile_class_enabled_opts,
+ .group = 1
},
{
.type = PT_BOOL,
.name = N_("Default"),
.set = profile_class_default_set,
.get = profile_class_default_get,
+ .opts = PO_EXPERT,
+ .group = 1
},
{
.type = PT_STR,
.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,
.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,
.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,
.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
},
{ }
}
.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
},
{ }
}
.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
},
{ }
}
.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
},
{ }
}
.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,
.off = offsetof(profile_transcode_t, pro_mc),
.def.i = MC_MATROSKA,
.list = profile_class_mc_list,
+ .group = 1
},
{
.type = PT_U32,
.name = N_("Resolution (height)"),
.off = offsetof(profile_transcode_t, pro_resolution),
.def.u32 = 384,
+ .group = 2
},
{
.type = PT_U32,
.off = offsetof(profile_transcode_t, pro_channels),
.def.u32 = 2,
.list = profile_class_channels_list,
+ .opts = PO_ADVANCED,
+ .group = 2
},
{
.type = PT_STR,
.name = N_("Language"),
.off = offsetof(profile_transcode_t, pro_language),
.list = profile_class_language_list,
+ .opts = PO_ADVANCED,
+ .group = 2
},
{
.type = PT_STR,
.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,
.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,
.off = offsetof(profile_transcode_t, pro_scodec),
.def.s = "",
.list = profile_class_scodec_list,
+ .opts = PO_ADVANCED,
+ .group = 2
},
{ }
}