virtual AYM::Chiptune::Ptr CreateChiptune(PropertiesBuilder& propBuilder, const Binary::Container& rawData) const { DataBuilder dataBuilder; if (const Formats::Chiptune::Container::Ptr container = Formats::Chiptune::PSG::Parse(rawData, dataBuilder)) { if (const AYM::StreamModel::Ptr data = dataBuilder.GetResult()) { propBuilder.SetSource(*container); return AYM::CreateStreamedChiptune(data, propBuilder.GetResult()); } } return AYM::Chiptune::Ptr(); }
AYM::Chiptune::Ptr CreateChiptune(const Binary::Container& rawData, Parameters::Container::Ptr properties) const override { DataBuilder dataBuilder; if (const Formats::Chiptune::Container::Ptr container = Formats::Chiptune::PSG::Parse(rawData, dataBuilder)) { if (const AYM::StreamModel::Ptr data = dataBuilder.GetResult()) { PropertiesHelper props(*properties); props.SetSource(*container); return AYM::CreateStreamedChiptune(data, properties); } } return AYM::Chiptune::Ptr(); }