2
3
4
5
6
7
8
9
14#include "../types/evmu_ibehavior.h"
15#include "../hw/evmu_ram.h"
16#include "../hw/evmu_cpu.h"
17#include "../hw/evmu_clock.h"
18#include "../hw/evmu_rom.h"
19#include "../hw/evmu_pic.h"
20#include "../hw/evmu_flash.h"
21#include "../hw/evmu_lcd.h"
22#include "../hw/evmu_battery.h"
23#include "../hw/evmu_wram.h"
24#include "../hw/evmu_buzzer.h"
25#include "../hw/evmu_gamepad.h"
26#include "../hw/evmu_timers.h"
27#include "../fs/evmu_fat.h"
28#include "../fs/evmu_file_manager.h"
31
32
33
34#define EVMU_DEVICE_TYPE (GBL_TYPEID
(EvmuDevice))
35#define EVMU_DEVICE(self) (GBL_CAST(EvmuDevice, self))
37#define EVMU_DEVICE_GET_CLASS(self) (GBL_CLASSOF(EvmuDevice, self))
40#define GBL_SELF_TYPE EvmuDevice
45
46
47
48
49
50
51
52
53GBL_CLASS_DERIVE_EMPTY(EvmuDevice, GblObject, EvmuIBehavior)
56
57
58
59
60
61
62
63
64
65
113
114
115
116
#define EVMU_EXPORT
Define used for adding attributes to export public symbols.
#define EVMU_BATTERY_TYPE
GblType UUID for EvmuBattery.
#define EVMU_BUZZER_TYPE
GblType UUID for GblBuzzer.
#define EVMU_CLOCK_TYPE
Type UUID for EvmuClock.
#define EVMU_CPU_TYPE
Type UUID for EvmuCpu.
GblType EvmuDevice_type(void)
Returns the GblType UUID associated with EvmuDevice.
GblRefCount EvmuDevice_unref(EvmuDevice *pSelf)
Decrements and returns the reference count of the given EvmuDevice, destructing it at 0.
EvmuDevice * EvmuDevice_create(void)
Creates an EvmuDevice instance and returns a pointer to it.
EvmuDevice * EvmuDevice_ref(const EvmuDevice *pSelf)
Increments the reference counter for the given device, returning a pointer to it.
#define EVMU_FAT_TYPE
UUID for EvmuFat type.
#define EVMU_FLASH_TYPE
Type UUID for EvmuFlash.
#define EVMU_GAMEPAD_TYPE
GblType UUID for EvmuGamepad.
#define EVMU_LCD_TYPE
Type UUID for EvmuLcd.
#define EVMU_PIC_TYPE
Type UUID for EvmuPic.
#define EVMU_RAM_TYPE
Type UUID for EvmuRam.
#define EVMU_ROM_TYPE
Type UUID for EvmuRom.
#define EVMU_TIMERS_TYPE
Type UUID for EvmuTimers.
#define EVMU_WRAM_TYPE
Type UUID for EvmuWram.
#define GBL_PROPERTIES(object,...)
GblInstance structure for VMU Devices.
EvmuFlash * pFlash
EvmuFlash Peripheral.
EvmuClock * pClock
EvmuClock Peripheral.
EvmuGamepad * pGamepad
EvmuGamepad Peripheral.
EvmuPeripheral * EvmuDevice_findPeripheral(const EvmuDevice *pSelf, const char *pName)
Finds a child EvmuPeripheral child attached to the given device, returning a pointer to it or NULL if...
EvmuWram * pWram
EvmuWram Peripheral.
EvmuFat * pFat
EvmuFat Peripheral.
EvmuRom * pRom
EvmuRom Peripheral.
EvmuTimers * pTimers
EvmuTimers Peripheral.
EvmuPeripheral * EvmuDevice_peripheral(const EvmuDevice *pSelf, size_t index)
Returns the child EvmuPeripheral attached to the given device at the provided index.
EvmuCpu * pCpu
EvmuCpu Peripheral.
size_t EvmuDevice_peripheralCount(const EvmuDevice *pSelf)
Returns the number of EvmuPeripheral GblObject children attached to the given device instance.
EvmuRam * pRam
EvmuRam Peripheral.
EvmuFileManager * pFileMgr
EvmuFileSystem Peripheral.
EvmuPic * pPic
EvmuPic Peripheral.
EvmuBattery * pBattery
EvmuBattery Peripheral.
EvmuLcd * pLcd
EvmuLcd Peripheral.
EvmuBuzzer * pBuzzer
EvmuBuzzer Peripheral.
#define GBL_CLASS_CAST(cType, klass)
#define GBL_CLASSOF(cType, self)
#define GBL_CAST(cType, self)