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)); } } } }