Пример #1
0
 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();
   }
 }
Пример #2
0
 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();
   }
 }
Пример #3
0
 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();
   }
 }
Пример #4
0
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();
}
Пример #5
0
//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();
}
Пример #6
0
 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();
 }
Пример #7
0
 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();
 }
Пример #8
0
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);
}