47 #define MAX(a, b) (((a) > (b)) ? (a) : (b)) 48 #define MIN(a, b) (((a) < (b)) ? (a) : (b)) 54 #ifndef MHEG5PROFILE_UK1_06 65 static MHEG5Bool rtgraphicsMultiplexReferenceChanged;
87 INFO_PRINT((
"OSDrtgraphicsPlay((0x%x 0x%x 0x%x 0x%x))\n", multiplexReference->originalNetworkId, multiplexReference->transportStreamId, multiplexReference->serviceId, multiplexReference->componentTag));
121 static void OSDdisplayRectangle(
int x,
130 const S_REGION overlap = {0, 0, 720, 576};
164 OSDdisplayRectangle(boxX1, boxY1, boxX2 - boxX1, boxY2 - boxY1, lineWidth, lineStyle, lineColour, fillColour);
193 pBorderColour = &((
MHEG5Button *) visible)->buttonColour;
196 else if (((
MHEG5Button *)visible)->interactible.highlightStatus &&
205 pBorderColour = &((
MHEG5Button *) visible)->interactible.highlightRefColour;
216 pBorderColour, &backgroundColour);
234 unsigned char black[4], white[4];
256 white[3] = black[3] = 0;
257 white[0] = white[1] = white[2] = 200;
258 black[0] = black[1] = black[2] = 50;
325 if (((
MHEG5Button *)visible)->interactible.highlightStatus &&
397 pButtonColour = &((
MHEG5Button *) visible)->buttonColour;
460 if (((
MHEG5Button *)visible)->interactible.highlightStatus &&
484 if (((
MHEG5Button *)visible)->interactible.highlightStatus &&
505 OSDdisplayDynamicLineart(canvas, x1, y1);
511 int rtX1, rtY1, rtX2, rtY2;
520 rtX1 =
MAX(x1, rtX1);
521 rtY1 =
MAX(y1, rtY1);
522 rtX2 =
MIN(x2, rtX2);
523 rtY2 =
MIN(y2, rtY2);
525 OSDdisplayVideo(rtX1, rtY1, rtX2 - rtX1, rtY2 - rtY1);
553 if ((rtgraphicsMultiplexReference.serviceId != rtgraphics->
parent->multiplexRef.serviceId) ||
554 (rtgraphicsMultiplexReference.originalNetworkId != rtgraphics->
parent->multiplexRef.originalNetworkId) ||
555 (rtgraphicsMultiplexReference.transportStreamId != rtgraphics->
parent->multiplexRef.transportStreamId) ||
556 (rtgraphicsMultiplexReference.componentTag != componentTag))
558 rtgraphicsMultiplexReference.originalNetworkId = rtgraphics->
parent->multiplexRef.originalNetworkId;
559 rtgraphicsMultiplexReference.transportStreamId = rtgraphics->
parent->multiplexRef.transportStreamId;
560 rtgraphicsMultiplexReference.serviceId = rtgraphics->
parent->multiplexRef.serviceId;
561 rtgraphicsMultiplexReference.componentTag = componentTag;
565 &rtgraphicsMultiplexReference);
566 rtgraphicsMultiplexReferenceChanged =
MHEG5TRUE;
581 memset(&rtgraphicsMultiplexReference, 0,
sizeof(rtgraphicsMultiplexReference));
595 newRtgraphicsPlaying = rtgraphicsPlaying;
602 if ((lastRtgraphicsPlaying != newRtgraphicsPlaying) ||
603 (lastRtgraphicsFreeze != rtgraphicsFreeze) ||
604 rtgraphicsMultiplexReferenceChanged)
606 if (newRtgraphicsPlaying)
608 if (rtgraphicsFreeze)
622 lastRtgraphicsPlaying = newRtgraphicsPlaying;
623 lastRtgraphicsFreeze = rtgraphicsFreeze;
624 rtgraphicsMultiplexReferenceChanged =
MHEG5FALSE;
void MHEG5displayHotspot(MHEG5Visible *visible, int x1, int y1, int x2, int y2)
Draw a Hotspot.
void MHEG5displayRtgraphicsStop(MHEG5Bool immediate)
Stops playback of the RTGraphics (subtitle) media decoder.
Distributor for Prepare, Destruct, Activate, Deactivate and Clone calls. Distribute the +Prepare +Des...
void MHEG5displayRTGraphics(MHEG5RTGraphics *rtgraphics, int x1, int y1, int x2, int y2)
void * OSDinitDynamicLineart(int x, int y, int w, int h, int lineWidth, int bordered, OSDColor lineColour, OSDColor fillColour)
On screen display - initialise dynamic line art.
void MHEG5displayPushbutton(MHEG5Visible *visible, int x1, int y1, int x2, int y2)
Draw a Pushbutton.
MHEG5Int verticalJustification
#define HJUSTIFICATION_START
MHEG5Int horizontalJustification
void MHEG5genericSet(MHEG5Generic *item, MHEG5Int initialValue)
Set a MHEG5Generic to the MHEG5Int value.
void MHEG5textDestruct(MHEG5Text *text)
Destruct a text object.
void MHEG5displaySwitchbutton(MHEG5Visible *visible, int x1, int y1, int x2, int y2)
Draw a Switchbutton.
Stream event subscription management.
void OSDrtgraphicsFreeze(void)
Freeze playback of the currently playing RTGraphics stream after the next screen update.
void OSDfreeDynamicLineart(void *data)
On screen display - free resources dla.
void MHEG5genericCopy(MHEG5Generic *dest, MHEG5Generic *src)
Copy a MHEG5Generic.
#define FULLY_TRANSPARENT
OSDColor MHEG5displayColour(MHEG5Colour *colour)
Convert Generic Colour value to OSD specific value. If the generic colour is encoded as a string it i...
#define VJUSTIFICATION_CENTRE
MHEG5String fontAttributes
void MHEG5displayLineart(int x1, int y1, int boxX1, int boxY1, int boxX2, int boxY2, MHEG5Bool bbbox, MHEG5Int lineWidth, MHEG5Int lineStyle, MHEG5Colour *refLineColour, MHEG5Colour *refFillColour)
Draw a Lineart Object.
void MHEG5displayRtGraphicsUpdate(MHEG5Bool terminating, MHEG5Bool fullScreen)
MHEG5Colour highlightRefColour
OSDColor OSDgetColour(const char *colour, int len)
Converts an MHEG5 colour value to an OSDColor type.
void OSDrtgraphicsStop(void)
Stop displaying RTGraphics.
void MHEG5displayRtGraphicsReset(void)
Reset all media decoders to default values. This is used when the MHEG-5 engine is terminated...
#define HJUSTIFICATION_CENTRE
MHEG5Colour backgroundColour
void OSDdrawRectangle(void *data, int x1, int y1, int x2, int y2, int lineWidth, OSDColor lineColour, OSDColor fillColour)
Add a draw rectangle action to the action list.
This file defines the profile for the MHEG engine.
void MHEG5displayRtgraphicsPlay(MHEG5RTGraphics *rtgraphics)
Begin playback of the specified RTGraphics object.
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
Implement functions to retrieve MHEG5objects by GroupID and ID.
Implementation of the MHEG5 Application Class Defines a set of Ingredient objects, which are shared within an application scope. Base class: Group Subclasses: None Status: Concrete class.
Mheg5 logging and debug printing.
void OSDdrawDrawLine(void *data, int x1, int y1, int x2, int y2, int lineWidth, OSDColor lineColour)
Add a draw line action to the action list.
void MG_OSDdisplayRectangle(S_REGION *overlap, int x, int y, int width, int height, int lineWidth, OSDColor lineColour, OSDColor fillColour)
Draw rectangle.
MHEG class interface to graphics text render.
void OSDdrawEllipse(void *data, int x, int y, int w, int h, int lineWidth, OSDColor lineColour, OSDColor fillColour)
Add a draw ellipse action to the action list.
MHEG5String MHEG5stringCopyChr(const char *source)
Copy the C-String source to a MHEG5String.
void OSDrtgraphicsPlay(S_DvbLocator *multiplexReference, MHEG5Bool terminating)
<Function description>="">
void MHEG5streamSetCurrentService(MHEG5Ingredient *item, S_DvbComponent *service)
Set the current service.
MHEG5Int MHEG5streamGetComponentTag(MHEG5Ingredient *item)
Get component tag for ingredient. This depends on the stream's content and the component tag of the i...
Definition of colour type for MHEG5 - settings and conversions.
void MHEG5textFree(MHEG5Text *text)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
Implement generic MHEG5-display functions - independent from the OSD These are generic functions used...
MHEG5Colour buttonRefColour
void MHEG5drawText(MHEG5Text *txt)
#define MHEG_LINE_STYLE_SOLID
MHEG5Colour highlightRefColour
MHEG5Application * MHEG5getCurrentApplication(void)
<Function description>="">