aboutsummaryrefslogtreecommitdiff
path: root/src/queue.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/queue.rs')
-rwxr-xr-xsrc/queue.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/queue.rs b/src/queue.rs
new file mode 100755
index 0000000..821c508
--- /dev/null
+++ b/src/queue.rs
@@ -0,0 +1,37 @@
+use mpd::Song;
+
+#[derive(Debug)]
+pub struct Queue {
+ pub list: Vec<Song>,
+ pub index: usize,
+}
+
+impl Queue {
+ pub fn new() -> Self {
+ Queue {
+ list: Vec::new(),
+ index: 0,
+ }
+ }
+
+ // Go to next item in list
+ pub fn next(&mut self) {
+ let len = self.list.len();
+ if len != 0 {
+ if self.index < len - 1 {
+ self.index += 1;
+ }
+ }
+ }
+
+ /// Go to previous item in list
+ pub fn prev(&mut self) {
+ if self.index != 0 {
+ self.index -= 1;
+ }
+ }
+
+ pub fn reset_index(&mut self) {
+ self.index = 0;
+ }
+}