void RegisterASCSupport(PlayerPluginsRegistrator& registrator) { { const Char ID[] = {'A', 'S', '0', 0}; const Formats::Chiptune::ASCSoundMaster::Decoder::Ptr decoder = Formats::Chiptune::ASCSoundMaster::Ver0::CreateDecoder(); const Module::AYM::Factory::Ptr factory = boost::make_shared<Module::ASCSoundMaster::Factory>(decoder); const PlayerPlugin::Ptr plugin = CreatePlayerPlugin(ID, decoder, factory); registrator.RegisterPlugin(plugin); } { const Char ID[] = {'A', 'S', 'C', 0}; const Formats::Chiptune::ASCSoundMaster::Decoder::Ptr decoder = Formats::Chiptune::ASCSoundMaster::Ver1::CreateDecoder(); const Module::AYM::Factory::Ptr factory = boost::make_shared<Module::ASCSoundMaster::Factory>(decoder); const PlayerPlugin::Ptr plugin = CreatePlayerPlugin(ID, decoder, factory); registrator.RegisterPlugin(plugin); } }
void RegisterSIDPlugins(PlayerPluginsRegistrator& registrator) { const Char ID[] = {'S', 'I', 'D', 0}; const uint_t CAPS = Capabilities::Module::Type::MEMORYDUMP | Capabilities::Module::Device::MOS6581; const Formats::Chiptune::Decoder::Ptr decoder = Formats::Chiptune::CreateSIDDecoder(); const Module::Factory::Ptr factory = MakePtr<Module::Sid::Factory>(); const PlayerPlugin::Ptr plugin = CreatePlayerPlugin(ID, CAPS, decoder, factory); registrator.RegisterPlugin(plugin); }
void RegisterPT2Support(PlayerPluginsRegistrator& registrator) { //plugin attributes const Char ID[] = {'P', 'T', '2', 0}; const Formats::Chiptune::Decoder::Ptr decoder = Formats::Chiptune::CreateProTracker2Decoder(); const Module::AYM::Factory::Ptr factory = boost::make_shared<Module::ProTracker2::Factory>(); const PlayerPlugin::Ptr plugin = CreatePlayerPlugin(ID, decoder, factory); registrator.RegisterPlugin(plugin); }
void RegisterOGGPlugin(PlayerPluginsRegistrator& registrator) { const Char ID[] = {'O', 'G', 'G', 0}; const uint_t CAPS = Capabilities::Module::Type::STREAM | Capabilities::Module::Device::DAC; const auto decoder = Formats::Chiptune::CreateOGGDecoder(); const auto factory = MakePtr<Module::Ogg::Factory>(); const PlayerPlugin::Ptr plugin = CreatePlayerPlugin(ID, CAPS, decoder, factory); registrator.RegisterPlugin(plugin); }
void RegisterGSFSupport(PlayerPluginsRegistrator& registrator) { //plugin attributes const Char ID[] = {'G', 'S', 'F', 0}; const uint_t CAPS = Capabilities::Module::Type::MEMORYDUMP | Capabilities::Module::Device::DAC | Capabilities::Module::Traits::MULTIFILE; const auto factory = Module::GSF::CreateFactory(); const auto decoder = Formats::Chiptune::CreateGSFDecoder(); const auto plugin = CreatePlayerPlugin(ID, CAPS, decoder, factory); registrator.RegisterPlugin(plugin); }
void RegisterAYSupport(PlayerPluginsRegistrator& registrator) { //plugin attributes const Char ID[] = {'A', 'Y', 0}; const uint_t CAPS = Capabilities::Module::Type::MEMORYDUMP | Capabilities::Module::Device::AY38910 | Capabilities::Module::Device::BEEPER | Module::AYM::GetSupportedFormatConvertors(); const Formats::Chiptune::Decoder::Ptr decoder = Formats::Chiptune::CreateAYEMULDecoder(); const Module::Factory::Ptr factory = Module::AYEMUL::CreateFactory(); const PlayerPlugin::Ptr plugin = CreatePlayerPlugin(ID, CAPS, decoder, factory); registrator.RegisterPlugin(plugin); }
PlayerPlugin::Ptr CreateStreamPlayerPlugin(const String& id, Formats::Chiptune::Decoder::Ptr decoder, Module::TFM::Factory::Ptr factory) { return CreatePlayerPlugin(id, Capabilities::Module::Type::STREAM, decoder, factory); }
PlayerPlugin::Ptr CreatePlayerPlugin(const String& id, uint_t caps, Formats::Chiptune::Decoder::Ptr decoder, Module::TFM::Factory::Ptr factory) { const Module::Factory::Ptr modFactory = MakePtr<Module::TFMFactory>(factory); const uint_t tfmCaps = Capabilities::Module::Device::TURBOFM; return CreatePlayerPlugin(id, caps | tfmCaps, decoder, modFactory); }