Epple-II/src/cassette.h

58 lines
1.5 KiB
C
Raw Permalink Normal View History

2012-04-21 00:04:34 +00:00
/*
epple2
Copyright (C) 2008 by Christopher A. Mosher <cmosher01@gmail.com>
2012-04-21 00:04:34 +00:00
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
2012-04-21 00:04:34 +00:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
2012-04-21 00:04:34 +00:00
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
2012-04-21 00:04:34 +00:00
*/
#ifndef CASSETTE_H
#define CASSETTE_H
#include <vector>
#include <string>
#include <cstdint>
2012-04-21 00:04:34 +00:00
#include "screenimage.h"
class Cassette {
protected:
ScreenImage& gui;
2013-12-17 03:20:11 +00:00
std::uint_fast32_t t;
std::uint_fast32_t t_active;
2012-04-21 00:04:34 +00:00
bool playing; // tape is moving
2012-04-21 00:04:34 +00:00
bool modified;
std::string file;
2012-04-21 00:04:34 +00:00
// save all data to file, return true if it worked
virtual bool write() { return true; }
virtual std::string port() { return ""; }
void note(const char *n);
2012-04-21 00:04:34 +00:00
public:
Cassette(ScreenImage& gui);
virtual ~Cassette();
2012-04-21 00:04:34 +00:00
virtual bool eject(); // returns false if user cancels operation
void save();
2012-04-21 00:04:34 +00:00
bool isLoaded();
bool isModified();
2012-04-21 00:04:34 +00:00
virtual void tick();
2012-04-21 00:04:34 +00:00
};
#endif