1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Making sure the OSD reports oeWrongAlignment errors before any oeAreasOverlap error

This commit is contained in:
Klaus Schmidinger 2004-07-18 09:28:38 +02:00
parent d32f000861
commit 35724f07bd
3 changed files with 11 additions and 4 deletions

View File

@ -860,6 +860,8 @@ Reinhard Nissl <rnissl@gmx.de>
for adding cDevice::Flush() to make sure that all data in the video card's buffers for adding cDevice::Flush() to make sure that all data in the video card's buffers
has been processed has been processed
for reporting a bug in checking the last area for misalignment in cOsd::CanHandleAreas() for reporting a bug in checking the last area for misalignment in cOsd::CanHandleAreas()
for suggesting to make sure the OSD reports oeWrongAlignment errors before any
oeAreasOverlap error
Richard Robson <richard_robson@beeb.net> Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the for reporting freezing replay if a timer starts while in Transfer Mode from the

View File

@ -2952,3 +2952,5 @@ Video Disk Recorder Revision History
- Fixed handling error case '-1' when polling section filters (thanks to Marco - Fixed handling error case '-1' when polling section filters (thanks to Marco
Schlüßler). Schlüßler).
- Fixed handling error case '-1' when polling CAM connections. - Fixed handling error case '-1' when polling CAM connections.
- Making sure the OSD reports oeWrongAlignment errors before any oeAreasOverlap
error (suggested by Reinhard Nissl).

11
osd.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: osd.c 1.56 2004/07/17 13:39:30 kls Exp $ * $Id: osd.c 1.57 2004/07/18 09:23:03 kls Exp $
*/ */
#include "osd.h" #include "osd.h"
@ -602,15 +602,18 @@ cBitmap *cOsd::GetBitmap(int Area)
eOsdError cOsd::CanHandleAreas(const tArea *Areas, int NumAreas) eOsdError cOsd::CanHandleAreas(const tArea *Areas, int NumAreas)
{ {
eOsdError Result = oeOk;
for (int i = 0; i < NumAreas; i++) { for (int i = 0; i < NumAreas; i++) {
if (Areas[i].x1 > Areas[i].x2 || Areas[i].y1 > Areas[i].y2 || Areas[i].x1 < 0 || Areas[i].y1 < 0) if (Areas[i].x1 > Areas[i].x2 || Areas[i].y1 > Areas[i].y2 || Areas[i].x1 < 0 || Areas[i].y1 < 0)
return oeWrongAlignment; return oeWrongAlignment;
for (int j = i + 1; j < NumAreas; j++) { for (int j = i + 1; j < NumAreas; j++) {
if (Areas[i].Intersects(Areas[j])) if (Areas[i].Intersects(Areas[j])) {
return oeAreasOverlap; Result = oeAreasOverlap;
break;
}
} }
} }
return oeOk; return Result;
} }
eOsdError cOsd::SetAreas(const tArea *Areas, int NumAreas) eOsdError cOsd::SetAreas(const tArea *Areas, int NumAreas)