IdleCallback during Verify Phase

vbimport

#1

I am having a problem whereby during the verify phase of a burn the IdleCallback function is not called. To test this I set a counter which is reset at the start of a burn and is stored and cleared at the NERO_PHASE_VERIFY_COMPILATION phase.

The counter is incremented every time IdleCallback is called by the burn process.

The results show that the IdleCallback function was called approximately 36000 times during the burn phase but only once during the verify phase.

The upshot of this means that my application can only be used during the burn phase, and not the verify phase, of a CD/DVD burn.

I have Nero V6.3.1.20 installed with Nero SDK V1.04 and running under Visual C++ V6.0 Enterprise Edition on an XP platform.

Any clues anybody?


#2

I have revisited the NeroAPITest sample code and found that the ProgressCallback function, which was the only thing working on my app during verify, calls the IdleCallback function!!!

I have added this code to my app and now everything is OK - BUT I would have thought that the reason for the IdleCallback function in the first place is to let us know that Nero is able to let us do other things during a burn, and it seems a little dangerous to be calling this function explicitly as Nero may well be busy doing other things.

In my opinion, as the burn process is more critical than a verify, I added a flag that only allows the ProgressCallback to call the IdleCallback function during the verify phase and NOT the burn phase.

Does anyone know if this is the correct way to be doing this or whether, during the verify phase, Nero should be calling the IdleCallback function.


#3

IMHO Nero should call the idle callback on every long operation. Unfortunately, it does not do so while disk verification. I solved this issue the same way the Nero examples did, by calling my OnIdle callback explicitly from the Progress callback, but do not distinguish between the phases. Btw. I believe that the idle callback is not blocking the burning process, but this behavior is not documented.

Everything works fine for me (I’m just developing for exactly 2 target versions of Nero), but actually, this is not guaranteed by the NeroAPI at all.

Maybe someone at Nero can state something about that?


#4

Thanks for the feedback. It is nice to at least get a reply from someone who has experienecd the same problem, and used the same method to fix it.

I too hope that someone from Nero can shed a little light.