Commit 55a60c20 authored by Felix Paul Kühne's avatar Felix Paul Kühne
Browse files

osx/framework: added convenience methods for jumps within a stream

parent 2996a461
......@@ -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.
......
......@@ -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];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment