summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--avmedia/inc/mediacontrol.hxx1
-rw-r--r--avmedia/source/framework/mediacontrol.cxx11
-rw-r--r--avmedia/source/framework/mediaitem.cxx124
-rw-r--r--include/avmedia/mediaitem.hxx26
4 files changed, 87 insertions, 75 deletions
diff --git a/avmedia/inc/mediacontrol.hxx b/avmedia/inc/mediacontrol.hxx
index 33c063fc9dad..6b004626ff83 100644
--- a/avmedia/inc/mediacontrol.hxx
+++ b/avmedia/inc/mediacontrol.hxx
@@ -66,7 +66,6 @@ private:
MediaItem maItem;
bool mbLocked;
MediaControlStyle meControlStyle;
- double mfTime;
};
}
diff --git a/avmedia/source/framework/mediacontrol.cxx b/avmedia/source/framework/mediacontrol.cxx
index bb1bca959a90..23d700595f95 100644
--- a/avmedia/source/framework/mediacontrol.cxx
+++ b/avmedia/source/framework/mediacontrol.cxx
@@ -39,8 +39,7 @@ MediaControl::MediaControl( vcl::Window* pParent, MediaControlStyle eControlStyl
maChangeTimeIdle( "avmedia MediaControl Change Time Idle" ),
maItem( 0, AVMediaSetMask::ALL ),
mbLocked( false ),
- meControlStyle( eControlStyle ),
- mfTime(0.0)
+ meControlStyle( eControlStyle )
{
mxPlayToolBox = m_xBuilder->weld_toolbar("playtoolbox");
mxTimeSlider = m_xBuilder->weld_scale("timeslider");
@@ -112,11 +111,11 @@ void MediaControl::UpdateURLField(MediaItem const & tempItem)
void MediaControl::setState( const MediaItem& rItem )
{
- double fTime = rItem.getTime();
- if( !mbLocked && fTime != mfTime)
+ if (mbLocked)
+ return;
+ bool bChanged = maItem.merge(rItem);
+ if (bChanged)
{
- mfTime = fTime;
- maItem.merge( rItem );
if( rItem.getURL().isEmpty() && meControlStyle == MediaControlStyle::SingleLine )
mxPlayToolBox->set_sensitive(false);
UpdateToolBoxes( maItem );
diff --git a/avmedia/source/framework/mediaitem.cxx b/avmedia/source/framework/mediaitem.cxx
index 127ad8af243f..0a53cf5d4d39 100644
--- a/avmedia/source/framework/mediaitem.cxx
+++ b/avmedia/source/framework/mediaitem.cxx
@@ -178,187 +178,201 @@ bool MediaItem::PutValue( const css::uno::Any& rVal, sal_uInt8 )
return bRet;
}
-
-void MediaItem::merge( const MediaItem& rMediaItem )
+bool MediaItem::merge(const MediaItem& rMediaItem)
{
+ bool bChanged = false;
+
const AVMediaSetMask nMaskSet = rMediaItem.getMaskSet();
if( AVMediaSetMask::URL & nMaskSet )
- setURL( rMediaItem.getURL(), rMediaItem.getTempURL(), rMediaItem.getReferer() );
+ bChanged |= setURL(rMediaItem.getURL(), rMediaItem.getTempURL(), rMediaItem.getReferer());
if( AVMediaSetMask::MIME_TYPE & nMaskSet )
- setMimeType( rMediaItem.getMimeType() );
+ bChanged |= setMimeType(rMediaItem.getMimeType());
if (nMaskSet & AVMediaSetMask::GRAPHIC)
- setGraphic(rMediaItem.getGraphic());
+ bChanged |= setGraphic(rMediaItem.getGraphic());
if( AVMediaSetMask::STATE & nMaskSet )
- setState( rMediaItem.getState() );
+ bChanged |= setState( rMediaItem.getState() );
if( AVMediaSetMask::DURATION & nMaskSet )
- setDuration( rMediaItem.getDuration() );
+ bChanged |= setDuration(rMediaItem.getDuration());
if( AVMediaSetMask::TIME & nMaskSet )
- setTime( rMediaItem.getTime() );
+ bChanged |= setTime(rMediaItem.getTime());
if( AVMediaSetMask::LOOP & nMaskSet )
- setLoop( rMediaItem.isLoop() );
+ bChanged |= setLoop(rMediaItem.isLoop());
if( AVMediaSetMask::MUTE & nMaskSet )
- setMute( rMediaItem.isMute() );
+ bChanged |= setMute(rMediaItem.isMute());
if( AVMediaSetMask::VOLUMEDB & nMaskSet )
- setVolumeDB( rMediaItem.getVolumeDB() );
+ bChanged |= setVolumeDB(rMediaItem.getVolumeDB());
if( AVMediaSetMask::ZOOM & nMaskSet )
- setZoom( rMediaItem.getZoom() );
-}
+ bChanged |= setZoom(rMediaItem.getZoom());
+ return bChanged;
+}
AVMediaSetMask MediaItem::getMaskSet() const
{
return m_pImpl->m_nMaskSet;
}
-
-void MediaItem::setURL( const OUString& rURL, const OUString& rTempURL, const OUString& rReferer )
+bool MediaItem::setURL(const OUString& rURL, const OUString& rTempURL, const OUString& rReferer)
{
m_pImpl->m_nMaskSet |= AVMediaSetMask::URL;
- m_pImpl->m_URL = rURL;
- m_pImpl->m_TempFileURL = rTempURL;
- m_pImpl->m_Referer = rReferer;
+ bool bChanged = rURL != m_pImpl->m_URL || rTempURL != m_pImpl->m_TempFileURL || rReferer != m_pImpl->m_Referer;
+ if (bChanged)
+ {
+ m_pImpl->m_URL = rURL;
+ m_pImpl->m_TempFileURL = rTempURL;
+ m_pImpl->m_Referer = rReferer;
+ }
+ return bChanged;
}
-
const OUString& MediaItem::getURL() const
{
return m_pImpl->m_URL;
}
-
const OUString& MediaItem::getTempURL() const
{
return m_pImpl->m_TempFileURL;
}
-
const OUString& MediaItem::getReferer() const
{
return m_pImpl->m_Referer;
}
-
-void MediaItem::setMimeType( const OUString& rMimeType )
+bool MediaItem::setMimeType(const OUString& rMimeType)
{
m_pImpl->m_nMaskSet |= AVMediaSetMask::MIME_TYPE;
- m_pImpl->m_sMimeType = rMimeType;
+ bool bChanged = rMimeType != m_pImpl->m_sMimeType;
+ if (bChanged)
+ m_pImpl->m_sMimeType = rMimeType;
+ return bChanged;
}
-
OUString MediaItem::getMimeType() const
{
return !m_pImpl->m_sMimeType.isEmpty() ? m_pImpl->m_sMimeType : AVMEDIA_MIMETYPE_COMMON;
}
-void MediaItem::setGraphic(const Graphic& rGraphic)
+bool MediaItem::setGraphic(const Graphic& rGraphic)
{
m_pImpl->m_nMaskSet |= AVMediaSetMask::GRAPHIC;
- m_pImpl->m_aGraphic = rGraphic;
+ bool bChanged = rGraphic != m_pImpl->m_aGraphic;
+ if (bChanged)
+ m_pImpl->m_aGraphic = rGraphic;
+ return bChanged;
}
const Graphic & MediaItem::getGraphic() const { return m_pImpl->m_aGraphic; }
-void MediaItem::setState( MediaState eState )
+bool MediaItem::setState(MediaState eState)
{
- m_pImpl->m_eState = eState;
m_pImpl->m_nMaskSet |= AVMediaSetMask::STATE;
+ bool bChanged = eState != m_pImpl->m_eState;
+ if (bChanged)
+ m_pImpl->m_eState = eState;
+ return bChanged;
}
-
MediaState MediaItem::getState() const
{
return m_pImpl->m_eState;
}
-
-void MediaItem::setDuration( double fDuration )
+bool MediaItem::setDuration(double fDuration)
{
- m_pImpl->m_fDuration = fDuration;
m_pImpl->m_nMaskSet |= AVMediaSetMask::DURATION;
+ bool bChanged = fDuration != m_pImpl->m_fDuration;
+ if (bChanged)
+ m_pImpl->m_fDuration = fDuration;
+ return bChanged;
}
-
double MediaItem::getDuration() const
{
return m_pImpl->m_fDuration;
}
-
-void MediaItem::setTime( double fTime )
+bool MediaItem::setTime(double fTime)
{
- m_pImpl->m_fTime = fTime;
m_pImpl->m_nMaskSet |= AVMediaSetMask::TIME;
+ bool bChanged = fTime != m_pImpl->m_fTime;
+ if (bChanged)
+ m_pImpl->m_fTime = fTime;
+ return bChanged;
}
-
double MediaItem::getTime() const
{
return m_pImpl->m_fTime;
}
-
-void MediaItem::setLoop( bool bLoop )
+bool MediaItem::setLoop(bool bLoop)
{
- m_pImpl->m_bLoop = bLoop;
m_pImpl->m_nMaskSet |= AVMediaSetMask::LOOP;
+ bool bChanged = bLoop != m_pImpl->m_bLoop;
+ if (bChanged)
+ m_pImpl->m_bLoop = bLoop;
+ return bChanged;
}
-
bool MediaItem::isLoop() const
{
return m_pImpl->m_bLoop;
}
-
-void MediaItem::setMute( bool bMute )
+bool MediaItem::setMute(bool bMute)
{
- m_pImpl->m_bMute = bMute;
m_pImpl->m_nMaskSet |= AVMediaSetMask::MUTE;
+ bool bChanged = bMute != m_pImpl->m_bMute;
+ if (bChanged)
+ m_pImpl->m_bMute = bMute;
+ return bChanged;
}
-
bool MediaItem::isMute() const
{
return m_pImpl->m_bMute;
}
-
-void MediaItem::setVolumeDB( sal_Int16 nDB )
+bool MediaItem::setVolumeDB(sal_Int16 nDB)
{
- m_pImpl->m_nVolumeDB = nDB;
m_pImpl->m_nMaskSet |= AVMediaSetMask::VOLUMEDB;
+ bool bChanged = nDB != m_pImpl->m_nVolumeDB;
+ if (bChanged)
+ m_pImpl->m_nVolumeDB = nDB;
+ return bChanged;
}
-
sal_Int16 MediaItem::getVolumeDB() const
{
return m_pImpl->m_nVolumeDB;
}
-
-void MediaItem::setZoom( css::media::ZoomLevel eZoom )
+bool MediaItem::setZoom(css::media::ZoomLevel eZoom)
{
- m_pImpl->m_eZoom = eZoom;
m_pImpl->m_nMaskSet |= AVMediaSetMask::ZOOM;
+ bool bChanged = eZoom != m_pImpl->m_eZoom;
+ if (bChanged)
+ m_pImpl->m_eZoom = eZoom;
+ return bChanged;
}
-
css::media::ZoomLevel MediaItem::getZoom() const
{
return m_pImpl->m_eZoom;
}
-
OUString GetFilename(OUString const& rSourceURL)
{
uno::Reference<uri::XUriReferenceFactory> const xUriFactory(
diff --git a/include/avmedia/mediaitem.hxx b/include/avmedia/mediaitem.hxx
index a19c2319315b..ab9418607cb7 100644
--- a/include/avmedia/mediaitem.hxx
+++ b/include/avmedia/mediaitem.hxx
@@ -85,39 +85,39 @@ public:
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
- void merge( const MediaItem& rMediaItem );
+ bool merge(const MediaItem& rMediaItem);
AVMediaSetMask getMaskSet() const;
- void setState( MediaState eState );
+ bool setState(MediaState eState);
MediaState getState() const;
- void setDuration( double fDuration );
+ bool setDuration(double fDuration);
double getDuration() const;
- void setTime( double fTime );
+ bool setTime(double fTime);
double getTime() const;
- void setLoop( bool bLoop );
+ bool setLoop(bool bLoop);
bool isLoop() const;
- void setMute( bool bMute );
+ bool setMute(bool bMute);
bool isMute() const;
- void setVolumeDB( sal_Int16 nDB );
+ bool setVolumeDB(sal_Int16 nDB);
sal_Int16 getVolumeDB() const;
- void setZoom( ::css::media::ZoomLevel eZoom );
+ bool setZoom(css::media::ZoomLevel eZoom);
::css::media::ZoomLevel getZoom() const;
- void setURL( const OUString& rURL,
- const OUString& rTempURL,
- const OUString& rReferer);
+ bool setURL(const OUString& rURL,
+ const OUString& rTempURL,
+ const OUString& rReferer);
const OUString& getURL() const;
- void setMimeType( const OUString& rMimeType );
+ bool setMimeType(const OUString& rMimeType);
OUString getMimeType() const;
- void setGraphic(const Graphic& rGraphic);
+ bool setGraphic(const Graphic& rGraphic);
const Graphic & getGraphic() const;
const OUString& getTempURL() const;