Skip to content

Commit 498c8c5

Browse files
committed
allowed querying of playback rate support
1 parent 60f5633 commit 498c8c5

File tree

4 files changed

+28
-6
lines changed

4 files changed

+28
-6
lines changed

src/AX-MediaPlayer.cxx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,21 @@ namespace AX
8080
_impl->TogglePlayback ( );
8181
}
8282

83-
void MediaPlayer::SetPlaybackRate ( float rate )
83+
bool MediaPlayer::SetPlaybackRate ( float rate )
8484
{
85-
_impl->SetPlaybackRate ( rate );
85+
return _impl->SetPlaybackRate ( rate );
8686
}
8787

8888
float MediaPlayer::GetPlaybackRate ( ) const
8989
{
9090
return _impl->GetPlaybackRate ( );
9191
}
9292

93+
bool MediaPlayer::IsPlaybackRateSupported ( float rate ) const
94+
{
95+
return _impl->IsPlaybackRateSupported ( rate );
96+
}
97+
9398
void MediaPlayer::SetMuted ( bool mute )
9499
{
95100
_impl->SetMuted ( mute );

src/AX-MediaPlayer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,9 @@ namespace AX::Video
6767
void Pause ( );
6868
void TogglePlayback ( );
6969

70-
void SetPlaybackRate ( float rate );
70+
bool SetPlaybackRate ( float rate );
7171
float GetPlaybackRate ( ) const;
72+
bool IsPlaybackRateSupported ( float rate ) const;
7273

7374
void SetMuted ( bool mute );
7475
bool IsMuted ( ) const;

src/Win32/AX-MediaPlayerWin32Impl.cxx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,12 +456,17 @@ namespace AX::Video
456456
}
457457
}
458458

459-
void MediaPlayer::Impl::SetPlaybackRate ( float rate )
459+
bool MediaPlayer::Impl::SetPlaybackRate ( float rate )
460460
{
461461
if ( _mediaEngine )
462462
{
463-
_mediaEngine->SetPlaybackRate ( rate );
463+
if ( IsPlaybackRateSupported ( rate ) )
464+
{
465+
return SUCCEEDED ( _mediaEngine->SetPlaybackRate ( static_cast<double> ( rate ) ) );
466+
}
464467
}
468+
469+
return false;
465470
}
466471

467472
float MediaPlayer::Impl::GetPlaybackRate ( ) const
@@ -474,6 +479,16 @@ namespace AX::Video
474479
return 1.0f;
475480
}
476481

482+
bool MediaPlayer::Impl::IsPlaybackRateSupported ( float rate ) const
483+
{
484+
if ( _mediaEngineEx )
485+
{
486+
return _mediaEngineEx->IsPlaybackRateSupported ( static_cast<double> ( rate ) );
487+
}
488+
489+
return false;
490+
}
491+
477492
void MediaPlayer::Impl::SetMuted ( bool mute )
478493
{
479494
if ( _mediaEngine )

src/Win32/AX-MediaPlayerWin32Impl.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ namespace AX::Video
8989
void Pause ( );
9090
void TogglePlayback ( );
9191

92-
void SetPlaybackRate ( float rate );
92+
bool SetPlaybackRate ( float rate );
9393
float GetPlaybackRate ( ) const;
94+
bool IsPlaybackRateSupported ( float rate ) const;
9495

9596
void SetMuted ( bool mute );
9697
bool IsMuted ( ) const;

0 commit comments

Comments
 (0)