#include <iostream>#include <vector>#include <string>#include <glade/glade.h>#include "kino_extra.h"#include "page_magick.h"#include "kino_common.h"#include "page.h"#include "storyboard.h"#include "page_editor.h"#include "displayer.h"#include "message.h"#include "error.h"#include "commands.h"#include "gtkenhancedscale.h"#include "export.h"#include "support.h"#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <dlfcn.h>#include <dirent.h>Include dependency graph for page_magick.cc:

Go to the source code of this file.
Functions | |
| PlayList & | GetCurrentPlayList () |
| Provides plug-ins with current playlist. | |
| void | on_togglebutton_magick_start_toggled (GtkToggleButton *togglebutton, gpointer user_data) |
| void | on_notebook_magick_switch_video_page (GtkNotebook *notebook, GtkNotebookPage *page, gint page_num, gpointer user_data) |
| void | on_notebook_magick_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, gint page_num, gpointer user_data) |
| gboolean | on_hscale_transition_start_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| gboolean | on_hscale_transition_start_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| gboolean | on_hscale_transition_end_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| gboolean | on_hscale_transition_end_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| void | on_button_magick_file_clicked (GtkButton *button, gpointer user_data) |
| void | on_spinbutton_magick_start_value_changed (GtkSpinButton *spinbutton, gpointer user_data) |
| void | on_entry_magick_start_activate (GtkEntry *entry, gpointer user_data) |
| gboolean | on_entry_magick_start_focus_out_event (GtkWidget *widget, GdkEventFocus *event, gpointer user_data) |
| void | on_spinbutton_magick_end_value_changed (GtkSpinButton *spinbutton, gpointer user_data) |
| void | on_entry_magick_end_activate (GtkEntry *entry, gpointer user_data) |
| gboolean | on_entry_magick_end_focus_out_event (GtkWidget *widget, GdkEventFocus *event, gpointer user_data) |
| void | on_spinbutton_magick_limit_value_changed (GtkSpinButton *spinbutton, gpointer user_data) |
| void | on_entry_magick_limit_activate (GtkEntry *entry, gpointer user_data) |
| gboolean | on_entry_magick_limit_focus_out_event (GtkWidget *widget, GdkEventFocus *event, gpointer user_data) |
| gboolean | on_scrubbar_magick_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| gboolean | on_scrubbar_magick_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| gboolean | on_scrubbar_magick_value_changed_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| void | on_time_range_changed (GtkWidget *widget, gpointer user_data) |
| void | on_togglebutton_key_frame_toggled (GtkToggleButton *togglebutton, gpointer user_data) |
| static int | _getOneSecond (void) |
| static void | on_drawingarea_refresh_required (GtkWidget *some_widget, GdkEventConfigure *event, gpointer user_data) |
| static int | WaitForAction (int lastPosition) |
| static void | TriggerAction () |
| static void * | audioThreadProxy (void *data) |
| static void * | videoThreadProxy (void *data) |
| SelectedFrames & | GetSelectedFramesForFX () |
| GtkWindow * | GetKinoWidgetWindow () |
| void | Repaint () |
| KeyFrameController * | GetKeyFrameController (KeyFrameControllerClient *client) |
| Factory method for the key frame controller. | |
Variables | |
| GladeXML * | magick_glade |
| navigate_control | g_nav_ctl |
| static bool | buttonMutex = false |
| static gboolean | doScrub = FALSE |
| static pthread_t | audioThread |
| Provide a preview of the effect. | |
| static pthread_t | videoThread |
| static pthread_mutex_t | init_mutex = PTHREAD_MUTEX_INITIALIZER |
| static pthread_mutex_t | condition_mutex = PTHREAD_MUTEX_INITIALIZER |
| static pthread_cond_t | condition = PTHREAD_COND_INITIALIZER |
| static int | frameNumber |
|
|
Definition at line 337 of file page_magick.cc. References common, KinoCommon::g_currentFrame, GetFramePool(), KinoCommon::getPlayList(), and Frame::IsPAL(). 00338 {
00339 Frame & frame = *( GetFramePool() ->GetFrame( ) );
00340 common->getPlayList() ->GetFrame( common->g_currentFrame, frame );
00341 int value = ( frame.IsPAL() ? 25 : 30 );
00342 GetFramePool( ) ->DoneWithFrame( &frame );
00343 return value;
00344 }
|
|
|
Definition at line 1869 of file page_magick.cc. References PageMagick::AudioThread(). Referenced by PageMagick::StartPreview(). 01870 {
01871 PageMagick* o = static_cast< PageMagick* >( data );
01872 o->AudioThread();
01873 return NULL;
01874 }
|
|
|
Provides plug-ins with current playlist.
Definition at line 55 of file page_magick.cc. References common, and KinoCommon::getPlayList(). Referenced by FXSelectedFrames::GetAudio(), FXSelectedFrames::GetScaledImage(), and FXSelectedFrames::Initialise(). 00056 {
00057 return * common->getPlayList( );
00058 }
|
|
|
Factory method for the key frame controller.
Definition at line 3403 of file page_magick.cc. References common, and KinoCommon::getPageMagick(). 03404 {
03405 common->getPageMagick()->SetKeyFrameControllerClient( client );
03406 return static_cast< KeyFrameController* >( common->getPageMagick() );
03407 }
|
|
|
Definition at line 3295 of file page_magick.cc. References common, KinoCommon::getWidget(), and KinoCommon::getWidgetWindow(). 03296 {
03297 return KinoCommon::getWidgetWindow( common->getWidget() );
03298 }
|
|
|
Definition at line 3288 of file page_magick.cc. References common, KinoCommon::getPageMagick(), and FXSelectedFrames::Initialise(). Referenced by ImageCreateFromFile::CreateFrame(), AudioDub::GetFrame(), AudioMix::GetFrame(), ImageCreateFromFile::InterpretWidgets(), Repaint(), PageMagick::videoNextScene(), and PageMagick::videoPreviousScene(). 03289 {
03290 static FXSelectedFrames selected;
03291 selected.Initialise( common->getPageMagick( ) );
03292 return selected;
03293 }
|
|
||||||||||||
|
Definition at line 179 of file page_magick.cc. References common, KinoCommon::getFileToSave(), and lookup_widget(). 00181 {
00182 const char *filename = common->getFileToSave( _("Enter a File Name to Save As") );
00183 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "entry_magick_file" ) );
00184 if ( strcmp( filename, "" ) )
00185 gtk_entry_set_text( GTK_ENTRY( lookup_widget( GTK_WIDGET( button ), "entry_magick_file" ) ), filename );
00186 }
|
|
||||||||||||||||
|
Definition at line 2915 of file page_magick.cc. Referenced by PageMagick::PageMagick(). 02916 {
02917 try
02918 {
02919 ( ( PageMagick * ) user_data )->PreviewFrame();
02920 }
02921 catch ( const char * exc )
02922 {
02923 }
02924 }
|
|
||||||||||||
|
Definition at line 234 of file page_magick.cc. References common, KinoCommon::getTime(), KinoCommon::getTimeFormat(), lookup_widget(), and on_spinbutton_magick_end_value_changed(). Referenced by on_entry_magick_end_focus_out_event(). 00236 {
00237 common->getTime().parseValueToString( gtk_entry_get_text( entry ), common->getTimeFormat() );
00238 GtkSpinButton *spinbutton = GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET( entry ), "spinbutton_magick_end" ) );
00239 gtk_spin_button_set_value( spinbutton, common->getTime().getFrames() );
00240 on_spinbutton_magick_end_value_changed( spinbutton, NULL );
00241 }
|
|
||||||||||||||||
|
Definition at line 244 of file page_magick.cc. References navigate_control::escaped, and on_entry_magick_end_activate(). 00247 {
00248 on_entry_magick_end_activate( GTK_ENTRY( widget ), NULL );
00249 g_nav_ctl.escaped = FALSE;
00250 return FALSE;
00251 }
|
|
||||||||||||
|
Definition at line 264 of file page_magick.cc. References common, KinoCommon::getTime(), KinoCommon::getTimeFormat(), lookup_widget(), and on_spinbutton_magick_limit_value_changed(). Referenced by on_entry_magick_limit_focus_out_event(). 00266 {
00267 common->getTime().parseValueToString( gtk_entry_get_text( entry ), common->getTimeFormat() );
00268 GtkSpinButton *spinbutton = GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET( entry ), "spinbutton_magick_limit" ) );
00269 gtk_spin_button_set_value( spinbutton, common->getTime().getFrames() );
00270 on_spinbutton_magick_limit_value_changed( spinbutton, NULL );
00271 }
|
|
||||||||||||||||
|
Definition at line 274 of file page_magick.cc. References navigate_control::escaped, and on_entry_magick_limit_activate(). 00277 {
00278 on_entry_magick_limit_activate( GTK_ENTRY( widget ), NULL );
00279 g_nav_ctl.escaped = FALSE;
00280 return FALSE;
00281 }
|
|
||||||||||||
|
Definition at line 202 of file page_magick.cc. References common, KinoCommon::getTime(), KinoCommon::getTimeFormat(), lookup_widget(), and on_spinbutton_magick_start_value_changed(). Referenced by on_entry_magick_start_focus_out_event(). 00204 {
00205 common->getTime().parseValueToString( gtk_entry_get_text( entry ), common->getTimeFormat() );
00206 GtkSpinButton *spinbutton = GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET( entry ), "spinbutton_magick_start" ) );
00207 gtk_spin_button_set_value( spinbutton, common->getTime().getFrames() );
00208 on_spinbutton_magick_start_value_changed( spinbutton, NULL );
00209 }
|
|
||||||||||||||||
|
Definition at line 212 of file page_magick.cc. References navigate_control::escaped, and on_entry_magick_start_activate(). 00215 {
00216 on_entry_magick_start_activate( GTK_ENTRY( widget ), NULL );
00217 g_nav_ctl.escaped = FALSE;
00218 return FALSE;
00219 }
|
|
||||||||||||||||
|
Definition at line 147 of file page_magick.cc. References common, KinoCommon::getPageMagick(), and lookup_widget(). 00150 {
00151 GtkWidget * lower = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_start" );
00152 GtkWidget *upper = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_end" );
00153 GtkAdjustment *adjust_lower = GTK_RANGE( lower ) ->adjustment;
00154 GtkAdjustment *adjust_upper = GTK_RANGE( upper ) ->adjustment;
00155 adjust_lower->upper = adjust_upper->value;
00156 g_signal_emit_by_name( adjust_lower, "changed" );
00157 return FALSE;
00158 }
|
|
||||||||||||||||
|
Definition at line 163 of file page_magick.cc. References common, KinoCommon::getPageMagick(), and lookup_widget(). 00166 {
00167
00168 GtkWidget * lower = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_start" );
00169 GtkWidget *upper = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_end" );
00170 GtkAdjustment *adjust_lower = GTK_RANGE( lower ) ->adjustment;
00171 GtkAdjustment *adjust_upper = GTK_RANGE( upper ) ->adjustment;
00172 adjust_lower->upper = adjust_upper->value;
00173 g_signal_emit_by_name( adjust_lower, "changed" );
00174 common->getPageMagick() ->RefreshStatus( true );
00175 return FALSE;
00176 }
|
|
||||||||||||||||
|
Definition at line 114 of file page_magick.cc. References common, KinoCommon::getPageMagick(), and lookup_widget(). 00117 {
00118 GtkWidget * lower = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_start" );
00119 GtkWidget *upper = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_end" );
00120 GtkAdjustment *adjust_lower = GTK_RANGE( lower ) ->adjustment;
00121 GtkAdjustment *adjust_upper = GTK_RANGE( upper ) ->adjustment;
00122 adjust_upper->lower = adjust_lower->value;
00123 g_signal_emit_by_name( adjust_upper, "changed" );
00124 return FALSE;
00125 }
|
|
||||||||||||||||
|
Definition at line 130 of file page_magick.cc. References common, KinoCommon::getPageMagick(), and lookup_widget(). 00133 {
00134 GtkWidget * lower = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_start" );
00135 GtkWidget *upper = lookup_widget ( common->getPageMagick() ->window, "hscale_transition_end" );
00136 GtkAdjustment *adjust_lower = GTK_RANGE( lower ) ->adjustment;
00137 GtkAdjustment *adjust_upper = GTK_RANGE( upper ) ->adjustment;
00138 adjust_upper->lower = adjust_lower->value;
00139 g_signal_emit_by_name( adjust_upper, "changed" );
00140 common->getPageMagick() ->RefreshStatus( true );
00141 return FALSE;
00142 }
|
|
||||||||||||||||||||
|
Definition at line 102 of file page_magick.cc. References common, KinoCommon::getPageMagick(), PageMagick::OnTimeRangeChanged(), and videoStop(). Referenced by PageMagick::PageMagick(). 00106 {
00107 PageMagick* magick = common->getPageMagick();
00108 videoStop();
00109 magick->OnTimeRangeChanged();
00110 }
|
|
||||||||||||||||||||
|
Definition at line 89 of file page_magick.cc. References common, PageMagick::GetCurrentPosition(), KinoCommon::getPageMagick(), LOCKED_KEY, PageMagick::OnTimeRangeChanged(), PageMagick::SetKeyFrameControllerClient(), PageMagick::ShowCurrentStatus(), and videoStop(). Referenced by PageMagick::PageMagick(). 00093 {
00094 PageMagick* magick = common->getPageMagick();
00095 magick->SetKeyFrameControllerClient( 0 );
00096 magick->ShowCurrentStatus( magick->GetCurrentPosition(), LOCKED_KEY, false, false );
00097 videoStop();
00098 magick->OnTimeRangeChanged();
00099 }
|
|
||||||||||||||||
|
Definition at line 285 of file page_magick.cc. References videoStop(). Referenced by PageMagick::PageMagick().
|
|
||||||||||||||||
|
Definition at line 296 of file page_magick.cc. Referenced by PageMagick::PageMagick(). 00299 {
00300 doScrub = FALSE;
00301 return FALSE;
00302 }
|
|
||||||||||||||||
|
Definition at line 305 of file page_magick.cc. References moveToFrame(), and videoStop(). Referenced by PageMagick::PageMagick(). 00308 {
00309 if ( doScrub )
00310 {
00311 videoStop();
00312 moveToFrame( int( gtk_adjustment_get_value( GTK_ADJUSTMENT( widget ) ) ) );
00313 }
00314 return FALSE;
00315 }
|
|
||||||||||||
|
Definition at line 222 of file page_magick.cc. References common, KinoCommon::getPageMagick(), KinoCommon::getTime(), KinoCommon::getTimeFormat(), and lookup_widget(). Referenced by on_entry_magick_end_activate(), and PageMagick::timeFormatChanged(). 00224 {
00225 GtkSpinButton *startSpin = GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET( spinbutton ), "spinbutton_magick_start" ) );
00226 gtk_spin_button_set_range( startSpin, 0, gtk_spin_button_get_value( spinbutton ) );
00227 gtk_entry_set_text( GTK_ENTRY( lookup_widget( GTK_WIDGET( spinbutton ), "entry_magick_end" ) ),
00228 common->getTime().parseFramesToString( ( int )gtk_spin_button_get_value( spinbutton ),
00229 common->getTimeFormat() ).c_str() );
00230 common->getPageMagick()->OnTimeRangeChanged();
00231 }
|
|
||||||||||||
|
Definition at line 254 of file page_magick.cc. References common, KinoCommon::getPageMagick(), KinoCommon::getTime(), KinoCommon::getTimeFormat(), and lookup_widget(). Referenced by on_entry_magick_limit_activate(), PageMagick::PageMagick(), and PageMagick::timeFormatChanged(). 00256 {
00257 gtk_entry_set_text( GTK_ENTRY( lookup_widget( GTK_WIDGET( spinbutton ), "entry_magick_limit" ) ),
00258 common->getTime().parseFramesToString( ( int )gtk_spin_button_get_value( spinbutton ),
00259 common->getTimeFormat() ).c_str() );
00260 common->getPageMagick()->OnTimeRangeChanged();
00261 }
|
|
||||||||||||
|
Definition at line 189 of file page_magick.cc. References common, KinoCommon::getPageMagick(), KinoCommon::getPlayList(), KinoCommon::getTime(), KinoCommon::getTimeFormat(), and lookup_widget(). Referenced by on_entry_magick_start_activate(), and PageMagick::timeFormatChanged(). 00191 {
00192 GtkSpinButton *endSpin = GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET( spinbutton ), "spinbutton_magick_end" ) );
00193 gtk_spin_button_set_range( endSpin, gtk_spin_button_get_value( spinbutton ),
00194 common->getPlayList() ->GetNumFrames() - 1 );
00195 gtk_entry_set_text( GTK_ENTRY( lookup_widget( GTK_WIDGET( spinbutton ), "entry_magick_start" ) ),
00196 common->getTime().parseFramesToString( ( int )gtk_spin_button_get_value( spinbutton ),
00197 common->getTimeFormat() ).c_str() );
00198 common->getPageMagick()->OnTimeRangeChanged();
00199 }
|
|
||||||||||||
|
Definition at line 318 of file page_magick.cc. References common, and KinoCommon::getPageMagick(). Referenced by ImageCreateColour::AddFrameCollector(), and PageMagick::PageMagick(). 00320 {
00321 common->getPageMagick()->OnTimeRangeChanged();
00322 }
|
|
||||||||||||
|
Definition at line 325 of file page_magick.cc. References PageMagick::OnKeyFrameControllerKeyChanged(). Referenced by PageMagick::PageMagick(). 00327 {
00328 if ( !buttonMutex )
00329 {
00330 buttonMutex = true;
00331 PageMagick* magick = static_cast< PageMagick* >( user_data );
00332 magick->OnKeyFrameControllerKeyChanged( togglebutton );
00333 buttonMutex = false;
00334 }
00335 }
|
|
||||||||||||
|
Definition at line 77 of file page_magick.cc. References common, and KinoCommon::getPageMagick(). 00079 {
00080 if ( !buttonMutex )
00081 {
00082 buttonMutex = true;
00083 common->getPageMagick() ->StartRender();
00084 buttonMutex = false;
00085 }
00086 }
|
|
|
|
Definition at line 1861 of file page_magick.cc. 01862 {
01863 pthread_mutex_lock( &condition_mutex );
01864 pthread_cond_signal( &condition );
01865 pthread_mutex_unlock( &condition_mutex );
01866 }
|
|
|
Definition at line 1876 of file page_magick.cc. References PageMagick::VideoThread(). Referenced by PageMagick::StartPreview(). 01877 {
01878 PageMagick* o = static_cast< PageMagick* >( data );
01879 o->VideoThread();
01880 return NULL;
01881 }
|
|
|
Definition at line 1850 of file page_magick.cc. 01851 {
01852 if ( frameNumber == lastPosition )
01853 {
01854 pthread_mutex_lock( &condition_mutex );
01855 pthread_cond_wait( &condition, &condition_mutex );
01856 pthread_mutex_unlock( &condition_mutex );
01857 }
01858 return frameNumber;
01859 }
|
|
|
Provide a preview of the effect.
Definition at line 1843 of file page_magick.cc. Referenced by PageTrim::startNavigator(), and PageEditor::startNavigator(). |
|
|
Definition at line 74 of file page_magick.cc. Referenced by PageMagick::StartRender(). |
|
|
Definition at line 1847 of file page_magick.cc. |
|
|
Definition at line 1846 of file page_magick.cc. |
|
|
Definition at line 283 of file page_magick.cc. |
|
|
Definition at line 645 of file page_magick.cc. Referenced by StringUtils::split(). |
|
|
Definition at line 643 of file page_magick.cc. |
|
|
Definition at line 1848 of file page_magick.cc. |
|
|
Definition at line 33 of file callbacks.c. |
|
|
|
Definition at line 1845 of file page_magick.cc. |
|
|
|
|
|
Definition at line 644 of file page_magick.cc. |
|
|
Definition at line 1844 of file page_magick.cc. Referenced by PageCapture::start(), PageTrim::startNavigator(), and PageEditor::startNavigator(). |
1.4.2