This file documents how irmp3 tries to recognise the type of a
file/url/whatever and choose the appropriate player.

our starting element is a simple string (usually a file name)

Type management goes in two steps
1) find out what is the string. to do this, any module can answer the
   "songtype <song>" message on the MSGTYPE_QUERY queue with a
   "knowntype <type> <song> on MSGTYPE_INFO or a "canplay <player>" for
   players that know that they can play the file, but don't know exactly 
   what it is. These will be used only as a last resort when playing

   if no module answers this query, the player module wil do a "songtypeguess" 
   query. modules which can't check in a secure way the string (using
   file extension for example) can answer this query.
   
2) once the type has been recognised, mod_player will first try a
   "playtype_<type>" config string to find a forced player, and if
   none is found, it will ask a "whocanplay <type>" query. all modules
   able to play the corresponding type should answer "canplay <player>
   <type>", mod_player will choose one. If this player fails, mod_player will
   try the next one until all players able to play that type have failed.
   mod_player will then try the next type answered by the songtype or songtypeguess
   query until all types and players have been tried.
   As a last resort, mod_player will try modules that have answered canplay to the 
   songtype query. If that fails too, mod_player will report an endofsong to have the
   next song sent.
