website logo
Auteur
avatar
AmiDARK

Forum » » Création-Développement » » AmiDARK Engine - DBPro Convert - SOTB Demo


Posté : 15-09-2010 01:09 icone du post

Voila mes fonctions pour le Timer :


BOOL?AmigaSYS_OpenDevice_Timer(?void?){
??if?((?timerPort?=?IExec->CreateMsgPort()?)){
????timersigflag?=?1L?<mp_SigBit;
????if?((?timerRequest?=?(?struct?TimeRequest*?)?IExec->CreateIORequest(?time rPort,?sizeof(?struct?TimeRequest?)))){
??????if?(?!?(IExec->OpenDevice(?"timer.device",?UNIT_VBLANK,?(?struct?IORequ est?*)?timerRequest,?0?))){
????????TimerBase?=?timerRequest->Request.io_Device;
????????if?((?ITimer?=?(struct?TimerIFace?*)?IExec->GetInterface((?struct?Lib rary?*)TimerBase,?"main",?1,?0?))){
??????????timerFirst?=?TRUE;
??????????ITimer->GetSysTime(?MyTimeVal?);?//?On?récupère?le?ti mer?actuel?en?tant?que?timer?initial
??????????NewTimer?=?MyTimeVal->Microseconds;
??????????DemoStartTimer?=?MyTimeVal->Seconds;
??????????return?TRUE;
?????????}
???????}
?????}
???}
??return?FALSE;
?}

void?AmigaSYS_CloseDevice_Timer(?void?){
??/*?First?abort?any?current?timer?io?*/
??if?(?timerRequest?&&?!timerFirst?){
????IExec->AbortIO((?struct?IORequest?*)?timerRequest?);
????IExec->WaitIO((?struct?IORequest?*)?timerRequest?);
????IExec->SetSignal(?0L,?timersigflag?);
???}
??if?(?ITimer?){
????IExec->DropInterface((?struct?Interface?*)?ITimer?);
????ITimer?=?NULL;
???}
??if?(TimerBase?&&?timerRequest?){
????TimerBase?=?NULL;
????IExec->CloseDevice((?struct?IORequest?*)?timerRequest?);
????IExec->DeleteIORequest((?struct?IORequest?*?)?timerRequest?);
????timerRequest?=?NULL;
????if?(?timerPort?){
??????IExec->DeleteMsgPort(?timerPort?);
??????timerPort?=?NULL;
?????}
???}
?}

void?AmigaSYS_UpdateTimer(?void?){
??OldTimer?=?NewTimer;
??ITimer->GetSysTime(?MyTimeVal?);
??NewTimer?=(?MyTimeVal->Seconds?%86400?)?*?1000000?+?MyTimeVal->Microseconds ;
?}


Par contre, j'ai un blocage (ralentissement) toutes les 2 secondes à peu près ...
Peux-tu me montrer ta routine pour l'intervalle ?


Concernant la zik, elle y est bien mais le son est faible. C'est l'unit 1 qui est utilisé si je me trompe pas et faut mettre le gain à 0db sinon c'est trop faible :(
Par contre j'ai un bug chez moi, avec la ptreplay.library et ptplay.library, seuls 2 channels sont jouées ...


Message édité par : AmiDARK / 15-09-2010 01:11

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=840&forum=14