00001 /* 00002 * page_export.h Notebook Firewire/AVI/Still Frame Export Page Object 00003 * Copyright (C) 2001-2007 Dan Dennedy <dan@dennedy.org> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software Foundation, 00017 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef _PAGE_EXPORT_H 00021 #define _PAGE_EXPORT_H 00022 00023 #ifdef HAVE_CONFIG_H 00024 #include <config.h> 00025 #endif 00026 00027 #include <gtk/gtk.h> 00028 00029 #include "kino_common.h" 00030 #include "page.h" 00031 #include "export.h" 00032 00033 // Forward references to page classes. 00034 class Export; 00035 class Export1394; 00036 class ExportAVI; 00037 class ExportStills; 00038 class ExportAudio; 00039 class ExportMJPEG; 00040 class ExportPipe; 00041 00045 class PageExport : public Page 00046 { 00047 private: 00048 KinoCommon *common; 00049 GtkNotebook *notebook; 00050 GtkProgressBar *progressBar; 00051 int currentMode; 00052 Export1394 *export1394; 00053 ExportAVI *exportAVI; 00054 ExportStills *exportStills; 00055 ExportAudio *exportAudio; 00056 ExportMJPEG *exportMJPEG; 00057 ExportPipe *exportPipe; 00058 00059 public: 00060 /* isExporting is true, when an export OR an preview is 00061 underway */ 00062 bool isExporting; 00063 /* True when pausing */ 00064 bool isPausing; 00065 /* True when changes to the export buttons are beeing 00066 carried out */ 00067 bool exportMutex; 00068 00069 00070 PageExport( KinoCommon *common ); 00071 virtual ~PageExport(); 00072 gulong activate(); 00073 void start(); 00074 void clean(); 00075 GtkWidget *getWidget(); 00076 00077 // Mode related functions 00078 void changeModeRequest( int mode ); 00079 void setCurrentMode( int mode ); 00080 Export *getCurrentPage(); 00081 Export *getPage( int mode ); 00082 00083 // commands from the page interface 00084 gboolean processKeyboard( GdkEventKey *event ); 00085 gboolean processCommand( char *cmd ); 00086 void selectScene( int ); 00087 00088 // commands defined by this interface 00089 void startExport(); 00090 void previewExport(); 00091 void stopExport(); 00092 void pauseExport(); 00093 void updateProgress( gfloat val ); 00094 void resetProgress(); 00095 void timeFormatChanged(); 00096 std::string getHelpPage() 00097 { 00098 return "export"; 00099 } 00100 00101 }; 00102 00103 #endif
1.4.2