/**
 * Program sluzy do pomieszania playlisty
 * (listy tytulow piosenek/filmow) w odtwarzaczu mutlimedialnym
 * Wykorzystuje algorytm random_shuffle
 */

// potrzebne pliki naglowkowe
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <ctime>
using namespace std;

// zdefiniowana przez uzytkowniak funkcja losowania
ptrdiff_t myRandom(ptrdiff_t i)
{
    return rand() % i;
}

// program
int main(int argc, char **argv)
{
    // ustawienie ziarenka losowania
    srand(time(NULL));

    // playlista - wektor z nazwami plików multimedialnych
    vector<string> playlist;

    // dodanie piosenek do playlisty
    playlist.push_back("DragonForce - Through the fire and flames.mp3");
    playlist.push_back("The Weezer - My name is Jonas.mp3");
    playlist.push_back("Rise against - Prayer of the refugee.mp3");
    playlist.push_back("Slayer - Raining blood.mp3");
    playlist.push_back("Black Sabath - Paranoid.mp3");
    playlist.push_back("Ozzy Osbourne - Crazy train.mp3");

    // wyswietlenie listy
    cout << "playlist:" << endl;
    for(int i = 0; i != playlist.size(); ++i)
    {
        cout << i << ". " << playlist[i] << endl;
    }
    cout << endl;

    // pomieszanie listy
    random_shuffle(playlist.begin(), playlist.end(), myRandom);

    // wyswietlenei pomieszanej listy
    cout << "shuffled playlist:" << endl;
    for(int i = 0; i != playlist.size(); ++i)
    {
        cout << i << ". " << playlist[i] << endl;
    }
    cout << endl;
}
