35MediaControlBase::MediaControlBase()
36 : mbCurrentlySettingZoom(
false)
40void MediaControlBase::UpdateTimeField( MediaItem
const & aMediaItem,
double fTime )
42 if( aMediaItem.getURL().isEmpty())
51 tools::Duration( 0, 0, 0,
static_cast<sal_uInt32
>( floor( fTime )), 0)) +
54 tools::Duration( 0, 0, 0,
static_cast<sal_uInt32
>( floor( aMediaItem.getDuration())), 0));
56 if( mxTimeEdit->get_text() != aTimeString )
57 mxTimeEdit->set_text( aTimeString );
60void MediaControlBase::UpdateVolumeSlider( MediaItem
const & aMediaItem )
62 if( aMediaItem.getURL().isEmpty() )
63 mxVolumeSlider->set_sensitive(
false);
66 mxVolumeSlider->set_sensitive(
true);
67 const sal_Int32 nVolumeDB = aMediaItem.getVolumeDB();
68 mxVolumeSlider->set_value( std::clamp( nVolumeDB,
AVMEDIA_DB_RANGE, sal_Int32(0)) );
72void MediaControlBase::UpdateTimeSlider( MediaItem
const & aMediaItem )
74 if( aMediaItem.getURL().isEmpty() )
75 mxTimeSlider->set_sensitive(
false);
78 mxTimeSlider->set_sensitive(
true);
80 const double fDuration = aMediaItem.getDuration();
84 const double fTime = std::min( aMediaItem.getTime(), fDuration );
87 int nStep(0), nPage(0);
88 mxTimeSlider->get_increments(nStep, nPage);
100 mxTimeSlider->set_increments(nStep, nPage);
107void MediaControlBase::InitializeWidgets()
120 mxZoomListBox->set_tooltip_text(
AvmResId( AVMEDIA_STR_ZOOM_TOOLTIP ));
122 mxTimeEdit->set_text(
" 00:00:00/00:00:00 " );
124 mxTimeEdit->set_sensitive(
false);
127 mxVolumeSlider->set_tooltip_text(
AvmResId( AVMEDIA_STR_VOLUME ));
131 mxTimeSlider->set_tooltip_text(
AvmResId( AVMEDIA_STR_POSITION ));
134void MediaControlBase::UpdatePlayState(
const MediaItem& rMediaItem)
138 mxPlayToolBox->set_item_active(
"play",
true);
139 mxPlayToolBox->set_item_active(
"pause",
false);
140 mxPlayToolBox->set_item_active(
"stop",
false);
144 mxPlayToolBox->set_item_active(
"play",
false);
145 mxPlayToolBox->set_item_active(
"pause",
true);
146 mxPlayToolBox->set_item_active(
"stop",
false);
150 mxPlayToolBox->set_item_active(
"play",
false);
151 mxPlayToolBox->set_item_active(
"pause",
false);
152 mxPlayToolBox->set_item_active(
"stop",
true);
156void MediaControlBase::UpdateToolBoxes(
const MediaItem& rMediaItem)
158 const bool bValidURL = !rMediaItem.getURL().isEmpty();
159 mxPlayToolBox->set_item_sensitive(
"play", bValidURL);
160 mxPlayToolBox->set_item_sensitive(
"pause", bValidURL);
161 mxPlayToolBox->set_item_sensitive(
"stop", bValidURL);
162 mxPlayToolBox->set_item_sensitive(
"loop", bValidURL);
163 mxMuteToolBox->set_item_sensitive(
"mute", bValidURL);
166 mxZoomListBox->set_sensitive(
false);
167 mxMuteToolBox->set_sensitive(
false);
171 mxPlayToolBox->set_sensitive(
true);
172 mxMuteToolBox->set_sensitive(
true);
173 UpdatePlayState(rMediaItem);
174 mxPlayToolBox->set_item_active(
"loop", rMediaItem.isLoop());
175 mxMuteToolBox->set_item_active(
"mute", rMediaItem.isMute());
176 if (!mbCurrentlySettingZoom)
178 sal_uInt16 nSelectEntryPos ;
180 switch( rMediaItem.getZoom() )
182 case css::media::ZoomLevel_ZOOM_1_TO_2:
185 case css::media::ZoomLevel_ORIGINAL:
188 case css::media::ZoomLevel_ZOOM_2_TO_1:
191 case css::media::ZoomLevel_FIT_TO_WINDOW_FIXED_ASPECT:
194 case css::media::ZoomLevel_FIT_TO_WINDOW:
205 mxZoomListBox->show();
206 mxZoomListBox->set_sensitive(
true);
207 mxZoomListBox->set_active(nSelectEntryPos);
210 mxZoomListBox->set_sensitive(
false);
215void MediaControlBase::SelectPlayToolBoxItem( MediaItem& aExecItem, MediaItem
const & aItem, std::u16string_view rId)
222 pFloater->dispatchCurrentURL();
224 else if (rId ==
u"play")
228 if( aItem.getTime() == aItem.getDuration() )
229 aExecItem.setTime( 0.0 );
231 aExecItem.setTime( aItem.getTime() );
233 UpdatePlayState(aExecItem);
235 else if (rId ==
u"pause")
239 UpdatePlayState(aExecItem);
241 else if (rId ==
u"stop")
244 aExecItem.setTime( 0.0 );
246 UpdatePlayState(aExecItem);
248 else if (rId ==
u"mute")
250 aExecItem.setMute( mxMuteToolBox->get_item_active(
"mute") );
252 else if (rId ==
u"loop")
254 aExecItem.setLoop( mxPlayToolBox->get_item_active(
"loop") );
258void MediaControlBase::disposeWidgets()
260 mxZoomListBox.reset();
262 mxVolumeSlider.reset();
263 mxMuteToolBox.reset();
264 mxTimeSlider.reset();
265 mxPlayToolBox.reset();
OUString getDuration(const tools::Duration &rDuration, bool bSec=true, bool b100Sec=false) const
const LocaleDataWrapper & GetLocaleData() const
constexpr OUStringLiteral HID_AVMEDIA_TOOLBOXITEM_LOOP
constexpr OUStringLiteral HID_AVMEDIA_TOOLBOXITEM_STOP
constexpr OUStringLiteral HID_AVMEDIA_TIMEEDIT
constexpr OUStringLiteral HID_AVMEDIA_VOLUMESLIDER
constexpr OUStringLiteral HID_AVMEDIA_TOOLBOXITEM_MUTE
constexpr OUStringLiteral HID_AVMEDIA_TOOLBOXITEM_PLAY
constexpr OUStringLiteral HID_AVMEDIA_ZOOMLISTBOX
constexpr OUStringLiteral HID_AVMEDIA_TOOLBOXITEM_PAUSE