summaryrefslogtreecommitdiff
path: root/avmedia/source/framework
diff options
context:
space:
mode:
Diffstat (limited to 'avmedia/source/framework')
-rw-r--r--avmedia/source/framework/mediacontrol.cxx4
-rw-r--r--avmedia/source/framework/mediaitem.cxx13
-rw-r--r--avmedia/source/framework/mediaplayer.cxx4
-rw-r--r--avmedia/source/framework/soundhandler.cxx9
4 files changed, 20 insertions, 10 deletions
diff --git a/avmedia/source/framework/mediacontrol.cxx b/avmedia/source/framework/mediacontrol.cxx
index fc67309f62b5..7facb1f26f1a 100644
--- a/avmedia/source/framework/mediacontrol.cxx
+++ b/avmedia/source/framework/mediacontrol.cxx
@@ -494,11 +494,11 @@ IMPL_LINK( MediaControl, implSelectHdl, ToolBox*, p )
if (::avmedia::MediaWindow::executeMediaURLDialog(
GetParent(), aURL, 0))
{
- if( !::avmedia::MediaWindow::isMediaURL( aURL, true ) )
+ if( !::avmedia::MediaWindow::isMediaURL( aURL, ""/*TODO?*/, true ) )
::avmedia::MediaWindow::executeFormatErrorBox( this );
else
{
- aExecItem.setURL( aURL, "" );
+ aExecItem.setURL( aURL, "", ""/*TODO?*/ );
aExecItem.setState( MEDIASTATE_PLAY );
}
}
diff --git a/avmedia/source/framework/mediaitem.cxx b/avmedia/source/framework/mediaitem.cxx
index 98359b1b0411..b57abfecb9ce 100644
--- a/avmedia/source/framework/mediaitem.cxx
+++ b/avmedia/source/framework/mediaitem.cxx
@@ -53,6 +53,7 @@ struct MediaItem::Impl
{
OUString m_URL;
OUString m_TempFileURL;
+ OUString m_Referer;
sal_uInt32 m_nMaskSet;
MediaState m_eState;
double m_fTime;
@@ -76,6 +77,7 @@ struct MediaItem::Impl
Impl(Impl const& rOther)
: m_URL( rOther.m_URL )
, m_TempFileURL( rOther.m_TempFileURL )
+ , m_Referer( rOther.m_Referer )
, m_nMaskSet( rOther.m_nMaskSet )
, m_eState( rOther.m_eState )
, m_fTime( rOther.m_fTime )
@@ -118,6 +120,7 @@ int MediaItem::operator==( const SfxPoolItem& rItem ) const
MediaItem const& rOther(static_cast< const MediaItem& >(rItem));
return m_pImpl->m_nMaskSet == rOther.m_pImpl->m_nMaskSet
&& m_pImpl->m_URL == rOther.m_pImpl->m_URL
+ && m_pImpl->m_Referer == rOther.m_pImpl->m_Referer
&& m_pImpl->m_eState == rOther.m_pImpl->m_eState
&& m_pImpl->m_fDuration == rOther.m_pImpl->m_fDuration
&& m_pImpl->m_fTime == rOther.m_pImpl->m_fTime
@@ -202,7 +205,7 @@ void MediaItem::merge( const MediaItem& rMediaItem )
const sal_uInt32 nMaskSet = rMediaItem.getMaskSet();
if( AVMEDIA_SETMASK_URL & nMaskSet )
- setURL( rMediaItem.getURL(), rMediaItem.getTempURL() );
+ setURL( rMediaItem.getURL(), rMediaItem.getTempURL(), rMediaItem.getReferer() );
if( AVMEDIA_SETMASK_STATE & nMaskSet )
setState( rMediaItem.getState() );
@@ -235,11 +238,12 @@ sal_uInt32 MediaItem::getMaskSet() const
//------------------------------------------------------------------------
-void MediaItem::setURL( const OUString& rURL, const OUString& rTempURL )
+void MediaItem::setURL( const OUString& rURL, const OUString& rTempURL, const OUString& rReferer )
{
m_pImpl->m_nMaskSet |= AVMEDIA_SETMASK_URL;
m_pImpl->m_URL = rURL;
m_pImpl->m_TempFileURL = rTempURL;
+ m_pImpl->m_Referer = rReferer;
}
//------------------------------------------------------------------------
@@ -254,6 +258,11 @@ const OUString& MediaItem::getTempURL() const
return m_pImpl->m_TempFileURL;
}
+const OUString& MediaItem::getReferer() const
+{
+ return m_pImpl->m_Referer;
+}
+
//------------------------------------------------------------------------
void MediaItem::setState( MediaState eState )
diff --git a/avmedia/source/framework/mediaplayer.cxx b/avmedia/source/framework/mediaplayer.cxx
index e5b35d308b51..bef6fc6cdef7 100644
--- a/avmedia/source/framework/mediaplayer.cxx
+++ b/avmedia/source/framework/mediaplayer.cxx
@@ -116,11 +116,11 @@ void MediaFloater::ToggleFloatingMode()
// -----------------------------------------------------------------------------
-void MediaFloater::setURL( const OUString& rURL, bool bPlayImmediately )
+void MediaFloater::setURL( const OUString& rURL, const OUString& rReferer, bool bPlayImmediately )
{
if( mpMediaWindow )
{
- mpMediaWindow->setURL( rURL );
+ mpMediaWindow->setURL( rURL, rReferer );
if( mpMediaWindow->isValid() && bPlayImmediately )
mpMediaWindow->start();
diff --git a/avmedia/source/framework/soundhandler.cxx b/avmedia/source/framework/soundhandler.cxx
index 06658e9ad948..e56f86b7822d 100644
--- a/avmedia/source/framework/soundhandler.cxx
+++ b/avmedia/source/framework/soundhandler.cxx
@@ -264,11 +264,11 @@ void SAL_CALL SoundHandler::dispatchWithNotification(const css::util::URL&
// SAFE {
const ::osl::MutexGuard aLock( m_aLock );
+ utl::MediaDescriptor aDescriptor(lDescriptor);
+
{
//close streams otherwise on windows we can't reopen the file in the
//media player when we pass the url to directx as it'll already be open
- utl::MediaDescriptor aDescriptor(lDescriptor);
-
css::uno::Reference< css::io::XInputStream > xInputStream =
aDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_INPUTSTREAM(),
css::uno::Reference< css::io::XInputStream >());
@@ -290,7 +290,7 @@ void SAL_CALL SoundHandler::dispatchWithNotification(const css::util::URL&
try
{
m_bError = false;
- m_xPlayer.set( avmedia::MediaWindow::createPlayer( aURL.Complete ), css::uno::UNO_QUERY_THROW );
+ m_xPlayer.set( avmedia::MediaWindow::createPlayer( aURL.Complete, aDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_REFERRER(), OUString()) ), css::uno::UNO_QUERY_THROW );
// OK- we can start async playing ...
// Count this request and initialize self-holder against dieing by uno ref count ...
m_xSelfHold = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY);
@@ -346,10 +346,11 @@ OUString SAL_CALL SoundHandler::detect( css::uno::Sequence< css::beans::Property
// Analyze given descriptor to find filename or input stream or ...
utl::MediaDescriptor aDescriptor(lDescriptor);
OUString sURL = aDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_URL(), OUString());
+ OUString sReferer = aDescriptor.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_REFERRER(), OUString());
if (
(sURL.getLength() ) &&
- (avmedia::MediaWindow::isMediaURL(sURL))
+ (avmedia::MediaWindow::isMediaURL(sURL, sReferer))
)
{
// If the file type is supported depends on the OS, so...