summaryrefslogtreecommitdiffstats
path: root/gtk/src/hb-backend.h
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2008-06-17 15:40:49 +0000
committerjstebbins <[email protected]>2008-06-17 15:40:49 +0000
commit8bbd36bcbe75a53b29f7cc62e5ae9d107f92eddc (patch)
treeaafba8f8091293cc3faac87f0c61460cc6017c39 /gtk/src/hb-backend.h
parent01cf7f40ab14ce0961c5ea0c6e16580284c03945 (diff)
LinGui: Initial import
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1517 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'gtk/src/hb-backend.h')
-rw-r--r--gtk/src/hb-backend.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/gtk/src/hb-backend.h b/gtk/src/hb-backend.h
new file mode 100644
index 000000000..7a2b13aa8
--- /dev/null
+++ b/gtk/src/hb-backend.h
@@ -0,0 +1,95 @@
+/*
+ * This program is free software; you can 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.
+ *
+ * This program 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 Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
+ */
+
+#if !defined(_HBBACKEND_H_)
+#define _HBBACKEND_H_
+
+#include "settings.h"
+
+enum
+{
+ GHB_EVENT_NONE,
+ GHB_EVENT_SCAN_DONE,
+ GHB_EVENT_WORKING,
+ GHB_EVENT_PAUSED,
+ GHB_EVENT_WORK_DONE,
+ GHB_EVENT_WORK_CANCELED
+};
+
+#define GHB_SCALE_KEEP_NONE 0
+#define GHB_SCALE_KEEP_WIDTH 1
+#define GHB_SCALE_KEEP_HEIGHT 2
+
+typedef struct
+{
+ gint width;
+ gint height;
+ gint crop[4];
+ gint num_chapters;
+ gint rate;
+ gint rate_base;
+ gint aspect_n;
+ gint aspect_d;
+ gint hours;
+ gint minutes;
+ gint seconds;
+} ghb_title_info_t;
+
+typedef struct
+{
+ gint codec;
+ gint bitrate;
+ gint samplerate;
+} ghb_audio_info_t;
+
+#define GHB_AUDIO_SAMPLERATE 1
+#define GHB_AUDIO_BITRATE 2
+#define GHB_FRAMERATE 3
+
+const gchar* ghb_version();
+//const gchar* ghb_get_rate_string(gint rate, gint type);
+void ghb_backend_init(GtkBuilder *builder, gint debug, gint update);
+void ghb_add_job(job_settings_t *js, gint unique_id);
+void ghb_remove_job(gint unique_id);
+void ghb_start_queue();
+void ghb_stop_queue();
+void ghb_pause_queue();
+
+gint ghb_backend_events(signal_user_data_t *ud, gint *unique_id);
+void ghb_backend_scan(const gchar *path, gint titleindex);
+gboolean ghb_get_title_info(ghb_title_info_t *tinfo, gint titleindex);
+void ghb_set_scale(signal_user_data_t *ud, gint mode);
+gchar ** ghb_get_chapters(gint titleindex);
+gint ghb_get_best_mix(gint titleindex, gint track, gint acodec, gint mix);
+gboolean ghb_audio_is_passthru(gint acodec);
+gint ghb_get_default_acodec();
+gboolean ghb_get_audio_info(ghb_audio_info_t *ainfo, gint titleindex, gint audioindex);
+gboolean ghb_set_passthru_rate_opts(GtkBuilder *builder, gint bitrate);
+gboolean ghb_set_default_rate_opts(GtkBuilder *builder);
+void ghb_grey_combo_options(GtkBuilder *builder);
+void ghb_update_ui_combo_box(GtkBuilder *builder, const gchar *name, gint user_data, gboolean all);
+gint ghb_find_audio_track(gint titleindex, const gchar *lang, gint acodec);
+gint ghb_longest_title();
+gchar* ghb_build_x264opts_string(GHashTable *settings);
+GdkPixbuf* ghb_get_preview_image(gint titleindex, gint index, GHashTable *settings, gboolean borders);
+gint ghb_calculate_target_bitrate(GHashTable *settings, gint titleindex);
+gchar* ghb_dvd_volname(const gchar *device);
+
+gint ghb_guess_bitrate(GHashTable *settings);
+gboolean ghb_validate_vquality(GHashTable *settings);
+gboolean ghb_validate_audio(signal_user_data_t *ud);
+gboolean ghb_validate_video(signal_user_data_t *ud);
+#endif // _HBBACKEND_H_