From 89885149e814b2d287dd7166a92eb69f3221f0af Mon Sep 17 00:00:00 2001 From: Derk-Jan Hartman Date: Thu, 23 Dec 2004 00:33:05 +0000 Subject: [PATCH] * src/libvlc.h: Added a "snapshot-format" option to be able to select png or jpg (png default) * src/video_output/vout_intf.c: use above option and set the default destination for snapshots on OS X to the Desktop. * REST: Add the Snapshot command to the menu's etc. --- .../English.lproj/MainMenu.nib/classes.nib | 1 + .../English.lproj/MainMenu.nib/info.nib | 5 ++-- .../English.lproj/MainMenu.nib/objects.nib | Bin 59595 -> 60020 bytes modules/gui/macosx/controls.m | 5 ++++ modules/gui/macosx/intf.h | 1 + modules/gui/macosx/intf.m | 4 ++++ modules/gui/macosx/vout.h | 1 + modules/gui/macosx/vout.m | 5 ++++ src/libvlc.h | 21 +++++++++++++---- src/video_output/vout_intf.c | 22 +++++++++++++++--- 10 files changed, 55 insertions(+), 10 deletions(-) diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib index 1e0c4b19fb..49d8917042 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib @@ -197,6 +197,7 @@ "o_mi_services" = id; "o_mi_show_all" = id; "o_mi_slower" = id; + "o_mi_snapshot" = id; "o_mi_stop" = id; "o_mi_subtitle" = id; "o_mi_title" = id; diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib index ee2c196459..bf4d14e970 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib @@ -3,7 +3,7 @@ IBDocumentLocation - 47 61 505 517 0 0 800 578 + 25 92 505 517 0 0 1280 938 IBEditorPositions 1617 @@ -11,7 +11,7 @@ 2197 237 313 596 367 0 0 1024 746 29 - 421 486 419 44 0 0 800 578 + 326 879 419 44 0 0 1280 938 915 731 416 165 180 0 0 1024 746 @@ -27,6 +27,7 @@ IBOpenObjects 21 + 29 IBSystem Version 7S215 diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib index 77d6dd901be30c30c28cc44e411b3b1fabd783ca..2616b76788eac7069bb8ea39b39630c5589672ac 100644 GIT binary patch literal 60020 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 Sp}tVNhy%{~4TW~LvHw4v#tCBp literal 59595 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 diff --git a/modules/gui/macosx/controls.m b/modules/gui/macosx/controls.m index 01e5dd7f6c..1a5ecac3e9 100644 --- a/modules/gui/macosx/controls.m +++ b/modules/gui/macosx/controls.m @@ -292,6 +292,10 @@ if( ![o_window isZoomed] ) [o_window performZoom:self]; } + else if( [o_title isEqualToString: _NS("Snapshot") ] ) + { + [o_window snapshot]; + } else { vlc_value_t val; @@ -634,6 +638,7 @@ [[o_mi title] isEqualToString: _NS("Normal Size")] || [[o_mi title] isEqualToString: _NS("Double Size")] || [[o_mi title] isEqualToString: _NS("Fit to Screen")] || + [[o_mi title] isEqualToString: _NS("Snapshot")] || [[o_mi title] isEqualToString: _NS("Float on Top")] ) { id o_window; diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h index d39aeecbb0..fe350ad0e0 100644 --- a/modules/gui/macosx/intf.h +++ b/modules/gui/macosx/intf.h @@ -195,6 +195,7 @@ struct intf_sys_t IBOutlet id o_mi_fittoscreen; IBOutlet id o_mi_fullscreen; IBOutlet id o_mi_floatontop; + IBOutlet id o_mi_snapshot; IBOutlet id o_mi_videotrack; IBOutlet id o_mu_videotrack; IBOutlet id o_mi_screen; diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index ce7710ee22..5a45a806b0 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -366,6 +366,9 @@ static VLCMain *_o_sharedMainInstance = nil; i_key = config_GetInt( p_intf, "key-fullscreen" ); [o_mi_fullscreen setKeyEquivalent: [NSString stringWithFormat:@"%C", VLCKeyToCocoa( i_key )]]; [o_mi_fullscreen setKeyEquivalentModifierMask: VLCModifiersToCocoa(i_key)]; + i_key = config_GetInt( p_intf, "key-snapshot" ); + [o_mi_snapshot setKeyEquivalent: [NSString stringWithFormat:@"%C", VLCKeyToCocoa( i_key )]]; + [o_mi_snapshot setKeyEquivalentModifierMask: VLCModifiersToCocoa(i_key)]; var_Create( p_intf, "intf-change", VLC_VAR_BOOL ); @@ -477,6 +480,7 @@ static VLCMain *_o_sharedMainInstance = nil; [o_mi_fittoscreen setTitle: _NS("Fit to Screen")]; [o_mi_fullscreen setTitle: _NS("Fullscreen")]; [o_mi_floatontop setTitle: _NS("Float on Top")]; + [o_mi_snapshot setTitle: _NS("Snapshot")]; [o_mi_videotrack setTitle: _NS("Video Track")]; [o_mu_videotrack setTitle: _NS("Video Track")]; [o_mi_screen setTitle: _NS("Video Device")]; diff --git a/modules/gui/macosx/vout.h b/modules/gui/macosx/vout.h index 33432d75d0..418bf73ac0 100644 --- a/modules/gui/macosx/vout.h +++ b/modules/gui/macosx/vout.h @@ -48,6 +48,7 @@ - (void)toggleFloatOnTop; - (void)toggleFullscreen; - (BOOL)isFullscreen; +- (void)snapshot; - (void)updateTitle; - (BOOL)windowShouldClose:(id)sender; diff --git a/modules/gui/macosx/vout.m b/modules/gui/macosx/vout.m index 386149ea0b..e809402f1f 100644 --- a/modules/gui/macosx/vout.m +++ b/modules/gui/macosx/vout.m @@ -333,6 +333,11 @@ return( p_vout->b_fullscreen ); } +- (void)snapshot +{ + vout_Control( p_vout, VOUT_SNAPSHOT ); +} + - (BOOL)canBecomeKeyWindow { return YES; diff --git a/src/libvlc.h b/src/libvlc.h index 45b4a0d134..64138ec401 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -36,6 +36,9 @@ static char *ppsz_language_text[] = N_("Norwegian"), N_("Polish"), N_("Brazilian"), N_("Russian"), N_("Swedish") }; +static char *ppsz_snap_formats[] = +{ "png", "jpg" }; + /***************************************************************************** * Configuration options for the main program. Each module will also separatly * define its own configuration options. @@ -257,6 +260,11 @@ static char *ppsz_align_descriptions[] = "Allows you to specify the directory where the video snapshots will " \ "be stored.") +#define SNAP_FORMAT_TEXT N_("Video snapshot format") +#define SNAP_FORMAT_LONGTEXT N_( \ + "Allows you to specify the image format in which the video snapshots will " \ + "be stored.") + #define ASPECT_RATIO_TEXT N_("Source aspect ratio") #define ASPECT_RATIO_LONGTEXT N_( \ "This will force the source aspect ratio. For instance, some DVDs claim " \ @@ -898,6 +906,9 @@ vlc_module_begin(); ASPECT_RATIO_TEXT, ASPECT_RATIO_LONGTEXT, VLC_TRUE ); add_directory( "snapshot-path", NULL, NULL, SNAP_PATH_TEXT, SNAP_PATH_LONGTEXT, VLC_FALSE ); + add_string( "snapshot-format", "png", NULL, SNAP_FORMAT_TEXT, + SNAP_FORMAT_LONGTEXT, VLC_FALSE ); + change_string_list( ppsz_snap_formats, NULL, 0 ); set_subcategory( SUBCAT_VIDEO_VOUT ); add_module( "vout", "video output", NULL, NULL, VOUT_TEXT, VOUT_LONGTEXT, @@ -1195,14 +1206,14 @@ vlc_module_begin(); # define KEY_VOL_UP KEY_MODIFIER_COMMAND|KEY_UP # define KEY_VOL_DOWN KEY_MODIFIER_COMMAND|KEY_DOWN # define KEY_VOL_MUTE KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'m' -# define KEY_SUBDELAY_UP KEY_MODIFIER_COMMAND|'k' -# define KEY_SUBDELAY_DOWN KEY_MODIFIER_COMMAND|'j' -# define KEY_AUDIODELAY_UP KEY_MODIFIER_COMMAND|'h' -# define KEY_AUDIODELAY_DOWN KEY_MODIFIER_COMMAND|'g' +# define KEY_SUBDELAY_UP KEY_MODIFIER_COMMAND|'j' +# define KEY_SUBDELAY_DOWN KEY_MODIFIER_COMMAND|'h' +# define KEY_AUDIODELAY_UP KEY_MODIFIER_COMMAND|'l' +# define KEY_AUDIODELAY_DOWN KEY_MODIFIER_COMMAND|'k' # define KEY_AUDIO_TRACK 'l' # define KEY_SUBTITLE_TRACK 's' # define KEY_INTF_SHOW 'i' -# define KEY_SNAPSHOT KEY_MODIFIER_CTRL|'s' +# define KEY_SNAPSHOT KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|'s' # define KEY_SET_BOOKMARK1 KEY_MODIFIER_COMMAND|KEY_F1 # define KEY_SET_BOOKMARK2 KEY_MODIFIER_COMMAND|KEY_F2 diff --git a/src/video_output/vout_intf.c b/src/video_output/vout_intf.c index 8830b9d653..465be82c4a 100644 --- a/src/video_output/vout_intf.c +++ b/src/video_output/vout_intf.c @@ -175,6 +175,7 @@ void vout_IntfInit( vout_thread_t *p_vout ) /* Create a few object variables we'll need later on */ var_Create( p_vout, "snapshot-path", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); + var_Create( p_vout, "snapshot-format", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); var_Create( p_vout, "aspect-ratio", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); var_Create( p_vout, "width", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); var_Create( p_vout, "height", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); @@ -259,7 +260,7 @@ int vout_Snapshot( vout_thread_t *p_vout, picture_t *p_pic ) char *psz_filename; subpicture_t *p_subpic; picture_t *p_pif; - vlc_value_t val; + vlc_value_t val, format; int i_ret; var_Get( p_vout, "snapshot-path", &val ); @@ -268,20 +269,35 @@ int vout_Snapshot( vout_thread_t *p_vout, picture_t *p_pic ) free( val.psz_string ); val.psz_string = 0; } +#ifdef SYS_DARWIN + if( !val.psz_string && p_vout->p_vlc->psz_homedir ) + { + asprintf( &val.psz_string, "%s/Desktop", + p_vout->p_vlc->psz_homedir ); + } +#else if( !val.psz_string && p_vout->p_vlc->psz_homedir ) { asprintf( &val.psz_string, "%s/" CONFIG_DIR, p_vout->p_vlc->psz_homedir ); } +#endif if( !val.psz_string ) { msg_Err( p_vout, "no directory specified for snapshots" ); return VLC_EGENERIC; } + var_Get( p_vout, "snapshot-format", &format ); + if( format.psz_string && !*format.psz_string ) + { + free( format.psz_string ); + format.psz_string = strdup( "png" ); + } - asprintf( &psz_filename, "%s/vlcsnap-%u.png", val.psz_string, - (unsigned int)(p_pic->date / 100000) & 0xFFFFFF ); + asprintf( &psz_filename, "%s/vlcsnap-%u.%s", val.psz_string, + (unsigned int)(p_pic->date / 100000) & 0xFFFFFF, format.psz_string ); free( val.psz_string ); + free( format.psz_string ); /* Save the snapshot */ fmt_in.i_chroma = p_vout->render.i_chroma; -- 2.39.2