using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Handbrake.Functions
{
public class Queue
{
ArrayList queue = new ArrayList();
string lastQuery;
public ArrayList getQueue()
{
return queue;
}
///
/// Get's the next CLI query for encoding
///
/// String
public string getNextItemForEncoding()
{
string query = queue[0].ToString();
lastQuery = query;
remove(0);
return query;
}
///
/// Add's a new item to the queue
///
/// String
public void add(string query)
{
queue.Add(query);
}
///
/// Removes an item from the queue.
///
/// Index
/// Bolean true if successful
public Boolean remove(int index)
{
try
{
queue.RemoveAt(index);
return true;
}
catch (Exception)
{
return false;
}
}
///
/// Returns how many items are in the queue
///
/// Int
public int count()
{
return queue.Count;
}
///
/// Get's the last query to be selected for encoding by getNextItemForEncoding()
///
/// String
public string getLastQuery()
{
return lastQuery;
}
///
/// Move an item with an index x, up in the queue
///
/// Int
public void moveUp(int index)
{
if (index != 0)
{
string item = queue[index].ToString();
queue.Insert((index - 1), item);
queue.RemoveAt((index + 1));
}
}
///
/// Move an item with an index x, down in the queue
///
/// Int
public void moveDown(int index)
{
if (index != queue.Count - 1)
{
string item = queue[index].ToString();
queue.Insert((index + 2), item);
queue.RemoveAt((index));
}
}
}
}