]> git.sesse.net Git - vlc/commitdiff
* src/libvlc.h: Added a "snapshot-format" option to be able to select png or jpg...
authorDerk-Jan Hartman <hartman@videolan.org>
Thu, 23 Dec 2004 00:33:05 +0000 (00:33 +0000)
committerDerk-Jan Hartman <hartman@videolan.org>
Thu, 23 Dec 2004 00:33:05 +0000 (00:33 +0000)
* 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.

extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
modules/gui/macosx/controls.m
modules/gui/macosx/intf.h
modules/gui/macosx/intf.m
modules/gui/macosx/vout.h
modules/gui/macosx/vout.m
src/libvlc.h
src/video_output/vout_intf.c

index 1e0c4b19fb98985c307ab970d585216c5502aac4..49d891704293fb71d3dc60868ed2afdd1715e9c9 100644 (file)
                 "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; 
index ee2c196459843891d451127cdd86de1c365ad652..bf4d14e970958d4f52298291e4a14990d1572458 100644 (file)
@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>47 61 505 517 0 0 800 578 </string>
+       <string>25 92 505 517 0 0 1280 938 </string>
        <key>IBEditorPositions</key>
        <dict>
                <key>1617</key>
@@ -11,7 +11,7 @@
                <key>2197</key>
                <string>237 313 596 367 0 0 1024 746 </string>
                <key>29</key>
-               <string>421 486 419 44 0 0 800 578 </string>
+               <string>326 879 419 44 0 0 1280 938 </string>
                <key>915</key>
                <string>731 416 165 180 0 0 1024 746 </string>
        </dict>
@@ -27,6 +27,7 @@
        <key>IBOpenObjects</key>
        <array>
                <integer>21</integer>
+               <integer>29</integer>
        </array>
        <key>IBSystem Version</key>
        <string>7S215</string>
index 77d6dd901be30c30c28cc44e411b3b1fabd783ca..2616b76788eac7069bb8ea39b39630c5589672ac 100644 (file)
Binary files a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib and b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib differ
index 01e5dd7f6c5258bc26e6b40133467ab551e4bdc4..1a5ecac3e972c776f0678c1489ac328a0ac5bdec 100644 (file)
                     if( ![o_window isZoomed] )
                         [o_window performZoom:self];
                 }
+                else if( [o_title isEqualToString: _NS("Snapshot") ] )
+                {
+                    [o_window snapshot];
+                }
                 else
                 {
                     vlc_value_t val;
                 [[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;
index d39aeecbb073c8f458242c255f0f710218bf1681..fe350ad0e05675df7074567b4cb4f171f8bc5dc8 100644 (file)
@@ -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;
index ce7710ee2220e0b2de882a612cc63f08176f7960..5a45a806b046b4141790346e23c7ca2b04d9ef97 100644 (file)
@@ -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")];
index 33432d75d0e94b8314e63cb3abeddc24d6ea439c..418bf73ac042d3199a01f7d85eaf37fb74e0c1e0 100644 (file)
@@ -48,6 +48,7 @@
 - (void)toggleFloatOnTop;
 - (void)toggleFullscreen;
 - (BOOL)isFullscreen;
+- (void)snapshot;
 - (void)updateTitle;
 
 - (BOOL)windowShouldClose:(id)sender;
index 386149ea0b67ba8cb605d43aaed7feca9201201b..e809402f1f8a916e5d73c51a1c5c3d1e73a7ec68 100644 (file)
     return( p_vout->b_fullscreen );
 }
 
+- (void)snapshot
+{
+    vout_Control( p_vout, VOUT_SNAPSHOT );
+}
+
 - (BOOL)canBecomeKeyWindow
 {
     return YES;
index 45b4a0d134b7c97539bf7bd7e677731e2f02b9a9..64138ec401f5326a0495c7df1406e2c2246af571 100644 (file)
@@ -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
index 8830b9d6539e89c51a125c5d2f4f7d4916d639cb..465be82c4aa9c832d5ec1114306506d6b7175cf9 100644 (file)
@@ -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;