/**
*
* \file Asura_PlatformStreamSound.h
*
* Created by Kevin Lea - 24/04/2002 14:34:54
*
* Copyright (C) 2002 Rebellion, All Rights Reserved.
*
* \brief
*
**/
#ifdef ASURA_USE_PRAGMA_ONCE
	#pragma once
#endif

#ifndef __ASURA_PLATFORMSTREAMSOUND_H__
#define __ASURA_PLATFORMSTREAMSOUND_H__

#ifndef ASURA_USE_AUDIO_SYSTEM

#include "Sound/Asura_Sound.h"

//TY 01.09.08 - Upped for the dynamic music system
static const int ASURA_PC_MAX_CONCURRENT_SOUNDSTREAMS = 8;

class Asura_PlatformStreamSound
{
public:
	static void Initialise();
	static void Shutdown();
    static void Update();
	
	static bool Create( int iStreamID, const char* szFilename);
	static void Play( int iStreamID, bool bLooping );
	static void Stop( int iStreamID );
	static void Release( int iStreamID );

    static void Pause( int iStreamID );
    static void Resume( int iStreamID );
    static void SetVolume( int iStreamID, float fVol );

	// Handle changes to sound group volumes
	static void UpdateVolume();

	static bool IsFinished( int iStreamID );
	static float GetPosition( int iStreamID );
	static float GetLength( int iStreamID );
	static void SetPosition( int iStreamID, float fTime );

	// Handle alt-tab
	static void LoseFocus_PauseAllSounds();
	static void GainFocus_UnpauseSounds();

private:
    
    static class Asura_PC_StreamingSound* s_axStreamingSounds;
};

#endif // ndef ASURA_USE_AUDIO_SYSTEM

#endif//__ASURA_PLATFORMSTREAMSOUND_H__
