#include <fstream>#include <iostream>#include <sstream>#include <string>#include <sys/types.h>#include <sys/wait.h>#include <dirent.h>#include <string.h>#include <stdarg.h>#include <time.h>#include <libxml/nanohttp.h>#include <libxml/parser.h>#include <libxml/tree.h>#include <libxml/xpath.h>#include "kino_common.h"#include "page_editor.h"#include "page_capture.h"#include "page_timeline.h"#include "page_undefined.h"#include "page_export.h"#include "page_bttv.h"#include "page_trim.h"#include "page_magick.h"#include "preferences.h"#include "message.h"#include "frame.h"#include "displayer.h"#include "storyboard.h"#include "riff.h"#include "avi.h"#include "filehandler.h"#include "ieee1394io.h"#include "error.h"#include "stringutils.h"#include <pthread.h>Include dependency graph for kino_common.cc:

Go to the source code of this file.
Functions | |
| gboolean | generate_file_preview (GtkWidget *preview, const char *filename) |
| void | update_preview_cb (GtkFileChooser *file_chooser, gpointer data) |
| static int | tohex (char p) |
| static char * | url_decode (char *dest, char *src) |
| static void | on_open_recent_activate (GtkWidget *menuitem, gpointer user_data) |
|
||||||||||||
|
Used by update_preview_cb to generate a file preview in the File->Open dialog Definition at line 994 of file kino_common.cc. References AVI, KinoCommon::checkFile(), common, FRAME_MAX_HEIGHT, FRAME_MAX_WIDTH, FileHandler::GetFrame(), GetFramePool(), FileHandler::GetTotalFrames(), FileHandler::Open(), pixels, GdkDisplayer::put(), QT, and RAW_DV. Referenced by update_preview_cb(). 00995 {
00996 FileHandler *mediaFile = 0;
00997 try
00998 {
00999 if ( strcmp( filename, "" ) )
01000 {
01001 switch ( common->checkFile( const_cast<char*>( filename ) ) )
01002 {
01003 case AVI:
01004 mediaFile = new AVIHandler();
01005 break;
01006 case RAW_DV:
01007 mediaFile = new RawHandler();
01008 break;
01009 case QT:
01010 #ifdef HAVE_LIBQUICKTIME
01011 mediaFile = new QtHandler();
01012 #endif
01013 break;
01014 }
01015 }
01016
01017 if ( mediaFile && mediaFile->Open( filename ) )
01018 {
01019 // Force GDK displayer because freeing the XvDisplayer will
01020 // causing nothing to show
01021 Frame& frame = *GetFramePool()->GetFrame();
01022 int frameNum = mediaFile->GetTotalFrames() < 61 ? ( mediaFile->GetTotalFrames() / 2 ) : 60;
01023
01024 if ( mediaFile->GetFrame( frame, frameNum ) >= 0 )
01025 {
01026 GdkDisplayer* display = new GdkDisplayer( preview, frame.GetWidth(), frame.GetHeight(), frame.IsWide() );
01027 unsigned char *pixels = new unsigned char[ FRAME_MAX_WIDTH * FRAME_MAX_HEIGHT * 4 ];
01028 frame.ExtractPreviewRGB( pixels );
01029 gdk_window_clear( preview->window );
01030 display->put( pixels );
01031 delete[] pixels;
01032 delete display;
01033 }
01034 GetFramePool()->DoneWithFrame( &frame );
01035 delete mediaFile;
01036 mediaFile = 0;
01037
01038 return true;
01039 }
01040 }
01041 catch ( string s )
01042 {
01043 cerr << "generate_file_preview exception: " << s << endl;
01044 }
01045 delete mediaFile;
01046
01047 return false;
01048 }
|
|
||||||||||||
|
Definition at line 2434 of file kino_common.cc. References common, and KinoCommon::loadPlayList(). Referenced by KinoCommon::updateRecentFiles(). 02435 {
02436 common->loadPlayList( static_cast< char* >( user_data ) );
02437 }
|
|
|
Definition at line 1400 of file kino_common.cc. Referenced by url_decode(). 01401 {
01402 return isdigit( p ) ? p - '0' : tolower( p ) - 'a' + 10;
01403 }
|
|
||||||||||||
|
Callback used by KinoCommon::getFileToOpen to generate file previews Definition at line 1056 of file kino_common.cc. References generate_file_preview(). Referenced by KinoCommon::getFileToOpen(). 01057 {
01058 GtkWidget *preview;
01059 char *filename;
01060 gboolean have_preview;
01061
01062 preview = GTK_WIDGET( data );
01063 filename = gtk_file_chooser_get_preview_filename( file_chooser );
01064
01065 if ( filename && !g_file_test( filename, G_FILE_TEST_IS_DIR )) {
01066 have_preview = generate_file_preview( preview, filename );
01067 gtk_file_chooser_set_preview_widget_active( file_chooser,
01068 have_preview );
01069 }
01070 }
|
|
||||||||||||
|
Definition at line 1405 of file kino_common.cc. References tohex(). Referenced by KinoCommon::bulkLoad(). 01406 {
01407 char *p = dest;
01408
01409 while ( *src )
01410 {
01411 if ( *src == '%' )
01412 {
01413 *p ++ = ( tohex( *( src + 1 ) ) << 4 ) | tohex( *( src + 2 ) );
01414 src += 3;
01415 }
01416 else
01417 {
01418 *p ++ = *src ++;
01419 }
01420 }
01421
01422 *p = *src;
01423
01424 return dest;
01425 }
|
1.4.2