diff options
Diffstat (limited to 'avmedia/source/framework/MediaControlBase.cxx')
-rw-r--r-- | avmedia/source/framework/MediaControlBase.cxx | 79 |
1 files changed, 43 insertions, 36 deletions
diff --git a/avmedia/source/framework/MediaControlBase.cxx b/avmedia/source/framework/MediaControlBase.cxx index 4e8800186ae4..fb8f91066b67 100644 --- a/avmedia/source/framework/MediaControlBase.cxx +++ b/avmedia/source/framework/MediaControlBase.cxx @@ -20,16 +20,15 @@ #include <avmedia/mediaplayer.hxx> #include <avmedia/mediaitem.hxx> #include <tools/time.hxx> +#include <tools/duration.hxx> #include <unotools/localedatawrapper.hxx> #include <strings.hrc> #include <helpids.h> #include <mediamisc.hxx> -using ::rtl::OUString; - constexpr sal_Int32 AVMEDIA_DB_RANGE = -40; -#define AVMEDIA_LINEINCREMENT 1.0 -#define AVMEDIA_PAGEINCREMENT 10.0 +constexpr double AVMEDIA_LINEINCREMENT = 1.0; +constexpr double AVMEDIA_PAGEINCREMENT = 10.0; namespace avmedia { @@ -48,9 +47,11 @@ void MediaControlBase::UpdateTimeField( MediaItem const & aMediaItem, double fTi SvtSysLocale aSysLocale; const LocaleDataWrapper& rLocaleData = aSysLocale.GetLocaleData(); - aTimeString += rLocaleData.getDuration( tools::Time( 0, 0, static_cast< sal_uInt32 >( floor( fTime ) ) ) ) + + aTimeString += rLocaleData.getDuration( + tools::Duration( 0, 0, 0, static_cast<sal_uInt32>( floor( fTime )), 0)) + " / " + - rLocaleData.getDuration( tools::Time( 0, 0, static_cast< sal_uInt32 >( floor( aMediaItem.getDuration() ) )) ); + rLocaleData.getDuration( + tools::Duration( 0, 0, 0, static_cast<sal_uInt32>( floor( aMediaItem.getDuration())), 0)); if( mxTimeEdit->get_text() != aTimeString ) mxTimeEdit->set_text( aTimeString ); @@ -106,15 +107,10 @@ void MediaControlBase::UpdateTimeSlider( MediaItem const & aMediaItem ) void MediaControlBase::InitializeWidgets() { mxPlayToolBox->set_item_help_id("play", HID_AVMEDIA_TOOLBOXITEM_PLAY); - mxPlayToolBox->set_item_label("play", AvmResId(AVMEDIA_STR_PLAY)); mxPlayToolBox->set_item_help_id("pause", HID_AVMEDIA_TOOLBOXITEM_PAUSE); - mxPlayToolBox->set_item_label("pause", AvmResId(AVMEDIA_STR_PAUSE)); mxPlayToolBox->set_item_help_id("stop", HID_AVMEDIA_TOOLBOXITEM_STOP); - mxPlayToolBox->set_item_label("stop", AvmResId(AVMEDIA_STR_STOP)); mxPlayToolBox->set_item_help_id("loop", HID_AVMEDIA_TOOLBOXITEM_LOOP); - mxPlayToolBox->set_item_label("loop", AvmResId(AVMEDIA_STR_LOOP)); mxMuteToolBox->set_item_help_id("mute", HID_AVMEDIA_TOOLBOXITEM_MUTE); - mxMuteToolBox->set_item_label("mute", AvmResId(AVMEDIA_STR_MUTE)); mxZoomListBox->append(OUString::number(AVMEDIA_ZOOMLEVEL_50), AvmResId( AVMEDIA_STR_ZOOM_50 )); mxZoomListBox->append(OUString::number(AVMEDIA_ZOOMLEVEL_100), AvmResId( AVMEDIA_STR_ZOOM_100 )); @@ -135,6 +131,28 @@ void MediaControlBase::InitializeWidgets() mxTimeSlider->set_tooltip_text( AvmResId( AVMEDIA_STR_POSITION )); } +void MediaControlBase::UpdatePlayState(const MediaItem& rMediaItem) +{ + if (rMediaItem.getState() == MediaState::Play) + { + mxPlayToolBox->set_item_active("play", true); + mxPlayToolBox->set_item_active("pause", false); + mxPlayToolBox->set_item_active("stop", false); + } + else if( rMediaItem.getState() == MediaState::Pause ) + { + mxPlayToolBox->set_item_active("play", false); + mxPlayToolBox->set_item_active("pause", true); + mxPlayToolBox->set_item_active("stop", false); + } + else + { + mxPlayToolBox->set_item_active("play", false); + mxPlayToolBox->set_item_active("pause", false); + mxPlayToolBox->set_item_active("stop", true); + } +} + void MediaControlBase::UpdateToolBoxes(const MediaItem& rMediaItem) { const bool bValidURL = !rMediaItem.getURL().isEmpty(); @@ -152,24 +170,7 @@ void MediaControlBase::UpdateToolBoxes(const MediaItem& rMediaItem) { mxPlayToolBox->set_sensitive(true); mxMuteToolBox->set_sensitive(true); - if( rMediaItem.getState() == MediaState::Play ) - { - mxPlayToolBox->set_item_active("play", true); - mxPlayToolBox->set_item_active("pause", false); - mxPlayToolBox->set_item_active("stop", false); - } - else if( rMediaItem.getState() == MediaState::Pause ) - { - mxPlayToolBox->set_item_active("play", false); - mxPlayToolBox->set_item_active("pause", true); - mxPlayToolBox->set_item_active("stop", false); - } - else - { - mxPlayToolBox->set_item_active("play", false); - mxPlayToolBox->set_item_active("pause", false); - mxPlayToolBox->set_item_active("stop", true); - } + UpdatePlayState(rMediaItem); mxPlayToolBox->set_item_active("loop", rMediaItem.isLoop()); mxMuteToolBox->set_item_active("mute", rMediaItem.isMute()); if (!mbCurrentlySettingZoom) @@ -211,16 +212,16 @@ void MediaControlBase::UpdateToolBoxes(const MediaItem& rMediaItem) } } -void MediaControlBase::SelectPlayToolBoxItem( MediaItem& aExecItem, MediaItem const & aItem, std::string_view rId) +void MediaControlBase::SelectPlayToolBoxItem( MediaItem& aExecItem, MediaItem const & aItem, std::u16string_view rId) { - if (rId == "apply") + if (rId == u"apply") { MediaFloater* pFloater = avmedia::getMediaFloater(); if( pFloater ) pFloater->dispatchCurrentURL(); } - else if (rId == "play") + else if (rId == u"play") { aExecItem.setState( MediaState::Play ); @@ -228,21 +229,27 @@ void MediaControlBase::SelectPlayToolBoxItem( MediaItem& aExecItem, MediaItem co aExecItem.setTime( 0.0 ); else aExecItem.setTime( aItem.getTime() ); + + UpdatePlayState(aExecItem); } - else if (rId == "pause") + else if (rId == u"pause") { aExecItem.setState( MediaState::Pause ); + + UpdatePlayState(aExecItem); } - else if (rId == "stop") + else if (rId == u"stop") { aExecItem.setState( MediaState::Stop ); aExecItem.setTime( 0.0 ); + + UpdatePlayState(aExecItem); } - else if (rId == "mute") + else if (rId == u"mute") { aExecItem.setMute( mxMuteToolBox->get_item_active("mute") ); } - else if (rId == "loop") + else if (rId == u"loop") { aExecItem.setLoop( mxPlayToolBox->get_item_active("loop") ); } |