Mozzi  version v1.1.0
sound synthesis library for Arduino
Stack.h
1 /*
2  * Stack.h
3  *
4  * Copyright 2013 Tim Barrass.
5  *
6  * This file is part of Mozzi.
7  *
8  * Mozzi is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
9  *
10  */
11 
12  /** A simple stack, used internally for keeping track of analog input channels as they are read.
13  This stack is really just an array with a pointer to the most recent item, and memory is allocated at compile time.
14 @tparam T the kind of numbers (or other things) to store.
15 @tparam NUM_ITEMS the maximum number of items the stack will need to hold.
16  */
17 template <class T, int NUM_ITEMS>
18 class Stack
19 {
20 private:
21  T _array[NUM_ITEMS];
22  int top;
23 
24 public:
25  /** Constructor
26  */
27  Stack(): top(-1)
28  {
29  }
30 
31 /** Put an item on the stack.
32 @param item the thing you want to put on the stack.
33 */
34  void push(T item)
35  {
36  if (top< (NUM_ITEMS-1)){
37  top++;
38  _array[top]=item;
39  }
40  }
41 
42 /** Get the item on top of the stack.
43 @return T the item
44 */
45  T pop()
46  {
47  if(top==-1) return -1;
48  T item =_array[top];
49  top--;
50  return item;
51  }
52 
53 };
A simple stack, used internally for keeping track of analog input channels as they are read...
Definition: Stack.h:18
T pop()
Get the item on top of the stack.
Definition: Stack.h:45
void push(T item)
Put an item on the stack.
Definition: Stack.h:34
Stack()
Constructor.
Definition: Stack.h:27