import os
import sys
import stat


g_NumSoundsAdded = 0


def ScanSounds_R( baseDir, relativeDir, outFile ):
	files = os.listdir( baseDir )
	for filename in files:
		fullFilename = baseDir + "\\" + filename
		if len( relativeDir ) > 0:
			newRelativeDir = relativeDir + "/" + filename
		else:
			newRelativeDir = filename

		mode = os.stat( fullFilename )[stat.ST_MODE]
		
		if stat.S_ISREG( mode ):
			if filename[-4:].upper() == ".WAV":
				outFile.write( "\"%s\"\n" % ( newRelativeDir[0:-4] ) )
				outFile.write( "{\n" )
				outFile.write( "\t\"channel\"\t\t\"CHAN_ITEM\"\n" )
				outFile.write( "\t\"volume\"\t\t\"VOL_NORM\"\n" )
				outFile.write( "\t\"soundlevel\"\t\"SNDLVL_NONE\"\n" )
				outFile.write( "\t\"pitch\"\t\t\t\"PITCH_NORM\"\n" )
				outFile.write( "\t\"wave\"\t\t\t\"%s\"\n" % ( newRelativeDir ) )
				outFile.write( "}\n\n" )
				
				global g_NumSoundsAdded
				g_NumSoundsAdded += 1
		
		if stat.S_ISDIR( mode ):
			ScanSounds_R( fullFilename, newRelativeDir, outFile )


# Make sure we've got a valid base directory.
if len( sys.argv ) < 2:
	print "Error: Must specify the root sound directory."
	sys.exit( 1 )

baseDir = sys.argv[1]
if os.access( baseDir, os.R_OK ) != 1:
	print "Error: Can't access %s." % ( baseDir )
	sys.exit( 1 )


# Now scan all the .cpp files for sound function calls.
outFile = open( "game_sounds.txt", "wt" )

ScanSounds_R( baseDir, "", outFile )

outFile.close()


print "Added %d sounds to game_sounds.txt" % ( g_NumSoundsAdded )