From edeffe2f8f5f6c5e3a8ff3dfaf31659318ca472e Mon Sep 17 00:00:00 2001 From: John Stebbins Date: Thu, 27 Jun 2019 14:36:39 -0700 Subject: [PATCH] LinGui: more code refactoring separate job and title dict functions into separate files --- gtk/src/Makefile.am | 4 + gtk/src/audiohandler.c | 1 + gtk/src/callbacks.c | 1 + gtk/src/hb-backend.c | 1 + gtk/src/jobdict.c | 219 ++++++++++++++++++++++++++++++++++++++ gtk/src/jobdict.h | 46 ++++++++ gtk/src/preview.c | 1 + gtk/src/queuehandler.c | 1 + gtk/src/settings.c | 214 ------------------------------------- gtk/src/settings.h | 21 ---- gtk/src/subtitlehandler.c | 1 + gtk/src/titledict.c | 47 ++++++++ gtk/src/titledict.h | 33 ++++++ 13 files changed, 355 insertions(+), 235 deletions(-) create mode 100644 gtk/src/jobdict.c create mode 100644 gtk/src/jobdict.h create mode 100644 gtk/src/titledict.c create mode 100644 gtk/src/titledict.h diff --git a/gtk/src/Makefile.am b/gtk/src/Makefile.am index f7ba85cd5..e91c0cce8 100644 --- a/gtk/src/Makefile.am +++ b/gtk/src/Makefile.am @@ -76,6 +76,10 @@ ghb_SOURCES = \ subtitlehandler.c \ subtitlehandler.h \ main.c \ + jobdict.c \ + jobdict.h \ + titledict.c \ + titledict.h \ settings.c \ settings.h \ resources.c \ diff --git a/gtk/src/audiohandler.c b/gtk/src/audiohandler.c index d5ad15c89..c4dbac716 100644 --- a/gtk/src/audiohandler.c +++ b/gtk/src/audiohandler.c @@ -26,6 +26,7 @@ #include "ghbcompat.h" #include "hb.h" #include "settings.h" +#include "jobdict.h" #include "hb-backend.h" #include "values.h" #include "callbacks.h" diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index 1383f7b9d..1304421ca 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -78,6 +78,7 @@ #include "subtitlehandler.h" #include "resources.h" #include "settings.h" +#include "jobdict.h" #include "presets.h" #include "preview.h" #include "values.h" diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c index 04072d4c2..cee449852 100644 --- a/gtk/src/hb-backend.c +++ b/gtk/src/hb-backend.c @@ -31,6 +31,7 @@ #include #include "hb-backend.h" #include "settings.h" +#include "jobdict.h" #include "callbacks.h" #include "subtitlehandler.h" #include "audiohandler.h" diff --git a/gtk/src/jobdict.c b/gtk/src/jobdict.c new file mode 100644 index 000000000..32438e7ed --- /dev/null +++ b/gtk/src/jobdict.c @@ -0,0 +1,219 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ +/* + * jobdict.c + * Copyright (C) John Stebbins 2008-2019 + * + * settings.c is free software. + * + * You may redistribute it and/or modify it under the terms of the + * GNU General Public License, as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * settings.c is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with main.c. If not, write to: + * The Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor + * Boston, MA 02110-1301, USA. + */ + +#include "values.h" +#include "jobdict.h" + +GhbValue *ghb_get_job_settings(GhbValue *settings) +{ + GhbValue *job; + job = ghb_dict_get(settings, "Job"); + if (job == NULL) + { + job = ghb_dict_new(); + ghb_dict_set(settings, "Job", job); + } + return job; +} + +GhbValue* ghb_get_job_dest_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *dest = ghb_dict_get(job, "Destination"); + if (dest == NULL) + { + dest = ghb_dict_new(); + ghb_dict_set(job, "Destination", dest); + } + return dest; +} + +GhbValue* ghb_get_job_chapter_list(GhbValue *settings) +{ + GhbValue *dest = ghb_get_job_dest_settings(settings); + GhbValue *chapters = ghb_dict_get(dest, "ChapterList"); + if (chapters == NULL) + { + chapters = ghb_array_new(); + ghb_dict_set(dest, "ChapterList", chapters); + } + return chapters; +} + +GhbValue* ghb_get_job_mp4_settings(GhbValue *settings) +{ + GhbValue *dest = ghb_get_job_dest_settings(settings); + GhbValue *mp4 = ghb_dict_get(dest, "Mp4Options"); + if (mp4 == NULL) + { + mp4 = ghb_dict_new(); + ghb_dict_set(dest, "Mp4Options", mp4); + } + return mp4; +} + +GhbValue* ghb_get_job_source_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *source = ghb_dict_get(job, "Source"); + if (source == NULL) + { + source = ghb_dict_new(); + ghb_dict_set(job, "Source", source); + } + return source; +} + +GhbValue* ghb_get_job_range_settings(GhbValue *settings) +{ + GhbValue *source = ghb_get_job_source_settings(settings); + GhbValue *range = ghb_dict_get(source, "Range"); + if (range == NULL) + { + range = ghb_dict_new(); + ghb_dict_set(source, "Range", range); + } + return range; +} + +GhbValue* ghb_get_job_par_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *par = ghb_dict_get(job, "PAR"); + if (par == NULL) + { + par = ghb_dict_new(); + ghb_dict_set(job, "PAR", par); + } + return par; +} + +GhbValue* ghb_get_job_video_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *video = ghb_dict_get(job, "Video"); + if (video == NULL) + { + video = ghb_dict_new(); + ghb_dict_set(job, "Video", video); + } + return video; +} + +GhbValue *ghb_get_job_audio_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *audio = ghb_dict_get(job, "Audio"); + if (audio == NULL) + { + audio = ghb_dict_new(); + ghb_dict_set(job, "Audio", audio); + } + return audio; +} + +GhbValue *ghb_get_job_audio_list(GhbValue *settings) +{ + GhbValue *audio_dict = ghb_get_job_audio_settings(settings); + GhbValue *audio_list = ghb_dict_get(audio_dict, "AudioList"); + if (audio_list == NULL) + { + audio_list = ghb_array_new(); + ghb_dict_set(audio_dict, "AudioList", audio_list); + } + return audio_list; +} + +GhbValue *ghb_get_job_subtitle_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *sub = ghb_dict_get(job, "Subtitle"); + if (sub == NULL) + { + sub = ghb_dict_new(); + ghb_dict_set(job, "Subtitle", sub); + } + return sub; +} + +GhbValue *ghb_get_job_subtitle_list(GhbValue *settings) +{ + GhbValue *sub_dict = ghb_get_job_subtitle_settings(settings); + GhbValue *sub_list = ghb_dict_get(sub_dict, "SubtitleList"); + if (sub_list == NULL) + { + sub_list = ghb_array_new(); + ghb_dict_set(sub_dict, "SubtitleList", sub_list); + } + return sub_list; +} + +GhbValue *ghb_get_job_subtitle_search(GhbValue *settings) +{ + GhbValue *sub_dict = ghb_get_job_subtitle_settings(settings); + GhbValue *sub_search = ghb_dict_get(sub_dict, "Search"); + if (sub_search == NULL) + { + sub_search = ghb_dict_new(); + ghb_dict_set(sub_dict, "Search", sub_search); + ghb_dict_set_bool(sub_search, "Enable", 0); + } + return sub_search; +} + +GhbValue* ghb_get_job_metadata_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *meta = ghb_dict_get(job, "Metadata"); + if (meta == NULL) + { + meta = ghb_dict_new(); + ghb_dict_set(job, "Metadata", meta); + } + return meta; +} + +GhbValue* ghb_get_job_filter_settings(GhbValue *settings) +{ + GhbValue *job = ghb_get_job_settings(settings); + GhbValue *filter = ghb_dict_get(job, "Filters"); + if (filter == NULL) + { + filter = ghb_dict_new(); + ghb_dict_set(job, "Filters", filter); + } + return filter; +} + +GhbValue* ghb_get_job_filter_list(GhbValue *settings) +{ + GhbValue *filter = ghb_get_job_filter_settings(settings); + GhbValue *list = ghb_dict_get(filter, "FilterList"); + if (list == NULL) + { + list = ghb_dict_new(); + ghb_dict_set(filter, "FilterList", list); + } + return list; +} diff --git a/gtk/src/jobdict.h b/gtk/src/jobdict.h new file mode 100644 index 000000000..66a39a6e7 --- /dev/null +++ b/gtk/src/jobdict.h @@ -0,0 +1,46 @@ +/* + * settings.h + * Copyright (C) John Stebbins 2008-2019 + * + * settings.h is free software. + * + * You may redistribute it and/or modify it under the terms of the + * GNU General Public License, as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * settings.h is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with callbacks.h. If not, write to: + * The Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor + * Boston, MA 02110-1301, USA. + */ + +#if !defined(_JOBDICT_H_) +#define _JOBDICT_H_ + +#include "values.h" + +GhbValue* ghb_get_job_settings(GhbValue *settings); +GhbValue* ghb_get_job_source_settings(GhbValue *settings); +GhbValue* ghb_get_job_range_settings(GhbValue *settings); +GhbValue* ghb_get_job_par_settings(GhbValue *settings); +GhbValue* ghb_get_job_dest_settings(GhbValue *settings); +GhbValue* ghb_get_job_video_settings(GhbValue *settings); +GhbValue* ghb_get_job_metadata_settings(GhbValue *settings); +GhbValue* ghb_get_job_chapter_list(GhbValue *settings); +GhbValue* ghb_get_job_mp4_settings(GhbValue *settings); +GhbValue* ghb_get_job_audio_settings(GhbValue *settings); +GhbValue* ghb_get_job_audio_list(GhbValue *settings); +GhbValue* ghb_get_job_subtitle_settings(GhbValue *settings); +GhbValue* ghb_get_job_subtitle_list(GhbValue *settings); +GhbValue* ghb_get_job_subtitle_search(GhbValue *settings); +GhbValue* ghb_get_job_filter_settings(GhbValue *settings); +GhbValue* ghb_get_job_filter_list(GhbValue *settings); + +#endif // _JOBDICT_H_ diff --git a/gtk/src/preview.c b/gtk/src/preview.c index d7d2a4fc2..edda8173f 100644 --- a/gtk/src/preview.c +++ b/gtk/src/preview.c @@ -36,6 +36,7 @@ #endif #include "settings.h" +#include "jobdict.h" #include "presets.h" #include "callbacks.h" #include "hb-backend.h" diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c index 1cc358756..3c810655c 100644 --- a/gtk/src/queuehandler.c +++ b/gtk/src/queuehandler.c @@ -28,6 +28,7 @@ #include #include "hb.h" #include "settings.h" +#include "jobdict.h" #include "hb-backend.h" #include "values.h" #include "callbacks.h" diff --git a/gtk/src/settings.c b/gtk/src/settings.c index 856081c2a..91853a940 100644 --- a/gtk/src/settings.c +++ b/gtk/src/settings.c @@ -60,220 +60,6 @@ ghb_settings_combo_option(const GhbValue *settings, const gchar *key) return ghb_lookup_combo_option(key, ghb_dict_get_value(settings, key)); } -GhbValue *ghb_get_title_settings(GhbValue *settings) -{ - GhbValue *title; - title = ghb_dict_get(settings, "Title"); - return title; -} - -GhbValue *ghb_get_title_audio_list(GhbValue *settings) -{ - GhbValue *title_dict = ghb_get_title_settings(settings); - GhbValue *audio_list = ghb_dict_get(title_dict, "AudioList"); - return audio_list; -} - -GhbValue *ghb_get_title_subtitle_list(GhbValue *settings) -{ - GhbValue *title_dict = ghb_get_title_settings(settings); - GhbValue *subtitle_list = ghb_dict_get(title_dict, "SubtitleList"); - return subtitle_list; -} - -GhbValue *ghb_get_job_settings(GhbValue *settings) -{ - GhbValue *job; - job = ghb_dict_get(settings, "Job"); - if (job == NULL) - { - job = ghb_dict_new(); - ghb_dict_set(settings, "Job", job); - } - return job; -} - -GhbValue* ghb_get_job_dest_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *dest = ghb_dict_get(job, "Destination"); - if (dest == NULL) - { - dest = ghb_dict_new(); - ghb_dict_set(job, "Destination", dest); - } - return dest; -} - -GhbValue* ghb_get_job_chapter_list(GhbValue *settings) -{ - GhbValue *dest = ghb_get_job_dest_settings(settings); - GhbValue *chapters = ghb_dict_get(dest, "ChapterList"); - if (chapters == NULL) - { - chapters = ghb_array_new(); - ghb_dict_set(dest, "ChapterList", chapters); - } - return chapters; -} - -GhbValue* ghb_get_job_mp4_settings(GhbValue *settings) -{ - GhbValue *dest = ghb_get_job_dest_settings(settings); - GhbValue *mp4 = ghb_dict_get(dest, "Mp4Options"); - if (mp4 == NULL) - { - mp4 = ghb_dict_new(); - ghb_dict_set(dest, "Mp4Options", mp4); - } - return mp4; -} - -GhbValue* ghb_get_job_source_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *source = ghb_dict_get(job, "Source"); - if (source == NULL) - { - source = ghb_dict_new(); - ghb_dict_set(job, "Source", source); - } - return source; -} - -GhbValue* ghb_get_job_range_settings(GhbValue *settings) -{ - GhbValue *source = ghb_get_job_source_settings(settings); - GhbValue *range = ghb_dict_get(source, "Range"); - if (range == NULL) - { - range = ghb_dict_new(); - ghb_dict_set(source, "Range", range); - } - return range; -} - -GhbValue* ghb_get_job_par_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *par = ghb_dict_get(job, "PAR"); - if (par == NULL) - { - par = ghb_dict_new(); - ghb_dict_set(job, "PAR", par); - } - return par; -} - -GhbValue* ghb_get_job_video_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *video = ghb_dict_get(job, "Video"); - if (video == NULL) - { - video = ghb_dict_new(); - ghb_dict_set(job, "Video", video); - } - return video; -} - -GhbValue *ghb_get_job_audio_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *audio = ghb_dict_get(job, "Audio"); - if (audio == NULL) - { - audio = ghb_dict_new(); - ghb_dict_set(job, "Audio", audio); - } - return audio; -} - -GhbValue *ghb_get_job_audio_list(GhbValue *settings) -{ - GhbValue *audio_dict = ghb_get_job_audio_settings(settings); - GhbValue *audio_list = ghb_dict_get(audio_dict, "AudioList"); - if (audio_list == NULL) - { - audio_list = ghb_array_new(); - ghb_dict_set(audio_dict, "AudioList", audio_list); - } - return audio_list; -} - -GhbValue *ghb_get_job_subtitle_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *sub = ghb_dict_get(job, "Subtitle"); - if (sub == NULL) - { - sub = ghb_dict_new(); - ghb_dict_set(job, "Subtitle", sub); - } - return sub; -} - -GhbValue *ghb_get_job_subtitle_list(GhbValue *settings) -{ - GhbValue *sub_dict = ghb_get_job_subtitle_settings(settings); - GhbValue *sub_list = ghb_dict_get(sub_dict, "SubtitleList"); - if (sub_list == NULL) - { - sub_list = ghb_array_new(); - ghb_dict_set(sub_dict, "SubtitleList", sub_list); - } - return sub_list; -} - -GhbValue *ghb_get_job_subtitle_search(GhbValue *settings) -{ - GhbValue *sub_dict = ghb_get_job_subtitle_settings(settings); - GhbValue *sub_search = ghb_dict_get(sub_dict, "Search"); - if (sub_search == NULL) - { - sub_search = ghb_dict_new(); - ghb_dict_set(sub_dict, "Search", sub_search); - ghb_dict_set_bool(sub_search, "Enable", 0); - } - return sub_search; -} - -GhbValue* ghb_get_job_metadata_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *meta = ghb_dict_get(job, "Metadata"); - if (meta == NULL) - { - meta = ghb_dict_new(); - ghb_dict_set(job, "Metadata", meta); - } - return meta; -} - -GhbValue* ghb_get_job_filter_settings(GhbValue *settings) -{ - GhbValue *job = ghb_get_job_settings(settings); - GhbValue *filter = ghb_dict_get(job, "Filters"); - if (filter == NULL) - { - filter = ghb_dict_new(); - ghb_dict_set(job, "Filters", filter); - } - return filter; -} - -GhbValue* ghb_get_job_filter_list(GhbValue *settings) -{ - GhbValue *filter = ghb_get_job_filter_settings(settings); - GhbValue *list = ghb_dict_get(filter, "FilterList"); - if (list == NULL) - { - list = ghb_dict_new(); - ghb_dict_set(filter, "FilterList", list); - } - return list; -} - // Map widget names to setting keys // Widgets that map to settings have names // of this format: s_ diff --git a/gtk/src/settings.h b/gtk/src/settings.h index 1eb590e1e..b0a170a6a 100644 --- a/gtk/src/settings.h +++ b/gtk/src/settings.h @@ -91,27 +91,6 @@ enum GHB_QUEUE_DONE, }; -GhbValue* ghb_get_title_settings(GhbValue *settings); -GhbValue* ghb_get_title_audio_list(GhbValue *settings); -GhbValue* ghb_get_title_subtitle_list(GhbValue *settings); - -GhbValue* ghb_get_job_settings(GhbValue *settings); -GhbValue* ghb_get_job_source_settings(GhbValue *settings); -GhbValue* ghb_get_job_range_settings(GhbValue *settings); -GhbValue* ghb_get_job_par_settings(GhbValue *settings); -GhbValue* ghb_get_job_dest_settings(GhbValue *settings); -GhbValue* ghb_get_job_video_settings(GhbValue *settings); -GhbValue* ghb_get_job_metadata_settings(GhbValue *settings); -GhbValue* ghb_get_job_chapter_list(GhbValue *settings); -GhbValue* ghb_get_job_mp4_settings(GhbValue *settings); -GhbValue* ghb_get_job_audio_settings(GhbValue *settings); -GhbValue* ghb_get_job_audio_list(GhbValue *settings); -GhbValue* ghb_get_job_subtitle_settings(GhbValue *settings); -GhbValue* ghb_get_job_subtitle_list(GhbValue *settings); -GhbValue* ghb_get_job_subtitle_search(GhbValue *settings); -GhbValue* ghb_get_job_filter_settings(GhbValue *settings); -GhbValue* ghb_get_job_filter_list(GhbValue *settings); - void ghb_settings_copy( GhbValue *settings, const gchar *key, const GhbValue *value); gint ghb_settings_combo_int(const GhbValue *settings, const gchar *key); diff --git a/gtk/src/subtitlehandler.c b/gtk/src/subtitlehandler.c index 1afca2131..fcf530cc7 100644 --- a/gtk/src/subtitlehandler.c +++ b/gtk/src/subtitlehandler.c @@ -26,6 +26,7 @@ #include "ghbcompat.h" #include "hb.h" #include "settings.h" +#include "jobdict.h" #include "hb-backend.h" #include "values.h" #include "callbacks.h" diff --git a/gtk/src/titledict.c b/gtk/src/titledict.c new file mode 100644 index 000000000..7ad87e6ec --- /dev/null +++ b/gtk/src/titledict.c @@ -0,0 +1,47 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ +/* + * titledict.c + * Copyright (C) John Stebbins 2008-2019 + * + * settings.c is free software. + * + * You may redistribute it and/or modify it under the terms of the + * GNU General Public License, as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * settings.c is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with main.c. If not, write to: + * The Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor + * Boston, MA 02110-1301, USA. + */ + +#include "values.h" +#include "titledict.h" + +GhbValue *ghb_get_title_settings(GhbValue *settings) +{ + GhbValue *title; + title = ghb_dict_get(settings, "Title"); + return title; +} + +GhbValue *ghb_get_title_audio_list(GhbValue *settings) +{ + GhbValue *title_dict = ghb_get_title_settings(settings); + GhbValue *audio_list = ghb_dict_get(title_dict, "AudioList"); + return audio_list; +} + +GhbValue *ghb_get_title_subtitle_list(GhbValue *settings) +{ + GhbValue *title_dict = ghb_get_title_settings(settings); + GhbValue *subtitle_list = ghb_dict_get(title_dict, "SubtitleList"); + return subtitle_list; +} diff --git a/gtk/src/titledict.h b/gtk/src/titledict.h new file mode 100644 index 000000000..59b5c5506 --- /dev/null +++ b/gtk/src/titledict.h @@ -0,0 +1,33 @@ +/* + * titledict.h + * Copyright (C) John Stebbins 2008-2019 + * + * settings.h is free software. + * + * You may redistribute it and/or modify it under the terms of the + * GNU General Public License, as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * settings.h is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with callbacks.h. If not, write to: + * The Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor + * Boston, MA 02110-1301, USA. + */ + +#if !defined(_TITLEDICT_H_) +#define _TITLEDICT_H_ + +#include "values.h" + +GhbValue* ghb_get_title_settings(GhbValue *settings); +GhbValue* ghb_get_title_audio_list(GhbValue *settings); +GhbValue* ghb_get_title_subtitle_list(GhbValue *settings); + +#endif // _TITLEDICT_H_ -- 2.40.0