virtual AYM::Chiptune::Ptr CreateChiptune(PropertiesBuilder& propBuilder, const Binary::Container& rawData) const { DataBuilder dataBuilder(propBuilder); if (const Formats::Chiptune::Container::Ptr container = Decoder->Parse(rawData, dataBuilder)) { propBuilder.SetSource(*container); return boost::make_shared<Chiptune>(dataBuilder.GetResult(), propBuilder.GetResult()); } else { return AYM::Chiptune::Ptr(); } }
DAC::Chiptune::Ptr CreateChiptune(const Binary::Container& rawData, Parameters::Container::Ptr properties) const override { DAC::PropertiesHelper props(*properties); DataBuilder dataBuilder(props); if (const auto container = Formats::Chiptune::SQDigitalTracker::Parse(rawData, dataBuilder)) { props.SetSource(*container); return MakePtr<Chiptune>(dataBuilder.CaptureResult(), properties); } else { return DAC::Chiptune::Ptr(); } }
DAC::Chiptune::Ptr CreateChiptune(const Binary::Container& rawData, Parameters::Container::Ptr properties) const override { DAC::PropertiesHelper props(*properties); DataBuilder dataBuilder(props); if (const auto container = Formats::Chiptune::ExtremeTracker1::Parse(rawData, dataBuilder)) { props.SetSource(*container); props.SetPlatform(Platforms::ZX_SPECTRUM); return MakePtr<Chiptune>(dataBuilder.CaptureResult(), std::move(properties)); } else { return DAC::Chiptune::Ptr(); } }
void Handler::processCommandListPerf(CommandBase& command, Response& response) { ListPerfCommand& cmd = static_cast<ListPerfCommand&>(command); map< string, string > result; Perf::instance().descr(result, cmd.m_pattern); PropertiesTableBuilder builder(response.bin(), 0); builder.add(PROTOCOL_CONTENT_TYPE, PROTOCOL_CONTENT_TYPE_PROPERTIES); uint32_t length = builder.finalize(); PropertiesTableBuilder dataBuilder(response.bin(), length); map< string, string >::iterator iter = result.begin(); for ( ; iter != result.end(); ++iter) dataBuilder.add(iter->first,iter->second); dataBuilder.finalize(); }
//static void Handler::processHelpRequest(CommandBase& command, Response& response) { list< string > help; command.getHelp(help); PropertiesTableBuilder builder(response.bin(), 0); builder.add(PROTOCOL_CONTENT_TYPE, PROTOCOL_CONTENT_TYPE_LIST); uint32_t length = builder.finalize(); ListTableBuilder dataBuilder(response.bin(), length); list< string >::iterator iter = help.begin(); for ( ; iter != help.end(); ++iter) { dataBuilder.add(*iter); } dataBuilder.finalize(); }
Module::Holder::Ptr CreateModule(const Parameters::Accessor& params, const Binary::Container& rawData, Parameters::Container::Ptr properties) const override { try { PropertiesHelper props(*properties); DataBuilder dataBuilder(props); if (const auto container = Formats::Chiptune::OggVorbis::Parse(rawData, dataBuilder)) { if (const auto data = dataBuilder.GetResult()) { props.SetSource(*container); dataBuilder.SetContent(container); dataBuilder.SetFrameDuration(Sound::GetFrameDuration(params)); return MakePtr<Holder>(data, properties); } } } catch (const std::exception& e) { Dbg("Failed to create OGG: %s", e.what()); } return Module::Holder::Ptr(); }
Module::Holder::Ptr CreateModule(const Parameters::Accessor& params, const Binary::Container& rawData, Parameters::Container::Ptr properties) const override { try { PropertiesHelper props(*properties); DataBuilder dataBuilder(props); if (const Formats::Chiptune::Container::Ptr container = Formats::Chiptune::SPC::Parse(rawData, dataBuilder)) { const SPC::Ptr tune = MakePtr<SPC>(rawData); props.SetSource(*container); props.SetFramesFrequency(50); const Time::Milliseconds duration = dataBuilder.GetDuration(params); const Time::Milliseconds period = Time::Milliseconds(20); const uint_t frames = duration.Get() / period.Get(); const Information::Ptr info = CreateStreamInfo(frames); return MakePtr<Holder>(tune, info, properties); } } catch (const std::exception& e) { Dbg("Failed to create SPC: %s", e.what()); } return Module::Holder::Ptr(); }
MSG_HANDLER(TaskType_Scene, SceneScoresMsg) { auto pPlayerData = siStore.FindData(msg->playerGuid); if (!pPlayerData) { ERROR_LOG("save Scene Score error, no found player[%lu] in PlayerDataMgr\n", msg->playerGuid); return; } pPlayerData->SaveSceneScore(msg->list[0].sceneid, msg->list[0].score); uint16 size = pPlayerData->getSceneScoreSize(); char* data = new char[size * 3 + 2]; M_CHECKIN(data); Helper::DataBuilder dataBuilder(data); pPlayerData->BuildSceneScoreTable(dataBuilder); uint16 datasize = dataBuilder.getSize(); PreparedStmt* pStmt = siDBHandlerWrite.GetPreparedStatement(DBS_SAVE_SCENESCORE); int index = 0; pStmt->setUInt64(index++, msg->playerGuid); pStmt->setBlob(index++, data, datasize); pPlayerData->Append(pStmt); siStore.setNeedSaveData(pPlayerData, PlayerDataType_Normal); }