1/*
2 * Copyright �� 2008-2009 Stephan A��mus <superstippi@gmx.de>
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
5#ifndef RANDOMIZE_PL_ITEMS_COMMAND_H
6#define RANDOMIZE_PL_ITEMS_COMMAND_H
7
8
9#include <List.h>
10
11#include "PLItemsCommand.h"
12
13
14class RandomizePLItemsCommand : public PLItemsCommand {
15public:
16								RandomizePLItemsCommand(
17									Playlist* playlist,
18									BList indices);
19	virtual						~RandomizePLItemsCommand();
20
21	virtual	status_t			InitCheck();
22
23	virtual	status_t			Perform();
24	virtual status_t			Undo();
25
26	virtual void				GetName(BString& name);
27
28private:
29			status_t			_Sort(bool random);
30
31			Playlist*			fPlaylist;
32			int32				fCount;
33			PlaylistItem**		fItems;
34			int32*				fListIndices;
35			int32*				fRandomInternalIndices;
36};
37
38#endif // RANDOMIZE_PL_ITEMS_COMMAND_H
39