]> git.sesse.net Git - vlc/commitdiff
osx/framework: added convenience methods for jumps within a stream
authorFelix Paul Kühne <fkuehne@videolan.org>
Fri, 9 Oct 2009 15:16:20 +0000 (17:16 +0200)
committerFelix Paul Kühne <fkuehne@videolan.org>
Fri, 9 Oct 2009 15:16:33 +0000 (17:16 +0200)
projects/macosx/framework/Headers/Public/VLCMediaPlayer.h
projects/macosx/framework/Sources/VLCMediaPlayer.m

index b282b90ce5ed4997c42abb0228b131aa55e469a1..34e31a181485cadd16901e11f837d062da32db6b 100644 (file)
@@ -190,6 +190,58 @@ extern NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state);
  */
 - (void)rewindAtRate:(float)rate;
 
+/**
+ * Jumps shortly backward in current stream if seeking is supported.
+ * \param interval to skip, in sec.
+ */
+- (void)jumpBackward:(NSInteger)interval;
+
+/**
+ * Jumps shortly forward in current stream if seeking is supported.
+ * \param interval to skip, in sec.
+ */
+- (void)jumpForward:(NSInteger)interval;
+
+/**
+ * Jumps shortly backward in current stream if seeking is supported.
+ */
+- (void)extraShortJumpBackward;
+
+/**
+ * Jumps shortly forward in current stream if seeking is supported.
+ */
+- (void)extraShortJumpForward;
+
+/**
+ * Jumps shortly backward in current stream if seeking is supported.
+ */
+- (void)shortJumpBackward;
+
+/**
+ * Jumps shortly forward in current stream if seeking is supported.
+ */
+- (void)shortJumpForward;
+
+/**
+ * Jumps shortly backward in current stream if seeking is supported.
+ */
+- (void)mediumJumpBackward;
+
+/**
+ * Jumps shortly forward in current stream if seeking is supported.
+ */
+- (void)mediumJumpForward;
+
+/**
+ * Jumps shortly backward in current stream if seeking is supported.
+ */
+- (void)longJumpBackward;
+
+/**
+ * Jumps shortly forward in current stream if seeking is supported.
+ */
+- (void)longJumpForward;
+
 /* Playback Information */
 /**
  * Playback state flag identifying that the stream is currently playing.
index a386b629b71bb169257e5fc26f8f3e85fc35adef..f0ac85b6132eaeb5e25dfba3237bed728ac9cb64 100644 (file)
@@ -325,7 +325,7 @@ static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void *
     NSSize result = NSMakeSize(libvlc_video_get_height((libvlc_media_player_t *)instance, &ex),
                                libvlc_video_get_width((libvlc_media_player_t *)instance, &ex));
     catch_exception( &ex );
-    return result;    
+    return result;
 }
 
 - (BOOL)hasVideoOut
@@ -516,6 +516,64 @@ static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void *
     [self setRate: -rate];
 }
 
+- (void)jumpBackward:(NSInteger)interval
+{
+    if( [self isSeekable] )
+    {
+        interval = interval * 1000000;
+        [self setTime: [VLCTime timeWithInt: ([[self time] intValue] - interval)]];
+    }
+}
+
+- (void)jumpForward:(NSInteger)interval
+{
+    if( [self isSeekable] )
+    {
+        interval = interval * 1000000;
+        [self setTime: [VLCTime timeWithInt: ([[self time] intValue] + interval)]];
+    }
+}
+
+- (void)extraShortJumpBackward
+{
+    [self jumpBackward:3];
+}
+
+- (void)extraShortJumpForward
+{
+    [self jumpForward:3];
+}
+
+- (void)shortJumpBackward
+{
+    [self jumpBackward:10];
+}
+
+- (void)shortJumpForward
+{
+    [self jumpForward:10];
+}
+
+- (void)mediumJumpBackward
+{
+    [self jumpBackward:60];
+}
+
+- (void)mediumJumpForward
+{
+    [self jumpForward:60];
+}
+
+- (void)longJumpBackward
+{
+    [self jumpBackward:300];
+}
+
+- (void)longJumpForward
+{
+    [self jumpForward:300];
+}
+
 + (NSSet *)keyPathsForValuesAffectingIsPlaying
 {
     return [NSSet setWithObjects:@"state", nil];