Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

page_capture.h

Go to the documentation of this file.
00001 /*
00002 * page_capture.h Notebook Firewire Capture Page Object
00003 * Copyright (C) 2001 Charles Yates <charles.yates@pandora.be>
00004 * Copyright (C) 2001-2007 Dan Dennedy <dan@dennedy.org>
00005 *
00006 * This program is free software; you can redistribute it and/or modify
00007 * it under the terms of the GNU General Public License as published by
00008 * the Free Software Foundation; either version 2 of the License, or
00009 * (at your option) any later version.
00010 *
00011 * This program is distributed in the hope that it will be useful,
00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 * GNU General Public License for more details.
00015 *
00016 * You should have received a copy of the GNU General Public License
00017 * along with this program; if not, write to the Free Software Foundation,
00018 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00019 */
00020 
00021 #ifndef _PAGE_CAPTURE_H
00022 #define _PAGE_CAPTURE_H
00023 
00024 #ifdef HAVE_CONFIG_H
00025 #include <config.h>
00026 #endif
00027 
00028 #include "kino_common.h"
00029 #include "page.h"
00030 #include <libavc1394/avc1394.h>
00031 
00035 class PageCapture : public Page
00036 {
00037 private:
00038     KinoCommon *common;
00039 
00040     /* state info */
00041     quadlet_t avcState;
00042     bool    isCapturing;
00043     bool    captureMutex;
00044     gulong validComponents;
00045     int gui_state_was;
00046 
00047     /* widgets */
00048     GtkDrawingArea *frameArea;
00049     GtkToggleButton *avcButton;
00050     GtkToggleButton *recordButton;
00051     GtkToggleButton *stopButton;
00052     GtkToggleButton *playrecordButton;
00053     GtkToggleButton *muteButton;
00054     GtkButton *snapshotButton;
00055     GtkEntry    *fileEntry;
00056     GtkLabel    *timecodeLabel;
00057 
00058 public:
00059     bool    driver_available;
00060     bool avc_enabled;
00061     bool    audio_enabled;
00062     bool    check_phyid;
00063     bool    driver_locked;
00064 
00065     PageCapture( KinoCommon *common );
00066     virtual ~PageCapture();
00067     gulong activate();
00068     void newFile();
00069     void start();
00070     void clean();
00071 
00072     gboolean processKeyboard( GdkEventKey *event );
00073     gboolean processCommand( char *cmd );
00074 
00075     void videoStartOfMovie();
00076     void videoPreviousScene();
00077     void videoStartOfScene();
00078     void videoRewind();
00079     void videoBack();
00080     void videoPlay();
00081     void videoForward();
00082     void videoFastForward();
00083     void videoNextScene();
00084     void videoEndOfScene();
00085     void videoEndOfMovie();
00086     void videoPause();
00087     void videoStop();
00088     void videoShuttle( int );
00089     void applyAVCState( quadlet_t );
00090     quadlet_t getAVCState()
00091     {
00092         return this->avcState;
00093     }
00094     void startCapture();
00095     void stopCapture();
00096     void saveFrame();
00097     void windowMoved();
00098     void showFrameInfo( int );
00099     Frame* getFrame();
00100 
00101     void CheckDevices( );
00102     void collectFiles( );
00103     std::string getHelpPage()
00104     {
00105         return "capture";
00106     }
00107 
00108 };
00109 
00110 #endif
00111 

Generated on Sun Mar 11 22:11:46 2007 for Kino by  doxygen 1.4.2