You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
65 lines
1.5 KiB
4 years ago
|
/* PlipInstance.cpp
|
||
4 years ago
|
*
|
||
|
* The main class for controlling the Plip emulation suite.
|
||
|
*/
|
||
|
|
||
4 years ago
|
#include "PlipInstance.h"
|
||
4 years ago
|
#include "PlipVersion.h"
|
||
|
|
||
4 years ago
|
#include "Core/Chip8/Chip8Instance.h"
|
||
4 years ago
|
|
||
4 years ago
|
namespace Plip {
|
||
4 years ago
|
PlipInstance::PlipInstance(PlipVideo *video, PlipAudio *audio) {
|
||
4 years ago
|
m_audio = audio;
|
||
4 years ago
|
m_video = video;
|
||
|
}
|
||
|
|
||
4 years ago
|
PlipAudio* PlipInstance::GetAudio() {
|
||
4 years ago
|
return m_audio;
|
||
|
}
|
||
|
|
||
4 years ago
|
PlipCore* PlipInstance::GetCore() {
|
||
4 years ago
|
return m_core;
|
||
|
}
|
||
|
|
||
4 years ago
|
PlipInput* PlipInstance::GetInput() {
|
||
4 years ago
|
return m_input;
|
||
|
}
|
||
|
|
||
4 years ago
|
std::vector<PlipCoreDescription> PlipInstance::GetSupportedCores() {
|
||
4 years ago
|
return PlipCore::GetSupportedCores();
|
||
|
}
|
||
|
|
||
4 years ago
|
std::string PlipInstance::GetVersion() {
|
||
4 years ago
|
#ifndef GIT_FOUND
|
||
|
return PRODUCT_NAME;
|
||
|
#else
|
||
|
#ifndef GIT_TAG
|
||
|
return PRODUCT_NAME " (" GIT_BRANCH "@" GIT_REVISION ")";
|
||
|
#else
|
||
|
return PRODUCT_NAME " " GIT_TAG;
|
||
|
#endif // GIT_TAG
|
||
|
#endif // GIT_FOUND
|
||
|
}
|
||
4 years ago
|
|
||
4 years ago
|
PlipVideo* PlipInstance::GetVideo() {
|
||
4 years ago
|
return m_video;
|
||
|
}
|
||
4 years ago
|
|
||
4 years ago
|
PlipError PlipInstance::Load(PlipValidCore core, const std::string &path) {
|
||
4 years ago
|
switch(core) {
|
||
|
case PlipValidCore::Chip8:
|
||
4 years ago
|
m_core = new Core::Chip8::Chip8Instance(m_audio, m_input, m_video);
|
||
4 years ago
|
break;
|
||
|
default:
|
||
|
return PlipError::InvalidCore;
|
||
|
}
|
||
|
|
||
|
return m_core->Load(path);
|
||
|
}
|
||
4 years ago
|
|
||
4 years ago
|
void PlipInstance::Run(long ns) {
|
||
4 years ago
|
m_core->Delta(ns);
|
||
|
}
|
||
4 years ago
|
}
|