summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/xinevideowidget.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/noncore/multimedia/opieplayer2/xinevideowidget.cpp b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
index 7f59085..78ebe19 100644
--- a/noncore/multimedia/opieplayer2/xinevideowidget.cpp
+++ b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
@@ -1,7 +1,6 @@
1
2/* 1/*
3                This file is part of the Opie Project 2                This file is part of the Opie Project
4 3
5              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
6 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
7 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
@@ -212,12 +211,15 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * )
212 break; 211 break;
213 break; 212 break;
214 } 213 }
215 int middle_w = _vw/2; 214 int middle_w = _vw/2;
216 int middle_h = _vh/2; 215 int middle_h = _vh/2;
217 m_thisframe.setRect(width()/2-middle_w,height()/2-middle_h,_vw,_vh); 216 m_thisframe.setRect(width()/2-middle_w,height()/2-middle_h,_vw,_vh);
217
218 {
219 // is this stuff realy needed? it seems working without, too.
218 QRect topFill,rightFill,leftFill,downFill; 220 QRect topFill,rightFill,leftFill,downFill;
219 topFill. setRect(0,0 ,width(),m_thisframe.top()); 221 topFill. setRect(0,0 ,width(),m_thisframe.top());
220 downFill.setCoords(0,m_thisframe.bottom(),width(),height()); 222 downFill.setCoords(0,m_thisframe.bottom(),width(),height());
221 rightFill.setCoords(m_thisframe.right(),0,width(),height()); 223 rightFill.setCoords(m_thisframe.right(),0,width(),height());
222 leftFill.setCoords(0,0,m_thisframe.left(),height()); 224 leftFill.setCoords(0,0,m_thisframe.left(),height());
223 225
@@ -230,12 +232,14 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * )
230 if (rightFill.isValid()) { 232 if (rightFill.isValid()) {
231 p.fillRect(rightFill,black); 233 p.fillRect(rightFill,black);
232 } 234 }
233 if (leftFill.isValid()) { 235 if (leftFill.isValid()) {
234 p.fillRect(leftFill,black); 236 p.fillRect(leftFill,black);
235 } 237 }
238
239 }
236 uchar *fb = dp. frameBuffer ( ); 240 uchar *fb = dp. frameBuffer ( );
237 uchar *frame = m_buff; 241 uchar *frame = m_buff;
238 242
239 // where is the video frame in fb coordinates 243 // where is the video frame in fb coordinates
240 QRect framerect = qt_screen-> mapToDevice ( QRect ( mapToGlobal ( m_thisframe. topLeft ( )), m_thisframe. size ( )), QSize ( qt_screen-> width ( ), 244 QRect framerect = qt_screen-> mapToDevice ( QRect ( mapToGlobal ( m_thisframe. topLeft ( )), m_thisframe. size ( )), QSize ( qt_screen-> width ( ),
241 qt_screen-> height ( ))); 245 qt_screen-> height ( )));
@@ -264,19 +268,12 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * )
264 default: 268 default:
265 break; 269 break;
266 } 270 }
267 dst += m_bytes_per_line_fb; 271 dst += m_bytes_per_line_fb;
268 } 272 }
269 } 273 }
270
271
272 {
273 // QVFB hack by Martin Jones
274 // We need to "touch" all affected clip rects with a normal QPainter in addition to the QDirectPainter
275 p.fillRect(QRect(mapFromGlobal (m_thisframe. topLeft ( )), m_thisframe.size ()),QBrush(NoBrush));
276 }
277 } 274 }
278} 275}
279 276
280QImage *XineVideoWidget::logo ( ) const 277QImage *XineVideoWidget::logo ( ) const
281{ 278{
282 return m_logo; 279 return m_logo;
@@ -308,25 +305,22 @@ void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl )
308 m_buff = new uchar[l]; 305 m_buff = new uchar[l];
309 odebug << "Point to: " << (unsigned long)m_buff << oendl; 306 odebug << "Point to: " << (unsigned long)m_buff << oendl;
310 m_lastsize=l; 307 m_lastsize=l;
311 } else { 308 } else {
312 m_buff = 0; 309 m_buff = 0;
313 } 310 }
314 } else if (l==0){
315 delete[] m_buff;
316 m_buff = 0;
317 } 311 }
318 m_lastsize = l; 312 m_lastsize = l;
319 m_framesize = QSize(w,h); 313 m_framesize = QSize(w,h);
320 if (m_buff && m_lastsize) { 314 if (m_buff && m_lastsize) {
321 memcpy(m_buff,img,m_lastsize); 315 memcpy(m_buff,img,m_lastsize);
322 } 316 }
323 m_bytes_per_line_frame = bpl; 317 m_bytes_per_line_frame = bpl;
324 } // Release Mutex 318 } // Release Mutex
325 319
326 paintEvent2(0); 320 if (m_buff) paintEvent2(0);
327} 321}
328 322
329void XineVideoWidget::resizeEvent ( QResizeEvent * ) 323void XineVideoWidget::resizeEvent ( QResizeEvent * )
330{ 324{
331 emit videoResized( videoSize() ); 325 emit videoResized( videoSize() );
332} 326}