home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 June / ccd0605.iso / LINUX / gopchop-1.1.7.tar.tar / gopchop-1.1.7.tar / gopchop-1.1.7 / src / main.h < prev    next >
C/C++ Source or Header  |  2005-05-01  |  4KB  |  121 lines

  1. /*
  2. #
  3. # This is to handle GTK initialization and utility
  4. #
  5. # $Id: main.h,v 1.20 2005/05/01 17:59:23 keescook Exp $
  6. #
  7. # Copyright (C) 2001-2003 Kees Cook
  8. # kees@outflux.net, http://outflux.net/
  9. # This program is free software; you can redistribute it and/or
  10. # modify it under the terms of the GNU General Public License
  11. # as published by the Free Software Foundation; either version 2
  12. # of the License, or (at your option) any later version.
  13. # This program is distributed in the hope that it will be useful,
  14. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. # GNU General Public License for more details.
  17. # You should have received a copy of the GNU General Public License
  18. # along with this program; if not, write to the Free Software
  19. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20. # http://www.gnu.org/copyleft/gpl.html
  21. #
  22. */
  23.  
  24. #ifndef _MAIN_H_
  25. #define _MAIN_H_
  26.  
  27. #include "config.h"
  28.  
  29. #include <gtk/gtk.h>
  30. #include <glib.h>
  31.  
  32. #include "MPEG2Parser.h"
  33. #include "rc.h"
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39.  
  40. // version
  41. extern char *GOPchop_cvsid;
  42.  
  43. // objects
  44. extern MPEG2Parser *mpeg2parser;
  45.  
  46. // global status info
  47. extern const gchar *fileops;
  48. extern uint32_t mark_start;
  49. extern uint32_t mark_end;
  50.  
  51. /* global option control */
  52. typedef struct
  53. {
  54.     gboolean run_loop;              /* when in "Run" mode, wrap to beginning at end */
  55.     int      run_speed;             /* how many GOPs to jump forward during "run" */
  56.     int      default_run_speed;     /* the speed to start with upon load */
  57.     gboolean auto_refresh;          /* redraw the frames after moving the slider */
  58.     gboolean ignore_errors;         /* don't store errors about file loading */
  59.     gboolean drop_orphaned_frames;  /* get rid of starting B frames on an open GOP */
  60.     gboolean adjust_timestamps;     /* adjust the GOP timestamps as we write clips */
  61.     gchar*   video_driver_ptr;
  62.     gchar    video_driver[24];      /* this is the name of the video driver to use */
  63.     gboolean force_system_header;   /* should a system header be prepended */
  64.     gboolean drop_trailing_pack_with_system_header;/* should final pack with a system header be dropped? */
  65.     gboolean ignore_endcode;       /* should parsing continue past an end code? */
  66. } global_options;
  67. extern global_options options;
  68. extern rc_parse_item parsable_items[];
  69.  
  70. // supporting functions
  71. void get_clips_from_list(GtkTreeModel *model,
  72.                          GtkTreeIter  *iter,
  73.                          struct clip_list_t * clips);
  74. void progress(char *task, float done);
  75. void status_on(const gchar * owner, char *text);
  76. void status_off(const gchar * owner);
  77. void show_error(const gchar *text);
  78. void flush();
  79. uint32_t get_GOP_selected();
  80. void set_GOP_selected(uint32_t num);
  81. const char *frame_type_str(int type);
  82. void clear_GOP_info();
  83. void update_GOP_info(uint32_t num);
  84. void open_file(char *filename);
  85. void save_file(char *filename);
  86.  
  87. /* functions fork working on the main clip list */
  88. struct save_clip_info_t {
  89.     FILE       *file;
  90.     uint32_t    GOP_previous;
  91.     uint32_t    count;
  92.     uint32_t    total;
  93.     off_t       written_bytes;
  94.     char       *progress_task;
  95.     uint32_t    written_pictures;
  96. };
  97.  
  98. void add_GOP_slice(uint32_t start, uint32_t end);
  99. void remove_GOP_slice(GtkTreeIter * iter);
  100. void clear_GOP_slices();
  101. // from callback.cpp (FIXME: move functions over)
  102. void file_is_loaded();
  103.  
  104. // decode functions
  105. /*
  106. void decode_start();
  107. void decode_stop();
  108. void show_GOP(uint32_t wantedGOP);
  109. */
  110.  
  111. #ifdef __cplusplus
  112. }
  113. #endif
  114.  
  115. #endif /* _MAIN_H_ */
  116.  
  117. /* vi:set ai ts=4 sw=4 expandtab: */
  118.