// ex01.cpp
// Partial design of MPEG player object
// CS183

enum PlayMode 
{
	Random, // Shuffle mode
	Single, Sequential, Program
};

class Player
{
public:
	Player ();
	// Play - play current selection.
	void Play ();
	void Stop ();
	void Back ();
	void Forward ();
	void Load (const string& track);
	// AdjustVolume - modify play volume
	// Args:
	//     pct - +/- number of percent of full scale
	//           to adjust volume up or down.
	void AdjustVolume (int pct);

private:
	PlayMode mode;
	bool repeat;
	vector<string> tracks;
	// Volume in percent of full scale (0..100).
	unsigned int volume;
};

Player::Player ()
{
	volume = 50;
}

void Player::AdjustVolume (int pct)
{
	if ((pct + volume) > 100) pct = 100 - volume;
	if ((volume + pct) < 0) pct = -volume;

	volume += pct;
}
