I really can't see how you could add cross fading in the kernel without some help from the player executable. The kernel code is reliant on getting its audio data from the player executable and the player executable currently only decodes one audio file at a time.
_________________________
Remind me to change my signature to something more interesting someday