2 Copyright © 1995-2019, The AROS Development Team. All rights reserved.
7 #include <aros/debug.h>
9 #include <aros/symbolsets.h>
10 #include <proto/oop.h>
12 #include <hidd/hidd.h>
13 #include <hidd/keyboard.h>
20 static int AmigaKbd_Init(struct kbdbase
*LIBBASE
)
22 struct kbd_staticdata
*ksd
= &LIBBASE
->ksd
;
23 struct OOP_ABDescr attrbases
[] =
25 {IID_Hidd
, &HiddAttrBase
},
26 {IID_Hidd_Kbd
, &HiddKbdAB
},
30 OOP_Object
*drv
= NULL
;
32 EnterFunc(bug("AmigaKbd_Init\n"));
34 InitSemaphore( &ksd
->sema
);
36 kbd
= OOP_NewObject(NULL
, CLID_Hidd_Kbd
, NULL
);
38 if (OOP_ObtainAttrBases(attrbases
))
40 HiddKbdBase
= OOP_GetMethodID(IID_Hidd_Kbd
, 0);
41 drv
= HIDD_Kbd_AddHardwareDriver(kbd
, LIBBASE
->ksd
.kbdclass
, NULL
);
43 OOP_DisposeObject(kbd
);
49 LIBBASE
->library
.lib_OpenCnt
= 1;
51 ReturnInt("AmigaKbd_Init", int, TRUE
);
54 static int AmigaKbd_Expunge(struct kbdbase
*LIBBASE
)
56 struct kbd_staticdata
*ksd
= &LIBBASE
->ksd
;
57 struct OOP_ABDescr attrbases
[] =
59 {IID_Hidd_Kbd
, &LIBBASE
->ksd
.hiddKbdAB
},
63 EnterFunc(bug("AmigaKbd_Expunge\n"));
65 OOP_ReleaseAttrBases(attrbases
);
67 ReturnInt("AmigaKbd_Expunge", int, TRUE
);
70 ADD2INITLIB(AmigaKbd_Init
, 0)
71 ADD2EXPUNGELIB(AmigaKbd_Expunge
, 0)