//============ Copyright (c) Valve Corporation, All rights reserved. ============ #ifndef ISTEAMMUSIC_H #define ISTEAMMUSIC_H #ifdef _WIN32 #pragma once #endif #include "isteamclient.h" //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- enum AudioPlayback_Status { AudioPlayback_Undefined = 0, AudioPlayback_Playing = 1, AudioPlayback_Paused = 2, AudioPlayback_Idle = 3 }; //----------------------------------------------------------------------------- // Purpose: Functions to control music playback in the steam client //----------------------------------------------------------------------------- class ISteamMusic { public: virtual bool BIsEnabled() = 0; virtual bool BIsPlaying() = 0; virtual AudioPlayback_Status GetPlaybackStatus() = 0; virtual void Play() = 0; virtual void Pause() = 0; virtual void PlayPrevious() = 0; virtual void PlayNext() = 0; // volume is between 0.0 and 1.0 virtual void SetVolume( float flVolume ) = 0; virtual float GetVolume() = 0; }; #define STEAMMUSIC_INTERFACE_VERSION "STEAMMUSIC_INTERFACE_VERSION001" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else #error isteamclient.h must be included #endif DEFINE_CALLBACK( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) END_DEFINE_CALLBACK_0() DEFINE_CALLBACK( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) CALLBACK_MEMBER( 0, float, m_flNewVolume ) END_DEFINE_CALLBACK_1() #pragma pack( pop ) #endif // #define ISTEAMMUSIC_H