#include "Bass.au3"
#include-once

Global $__translate = 0.00565777092553217

Func _EasyBASS_Open(ByRef $hStream, $sFile)
	Local $aRet
	$hStream = _BASS_StreamCreateFile(False, $sFile, 0, 0, 0)
	$iRet = _BASS_ChannelGetLength($hStream, $BASS_POS_BYTE)*$__translate
	Return $iRet
EndFunc

Func _EasyBASS_OpenStream(ByRef $hStream, $sURL)
	$hStream = _BASS_StreamCreateURL($sURL, 0, 0)
EndFunc

Func _EasyBASS_GetPosition($hStream)
	Return _BASS_ChannelGetPosition($hStream, $BASS_POS_BYTE)*$__translate
EndFunc

Func _EasyBASS_SetPosition($hStream, $iTime)
	Return _BASS_ChannelSetPosition($hStream, $iTime/$__translate, $BASS_POS_BYTE)
EndFunc

Func _EasyBASS_Play($hStream)
	_BASS_Start()
	Return _BASS_ChannelPlay($hStream, 1)
EndFunc

Func _EasyBASS_Pause($hStream)
	Return _BASS_ChannelPause($hStream)
EndFunc

Func _EasyBASS_Resume($hStream)
	Return _BASS_ChannelPlay($hStream, 0)
EndFunc

Func _EasyBASS_Stop($hStream)
	Return _BASS_ChannelStop($hStream)
EndFunc

Func _EasyBASS_Volume($hStream, $iVolume = -1, $bSet = True)
	Switch $bSet
		Case True
			Return _BASS_ChannelSetVolume($hStream, $iVolume)
		Case False
			Return _BASS_ChannelGetVolume($hStream)
	EndSwitch
EndFunc

Func _EasyBass_Start()
	_BASS_Startup()
	_BASS_Init(0, -1, 44100, 0, "")
	_BASS_SetConfig($BASS_CONFIG_NET_PLAYLIST, 1)
EndFunc

Func _EasyBASS_Close()
	_BASS_Free()
EndFunc