*WARNING*
[AROS.git] / arch / arm-native / soc / broadcom / 2708 / hidd / videocoregfx / videocoregfx_class.h
blob06fdc77d0c03810f435cfa3b72226ba84649ddaa
1 #ifndef _VIDEOCOREGFX_CLASS_H
2 #define _VIDEOCOREGFX_CLASS_H
3 /*
4 Copyright © 2013-2015, The AROS Development Team. All rights reserved.
5 $Id$
6 */
8 #include <exec/semaphores.h>
9 #include <exec/memory.h>
10 #include <exec/memheaderext.h>
11 #include <exec/nodes.h>
12 #include <exec/types.h>
14 #include "videocoregfx_hardware.h"
16 #define DEBUGMODEARRAY
17 //#define DEBUGPIXFMT
18 //#define DEBUGDISPLAY
20 //#define VC_FMT_32
21 #define VC_FMT_24
22 //#define VC_FMT_16
23 //#define VC_FMT_15
24 //#define VC_FMT_8
26 #define IID_Hidd_VideoCoreGfx "hidd.gfx.videocore"
27 #define CLID_Hidd_VideoCoreGfx "hidd.gfx.videocore"
29 #define MAX_TAGS 256
30 #define ATTRBASES_NUM 8
32 struct VideoCoreGfx_staticdata {
33 APTR vcsd_MBoxBase;
34 unsigned int *vcsd_MBoxMessage;
35 IPTR vcsd_MBoxBuff;
37 struct SignalSemaphore vcsd_GPUMemLock;
38 struct MemHeaderExt vcsd_GPUMemManage;
40 OOP_Class *vcsd_VideoCoreGfxClass;
41 OOP_Object *vcsd_VideoCoreGfxInstance;
42 OOP_Class *vcsd_VideoCoreGfxOnBMClass;
43 OOP_Class *vcsd_VideoCoreGfxOffBMClass;
45 OOP_AttrBase vcsd_attrBases[ATTRBASES_NUM];
47 APTR data;
50 struct VideoCoreGfxBase
52 struct Library library;
54 struct VideoCoreGfx_staticdata vsd;
57 struct DisplayMode
59 struct Node dm_Node;
60 ULONG dm_clock;
61 ULONG dm_hdisp;
62 ULONG dm_hstart;
63 ULONG dm_hend;
64 ULONG dm_htotal;
65 ULONG dm_vdisp;
66 ULONG dm_vstart;
67 ULONG dm_vend;
68 ULONG dm_vtotal;
69 ULONG dm_descr;
72 #define XSD(cl) (&((struct VideoCoreGfxBase *)cl->UserData)->vsd)
74 #undef HiddVideoCoreGfxAttrBase
75 #undef HiddVideoCoreGfxBitMapAttrBase
76 #undef HiddChunkyBMAttrBase
77 #undef HiddBitMapAttrBase
78 #undef HiddPixFmtAttrBase
79 #undef HiddSyncAttrBase
80 #undef HiddGfxAttrBase
81 #undef HiddAttrBase
83 /* These must stay in the same order as interfaces[] array in videocoregfx_init.c */
84 #define HiddVideoCoreGfxAttrBase XSD(cl)->vcsd_attrBases[0]
85 #define HiddVideoCoreGfxBitMapAttrBase XSD(cl)->vcsd_attrBases[1]
86 #define HiddChunkyBMAttrBase XSD(cl)->vcsd_attrBases[2]
87 #define HiddBitMapAttrBase XSD(cl)->vcsd_attrBases[3]
88 #define HiddPixFmtAttrBase XSD(cl)->vcsd_attrBases[4]
89 #define HiddSyncAttrBase XSD(cl)->vcsd_attrBases[5]
90 #define HiddGfxAttrBase XSD(cl)->vcsd_attrBases[6]
91 #define HiddAttrBase XSD(cl)->vcsd_attrBases[7]
93 #define FNAME_SUPPORT(x) VideoCoreGfx__Support__ ## x
95 int FNAME_SUPPORT(InitMem)(void *, int, struct VideoCoreGfxBase *);
96 int FNAME_SUPPORT(SDTV_SyncGen)(struct List *, OOP_Class *);
97 int FNAME_SUPPORT(HDMI_SyncGen)(struct List *, OOP_Class *);
98 APTR FNAME_SUPPORT(GenPixFmts)(OOP_Class *);
100 #endif /* _VIDEOCOREGFX_CLASS_H */