summaryrefslogtreecommitdiff
path: root/slideshow
diff options
context:
space:
mode:
authorZolnai Tamás <tamas.zolnai@collabora.com>2014-04-11 16:33:55 +0200
committerZolnai Tamás <tamas.zolnai@collabora.com>2014-04-11 19:56:21 +0200
commit539017f1d96b0ca2c062ed7ffd2f48166f831493 (patch)
tree1248abcd79f6c123769342e94e6b5fb028bb3ef5 /slideshow
parent4e939b959911b94cc3feea57fa6f3f4a63c8ddac (diff)
fdo#72400: slideshow: display a snapshot of movie until its not started
Change-Id: Ibd81f2aada458dd7437053b59882d3200f78747e
Diffstat (limited to 'slideshow')
-rw-r--r--slideshow/source/engine/shapes/viewmediashape.cxx17
1 files changed, 10 insertions, 7 deletions
diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx
index 24873968703a..7f3c2e7c8f00 100644
--- a/slideshow/source/engine/shapes/viewmediashape.cxx
+++ b/slideshow/source/engine/shapes/viewmediashape.cxx
@@ -31,6 +31,7 @@
#include <vcl/canvastools.hxx>
#include <vcl/syschild.hxx>
#include <vcl/window.hxx>
+#include <vcl/graph.hxx>
#include <basegfx/tools/canvastools.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
@@ -186,14 +187,16 @@ namespace slideshow
if( !mpMediaWindow.get() && !mxPlayerWindow.is() )
{
- // draw placeholder for no-video (no window) case
- // no window and player == audio icon
- // no window and no player == broken icon
- BitmapEx aAudioLogo(mxPlayer.is() ?
- avmedia::MediaWindow::getAudioLogo() : avmedia::MediaWindow::getEmptyLogo() );
+ OUString sURL;
+ uno::Reference< beans::XPropertySet > xPropSet( mxShape, uno::UNO_QUERY );
+ if (xPropSet.is())
+ xPropSet->getPropertyValue("PrivateTempFileURL") >>= sURL;
+
+ const Graphic aGraphic(avmedia::MediaWindow::grabFrame(sURL,"", true));
+ const BitmapEx aBmp = aGraphic.GetBitmapEx();
uno::Reference< rendering::XBitmap > xBitmap(vcl::unotools::xBitmapFromBitmapEx(
- pCanvas->getUNOCanvas()->getDevice(), aAudioLogo));
+ pCanvas->getUNOCanvas()->getDevice(), aBmp));
rendering::ViewState aViewState;
aViewState.AffineTransform = pCanvas->getViewState().AffineTransform;
@@ -201,7 +204,7 @@ namespace slideshow
rendering::RenderState aRenderState;
::canvas::tools::initRenderState( aRenderState );
- const ::Size aBmpSize( aAudioLogo.GetSizePixel() );
+ const ::Size aBmpSize( aBmp.GetSizePixel() );
const ::basegfx::B2DVector aScale( rBounds.getWidth() / aBmpSize.Width(),
rBounds.getHeight() / aBmpSize.Height() );