MHEG  17.9.0
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Pages
mh5visible.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  * Copyright © 2004 Ocean Blue Software Ltd
4  * Copyright © 2000 Koninklijke Philips Electronics N.V
5  *
6  * This file is part of a DTVKit Software Component
7  * You are permitted to copy, modify or distribute this file subject to the terms
8  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
9  *
10  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
11  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
12  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  * If you or your organisation is not a member of DTVKit then you have access
15  * to this source code outside of the terms of the licence agreement
16  * and you are expected to delete this and any associated files immediately.
17  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
18  *******************************************************************************/
30 #ifndef _MH5VISIBLE_H
31 #define _MH5VISIBLE_H
32 
33 /*---includes for this file--------------------------------------------------*/
34 
35 #include "techtype.h"
36 #include "mh5ingredient.h"
37 #include "osdtypes.h"
38 
39 /*---Constant and macro definitions for public use---------------------------*/
40 
41 /*---Enumerations for public use---------------------------------------------*/
42 
43 /*---Global type defs for public use-----------------------------------------*/
44 
45 
46 typedef struct
47 {
48  /* Base class */
49  MHEG5Ingredient ingredient;
50 
51  /* Exchanged attributes */
52  MHEG5Int originalBoxSize[2];
53  MHEG5Int originalPosition[2];
54  MHEG5Int originalPaletteRefID;
55  MH5GroupRef originalPaletteRefGROUPID;
56 
57  /* Internal attributes */
58  MHEG5Int boxSize[2];
59  MHEG5Int position[2];
60 #if 0
61  MHEG5Int paletteRefID;
62  MH5GroupRef paletteRefGROUPID;
63 #endif
64  void *graphic_data;
65  S_REGION rect;
66  BOOLEAN restricted;
67 } MHEG5Visible;
68 
69 /*---Global variable declarations for public use-----------------------------*/
70 
71 /*---Global Function prototypes for public use-------------------------------*/
72 
78 /*
79  Debug
80  */
81 #ifdef MH5PRINTOUT
82 
89 void MHEG5visiblePrint(MHEG5Visible *visible, char *out);
90 #endif
91 
92 /*
93  Test for Visible Objects
94  */
95 MHEG5Bool MHEG5visibleIs(MHEG5Root *target);
96 
97 /*
98  Constructor
99  */
105 void MHEG5visibleInit(MHEG5Visible *visible);
106 
107 
115 void MHEG5visibleFree(MHEG5Visible *visible);
116 
117 
118 /*
119  Clone help function
120  */
121 void MHEG5visibleClone(MHEG5Visible *destination, MHEG5Visible *source);
122 
123 
124 /*
125  Internal behaviours
126  */
127 void MHEG5visiblePrepare(MHEG5Visible *visible);
128 void MHEG5visibleActivate(MHEG5Visible *visible);
129 void MHEG5visibleDeactivate(MHEG5Visible *visible);
130 void MHEG5visibleDestruct(MHEG5Visible *visible);
131 
132 /*
133  For ListGroup
134  */
136 void MHEG5visibleSetPosition(MHEG5Visible *visible, MHEG5Int x, MHEG5Int y);
137 
138 /*
139  Actions
140  */
141 MHEG5ErrorCode MHEG5setPosition(MHEG5Root *target, MHEG5GList *params);
142 MHEG5ErrorCode MHEG5getPosition(MHEG5Root *target, MHEG5GList *params);
143 MHEG5ErrorCode MHEG5setBoxSize(MHEG5Root *target, MHEG5GList *params);
144 MHEG5ErrorCode MHEG5getBoxSize(MHEG5Root *target, MHEG5GList *params);
145 MHEG5ErrorCode MHEG5bringToFront(MHEG5Root *target, MHEG5GList *params);
146 MHEG5ErrorCode MHEG5sendToBack(MHEG5Root *target, MHEG5GList *params);
147 MHEG5ErrorCode MHEG5putBefore(MHEG5Root *target, MHEG5GList *params);
148 MHEG5ErrorCode MHEG5putBehind(MHEG5Root *target, MHEG5GList *params);
149 MHEG5ErrorCode MHEG5setPaletteRef(MHEG5Root *target, MHEG5GList *params);
150 
151 #endif /*_MH5VISIBLE_H*/
void MHEG5visibleActivate(MHEG5Visible *visible)
Apply the activation behaviour of the visible class. Apply the activation behaviour off the visible c...
Definition: mh5visible.c:306
Implementation of the Ingredient class.
Definition: mh5ingredient.h:63
MHEG5ErrorCode MHEG5getBoxSize(MHEG5Root *target, MHEG5GList *params)
Returns the size of the bounding box of the target Visible. Implementation of the GetBoxSize (XBoxSiz...
Definition: mh5visible.c:671
void MHEG5visibleFree(MHEG5Visible *visible)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
Definition: mh5visible.c:186
Definition: mh5visible.h:46
Definition: osdtypes.h:43
void MHEG5visiblePrepare(MHEG5Visible *visible)
Apply the preparation behaviour off the visible class Apply the preparation behaviour of the visible ...
Definition: mh5visible.c:239
MHEG5ErrorCode MHEG5putBehind(MHEG5Root *target, MHEG5GList *params)
Put a Visible exactly below another Visible in the display stack. Implementation of the PutBehind (Re...
Definition: mh5visible.c:891
void MHEG5visibleDestruct(MHEG5Visible *visible)
Destruct a visible object.
Definition: mh5visible.c:282
Definition: mh5base.h:97
MHEG5ErrorCode MHEG5sendToBack(MHEG5Root *target, MHEG5GList *params)
Put a Visible at the background of the screen. Implementation of the SendToBack action of the visible...
Definition: mh5visible.c:784
Definition: mh5base.h:169
MHEG5Bool MHEG5visibleIs(MHEG5Root *target)
<Function description>="">
Definition: mh5visible.c:144
void MHEG5visibleSetPosition(MHEG5Visible *visible, MHEG5Int x, MHEG5Int y)
This procedure sets the position of the target visible object to the given values.
Definition: mh5visible.c:415
Define OSD types.
System Wide Global Technical Data Type Definitions.
void MHEG5visibleResetPosition(MHEG5Visible *visible)
Reset the position of the visible back to its original values (as stored in originalPosition).
Definition: mh5visible.c:400
MHEG5ErrorCode MHEG5setBoxSize(MHEG5Root *target, MHEG5GList *params)
Change the size of the bounding box of the target Visible. Implementation of the SetBoxSize (XNewBoxS...
Definition: mh5visible.c:553
void MHEG5visibleClone(MHEG5Visible *destination, MHEG5Visible *source)
Copy a visible object with original values.
Definition: mh5visible.c:206
MHEG5ErrorCode MHEG5getPosition(MHEG5Root *target, MHEG5GList *params)
Returns the location of the target Visible.
Definition: mh5visible.c:487
Definition: mh5root.h:43
MHEG5ErrorCode MHEG5setPosition(MHEG5Root *target, MHEG5GList *params)
Change the location of the target Visible. Implementation of the SetPosition (NewXPosition, NewYPosition) action of the visible class.
Definition: mh5visible.c:361
MHEG5ErrorCode MHEG5bringToFront(MHEG5Root *target, MHEG5GList *params)
Put a Visible at the foreground of the screen, i.e. on top of the Display Stack Implementation of the...
Definition: mh5visible.c:742
void MHEG5visibleDeactivate(MHEG5Visible *visible)
Apply the deactivation behaviour of the visible class. As this class has no own deactivation behaviou...
Definition: mh5visible.c:338
MHEG5ErrorCode MHEG5setPaletteRef(MHEG5Root *target, MHEG5GList *params)
Change the colour look-up table used to render colours of the Visible object. Implementation of the S...
Definition: mh5visible.c:943
void MHEG5visibleInit(MHEG5Visible *visible)
Initialise a visible object with default values.
Definition: mh5visible.c:172
MHEG5ErrorCode MHEG5putBefore(MHEG5Root *target, MHEG5GList *params)
Put a Visible exactly in front of another Visible in the display stack. Implementation of the PutBefo...
Definition: mh5visible.c:829