86 lines
3.0 KiB
C#
86 lines
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
|
|
namespace SoundBoard
|
|
{
|
|
class GenerateRandomPlayList
|
|
{
|
|
private Random randomNumber = new Random(); //Random number generator
|
|
private string __workingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
|
|
|
|
public string[] SingleViewPlayList(List<List<String>> listViewContents, int iterations, int index)
|
|
{
|
|
string[] playList = new String[iterations];
|
|
string tempFileName;
|
|
int i = 0;
|
|
int itemCount = listViewContents[index].Count - 1; //Count is not zero index based
|
|
|
|
do
|
|
{
|
|
tempFileName = listViewContents[index][randomNumber.Next(0, itemCount)];
|
|
if (playList.Contains(tempFileName))
|
|
{
|
|
playList[i] = listViewContents[index][randomNumber.Next(0, itemCount)];
|
|
}
|
|
else
|
|
{
|
|
playList[i] = tempFileName;
|
|
}
|
|
i++;
|
|
} while (i < iterations);
|
|
return playList;
|
|
}
|
|
|
|
public string[] MulitViewPlayList(List<List<String>> listViewContents, int iterations)
|
|
{
|
|
string[] playList = new String[iterations];
|
|
int zeroIndexCount = listViewContents[0].Count;
|
|
int tabCount = listViewContents.Count;
|
|
int itemCount;
|
|
int i = 0;
|
|
int temp;
|
|
string tempFilePath;
|
|
|
|
do
|
|
{
|
|
if (zeroIndexCount > 5)
|
|
{
|
|
temp = randomNumber.Next(0, tabCount - 1);
|
|
itemCount = listViewContents[temp].Count - 1; //Count is zero index based
|
|
tempFilePath = listViewContents[temp][randomNumber.Next(0, itemCount)];
|
|
if (playList.Contains(tempFilePath))
|
|
{
|
|
playList[i] = listViewContents[temp][randomNumber.Next(0, itemCount)];
|
|
}
|
|
else
|
|
{
|
|
playList[i] = tempFilePath;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
temp = randomNumber.Next(1, tabCount - 1);
|
|
itemCount = listViewContents[temp].Count - 1; //Count is zero index based
|
|
tempFilePath = listViewContents[temp][randomNumber.Next(0, itemCount)];
|
|
if (playList.Contains(tempFilePath))
|
|
{
|
|
playList[i] = listViewContents[temp][randomNumber.Next(0, itemCount)];
|
|
}
|
|
else
|
|
{
|
|
playList[i] = tempFilePath;
|
|
}
|
|
}
|
|
i++;
|
|
} while(i < iterations);
|
|
|
|
return playList;
|
|
}
|
|
}
|
|
}
|