Пример #1
0
void tableSelectParaDialog::setOutputModel(QStringList outputList)
{
    outputD = outputList;
    outputH = outputList;
    QStringList temp;
    for(int i = 0; i<outputD.count();i++)
    {
        temp = outputD[i].split(",");
        if(temp[1]=="SA"||temp[1]=="SO")
        {
            outputD[i] = temp[0];
            outputH[i] = temp[0];
            QString string = temp[1];
            outputD[i].append(","+addUnit(string));
            outputH[i].append("\n["+addUnit(string)+"]");
        }
        else
        {
            outputD[i] = temp[0]+" - "+temp[1];
            outputH[i] = temp[0]+"\n"+temp[1];
            QString string = temp[2];
            outputD[i].append(","+addUnit(string));
            outputH[i].append("\n["+addUnit(string)+"]");

        }
    }
    outputModel->setStringList(outputD);
    ui->outputList->setModel(outputModel);
}
Пример #2
0
RepoWrapper::RepoWrapper(const char* repoSchema,
                         const std::string& configFile) {
  if (setenv("HHVM_RUNTIME_REPO_SCHEMA", repoSchema, 1 /* overwrite */)) {
    fprintf(stderr, "Could not set repo schema");
    exit(EXIT_FAILURE);
  }

  printf("# Config file: %s\n", configFile.c_str());
  printf("# Repo schema: %s\n", repoSchemaId().begin());

  register_process_init();
  initialize_repo();
  hphp_thread_init();
  g_context.getCheck();
  IniSetting::Map ini = IniSetting::Map::object;
  Hdf config;
  if (!configFile.empty()) {
    Config::ParseConfigFile(configFile, ini, config);
    // Disable logging to suppress harmless errors about setrlimit.
    config["Log"]["Level"] = "None";
  }
  RuntimeOption::Load(ini, config);
  RuntimeOption::RepoCommit = false;
  compile_file(nullptr, 0, MD5(), nullptr);

  repo = &Repo::get();

  RuntimeOption::AlwaysUseRelativePath = false;
  RuntimeOption::SafeFileAccess = false;
  RuntimeOption::EvalAllowHhas = true;
  Option::WholeProgram = false;

  LitstrTable::init();
  LitstrTable::get().setWriting();
  RuntimeOption::RepoAuthoritative = true;
  repo->loadGlobalData(true /* allowFailure */);

  std::string hhasLib;
  auto const phpLib = get_systemlib(&hhasLib);
  always_assert(!hhasLib.empty() && !phpLib.empty());
  auto phpUnit = compile_string(phpLib.c_str(), phpLib.size(),
                                "systemlib.php");
  addUnit(phpUnit);
  auto hhasUnit = compile_string(hhasLib.c_str(), hhasLib.size(),
                                 "systemlib.hhas");
  addUnit(hhasUnit);

  SystemLib::s_inited = true;

  LitstrTable::get().setReading();
}
Пример #3
0
// Returns TRUE if the constraint should be deleted. May set the 'ok' flag to false
bool PbSolver::propagate(Linear& c)
{
    //**/reportf("BEFORE propagate()\n");
    //**/dump(c, sat_solver.assigns_ref()); reportf("\n");

    // Remove assigned literals:
    Int     sum = 0, true_sum = 0;
    int     j = 0;
    for (int i = 0; i < c.size; i++){
        assert(c(i) > 0);
        if (value(c[i]) == l_Undef){
            sum += c(i);
            c(j) = c(i);
            c[j] = c[i];
            j++;
        }else if (value(c[i]) == l_True)
            true_sum += c(i);
    }
    c.size = j;
    if (c.lo != Int_MIN) c.lo -= true_sum;
    if (c.hi != Int_MAX) c.hi -= true_sum;

    // Propagate:
    while (c.size > 0){
        if (c(c.size-1) > c.hi){
            addUnit(~c[c.size-1]);
            sum -= c(c.size-1);
            c.size--;
        }else if (sum - c(c.size-1) < c.lo){
            addUnit(c[c.size-1]);
            sum -= c(c.size-1);
            if (c.lo != Int_MIN) c.lo -= c(c.size-1);
            if (c.hi != Int_MAX) c.hi -= c(c.size-1);
            c.size--;
        }else
            break;
    }

    if (c.lo <= 0)  c.lo = Int_MIN;
    if (c.hi > sum) c.hi = Int_MAX;

    //**/reportf("AFTER propagate()\n");
    //**/dump(c, sat_solver.assigns_ref()); reportf("\n\n");
    if (c.size == 0){
        if (c.lo > 0 || c.hi < 0)
            ok = false;
        return true;
    }else
        return c.lo == Int_MIN && c.hi == Int_MAX;
}
Пример #4
0
void Message::parseRepeatGroup(MessageParser &parser, const Tag tag) {
    auto repeat_group = std::make_shared<RepeatGroup>();

    auto count_field = parser.goNextFieldValue(kFieldType::kRepeatGroup);
    int count = std::static_pointer_cast<IntFieldValue>(count_field)->getValue(); //number of repeating units

    while (count-- > 0) {
        auto repeat_unit = std::make_shared<FieldValueContainer>();
        Tag subtag = parser.goNextTag();
        Tag last_tag = -1;

        while (last_tag < subtag) {
            auto field_value = parser.goNextFieldValue(FieldTypeMap::get(subtag));
            repeat_unit->set(subtag, field_value);
            last_tag = subtag;

            // if there is available tag to be parsed, read and check whether it belongs to current repeating unit;
            // otherwise finish parsing current repeating unit by setting subtag to -1
            subtag = parser.isDone() ? -1 : parser.goNextTag();
        }
        parser.goLastStart();
        repeat_group->addUnit(repeat_unit);
    }

    repeat_groups_.set(tag, repeat_group);
}
Пример #5
0
bool CGameUnitsFormation::setDimension(core::dimension2di &newdim)
{
	if ( (s32)Units.size() <= newdim.Width*newdim.Height )
	{
		UnitsDim = newdim;
		MaxUnitsCount = UnitsDim.Width*UnitsDim.Height;
		
		_Units.clear();

		_Units.set_used(UnitsDim.Width);

		for (s32 w=0; w<UnitsDim.Width; w++)
		{
			for (s32 h=0; h<UnitsDim.Height; h++)
				_Units[w].push_back(SUnitEntry());
		}

		core::list<IGameNodeAI*>::iterator it = Units.begin();

		for (; it!=Units.end(); ++it)
		{
			IGameNodeAI *gn = *it;

			if (gn)
				addUnit(gn);
		}

		return true;
	}

	return false;
}
Пример #6
0
/**
 * checks if the peasant can produce
 * produce the unit and returns 0 if succesful and 1 if not
 * checks if the peasant can produce
 */
static int produceUnit(int x1, int y1, int x2, int y2, enum unitType type) {
	// only on the neighbouring field
	if(!isNeighbour(x1, y1, x2, y2)) return 1;
	
	// is it inside the board
	if(!insideBoard(x1, y1, globalBoardSize)) return 1;
	if(!insideBoard(x2, y2, globalBoardSize)) return 1;
	
	// no unit or it is not a peasant on (x1, y1)
	UnitsList peasant = findUnit(x1, y1);
	if (peasant == NULL || peasant->type != PEASANT) return 1;
	
	// has the unit moved last two turns
	if (actualTurnNumber - peasant->lastMove < 3) return 1;
	
	UnitsList secondUnit = findUnit(x2, y2);
	
	// is there any other unit on (x2, y2)
	if(secondUnit != NULL) return 1;
	
	addUnit(x2, y2, type);
		
	// updates the last move of the peasant
	peasant->lastMove = actualTurnNumber;

	return 0;	
}
void sbe::ModelManager::addUnit(int n)
{
	for (auto i = 0; i < n; ++i)
	{
		addUnit();
	}
}
Пример #8
0
void tableSelectParaDialog::setInputModel(QStringList inputList)
{
    inputD = inputList;
    inputH = inputList;
    QStringList temp;
    for(int i = 0; i<inputD.count();i++)
    {
        temp = inputD[i].split(",");
        inputD[i] = temp[0]+" - "+temp[1];
        inputH[i] = temp[0]+"\n"+temp[1];
        QString string = temp[2];
        inputD[i].append(","+addUnit(string));
        inputH[i].append("\n["+addUnit(string)+"]");
    }
    inputModel->setStringList(inputD);
    ui->inputList->setModel(inputModel);
}
Пример #9
0
void SettingsUnitsView::setInterfaceController()
{
    connect(boxUnits,SIGNAL(currentIndexChanged(QString)),controller,SLOT(showUnit()));
    connect(pushNew,SIGNAL(clicked()),controller,SLOT(addUnit()));
    connect(pushEdit,SIGNAL(clicked()),controller,SLOT(editUnit()));
    connect(pushDelete,SIGNAL(clicked()),controller,SLOT(deleteUnit()));
    connect(pushSave,SIGNAL(clicked()),controller,SLOT(saveUnit()));
}
Пример #10
0
LuaScript::LuaScript(bool defineClasses){
    lua.open_libraries(sol::lib::base, sol::lib::table, sol::lib::package, sol::lib::math, sol::lib::debug);
    
    if (defineClasses) { //Done this way because of number of sections
        addGame(); 
        addChampion();
        addItem();
        addUnit();
    }
}
Пример #11
0
LayerId Network::addLayer(Layer* l)
{
   LayerId nextId = layers.size();
   layers[nextId] = l;

   for (int k = 0; k < l->units.size(); k++) {
      Unit* u = l->units[k];
      addUnit(u);
   }

   return nextId;
}
Пример #12
0
void lionheart::Game::start()
{
  auto boxes = map->getBoxes();
  std::array<Direction,2> facing = {{Direction::EAST,Direction::WEST}};
  for(int i=0;i<2;++i)
  {
    // Create crowns

    crown[i] = createUnit<Crown>(0,player[i], map, units[i],boxes[i], facing[i]);
    if (!crown[i])
    {
      // invalid crown placement, put in middle
      auto row = (boxes[i].minRow + boxes[i].maxRow) / 2;
      auto col = (boxes[i].minCol + boxes[i].maxCol) / 2;
      crown[i] = std::make_shared<Crown>(0,map->at(row, col), facing[i]);
    }
    units[i].push_back(crown[i]);
    // Create knights
    for (int j = 0; j < NUM_KNIGHTS; ++j)
    {
      auto knight = createUnit<Knight>(j+1,player[i], map,units[i], boxes[i], facing[i]);
      addUnit(units[i], knight);
    }
    // Create archers
    for (int j = 0; j < NUM_ARCHERS; ++j)
    {
      auto archer = createUnit<Archer>(NUM_KNIGHTS+j+1,player[i], map,units[i], boxes[i], facing[i]);
      addUnit(units[i], archer);
    }
    // Create infantry
    for (int j = 0; j < NUM_INFANTRY; ++j)
    {
      auto infantry = createUnit<Infantry>(
        NUM_KNIGHTS + NUM_ARCHERS  + j + 1, player[i], map, units[i], boxes[i], facing[i]);
      addUnit(units[i], infantry);
    }
  }
  state = IN_PROGRESS;
  turns = 0;
}
Пример #13
0
void BWCombatLayer::initCter()
{
    UnitData unitData;
    unitData.nId = 1 ;
    BWUnitManager::shareBWUnitManager()->createHero(&unitData);
    BWUnit* pHero = BWUnitManager::shareBWUnitManager()->getHero();
    if(!pHero)
    {
        return;
    }
    addUnit(pHero);

    ResManager::shareResManager()->loadLevelXml(1, &_levelData);
}
Пример #14
0
/* - Bandpass-Filter */
unit *addFxBandpass(unitScope scope) {
	unit *newUnit = addUnit(scope); /* adding and setting up basics for new unit*/
	int i, iMax = ((scope == usGLOBAL) ? 1 : voiceCount);

	newUnit->type = utFX_BANDPASS;
	newUnit->comp = (void (*)(void *))&compFxBandpass; /* setup computing function for unit */
	newUnit->reinit = NULL; /* no reinit function for this unit */

	for (i = 0; i < iMax; i++) { /* setup one inner unit for global unit or one for every voice for local unit */
		newUnit->units[i] = ecMalloc(sizeof(fxBandpass)); /* allocate memory for every inner unit */
		setupFxBandpass(newUnit->units[i]); /* specific setup for bandpass filter */
	}

	return newUnit;
}
Пример #15
0
/* - Mixers*/
unit *addMixer2ch(unitScope scope) { /* add 2 channel mixer unit */
	unit *newUnit = addUnit(scope); /* adding and setting up basics for new unit*/
	int i, iMax = ((scope == usGLOBAL) ? 1 : voiceCount);

	newUnit->type = utMIXER2CH;
	newUnit->comp = (void (*)(void *))&compMixer2ch; /* setup computing function for unit */
	newUnit->reinit = NULL; /* no reinit function for this unit */

	for (i = 0; i < iMax; i++) { /* setup one inner unit for global unit or one for every voice for local unit */
		newUnit->units[i] = ecMalloc(sizeof(mixer2ch)); /* allocate memory for every inner unit */
		setupMixer2ch(newUnit->units[i]); /* specific setup for 2 channel mixer */
	}

	return newUnit;
}
Пример #16
0
/* - Oscillators */
unit *addOsc(unitScope scope) { /* add oscillator unit */
	unit *newUnit = addUnit(scope); /* adding and setting up basics for new unit*/
	int i, iMax = ((scope == usGLOBAL) ? 1 : voiceCount);

	newUnit->type = utOSC;
	newUnit->comp = (void (*)(void *))&compOsc; /* setup computing function for unit */
	newUnit->reinit = (void (*)(void *))&reinitOsc; /* reinit function for unit */

	for (i = 0; i < iMax; i++) { /* setup one inner unit for global unit or one for every voice for local unit */
		newUnit->units[i] = ecMalloc(sizeof(osc)); /* allocate memory for every inner unit */
		setupOsc(newUnit->units[i]); /* specific setup for oscillator */
	}

	return newUnit;
}
Пример #17
0
void CCoverageHandler::update() {
	std::map<CCoverageCell::NType, std::list<CCoverageCell*> >::iterator itLayer;
	std::list<CCoverageCell*>::iterator itCell;
	std::list<CUnit*> uncovered;

	for (itLayer = layers.begin(); itLayer != layers.end(); ++itLayer) {
		uncovered.clear();

		for (itCell = itLayer->second.begin(); itCell != itLayer->second.end(); ++itCell)
			(*itCell)->update(uncovered);

		if (!uncovered.empty()) {
			std::list<CUnit*>::iterator itUnit;
			std::map<int, CCoverageCell*>* coveredUnits = &unitsCoveredBy[itLayer->first];

			for (itUnit = uncovered.begin(); itUnit != uncovered.end(); ++itUnit) {
				CUnit* unit = *itUnit;
				coveredUnits->erase(unit->key);
				assert(unitsCoveredCount[unit->key] > 0);
				if(--unitsCoveredCount[unit->key] == 0) {
					unit->unreg(*this); // no need to track this unit anymore
				}
				addUnit(unit);
			}

			// re-assign uncovered units to existing cores...
			for (itUnit = uncovered.begin(); itUnit != uncovered.end(); ++itUnit) {
				addUnit(*itUnit);
			}
		}
	}

	if (visualizationEnabled) {
		visualizeLayer(visualizationLayer);
	}
}
Пример #18
0
Stage::Stage(GameRoom* gameroom, const int id)
	:gameroom(gameroom), oppositStage(nullptr), id(id),
	playerNum(0), enemyNum(0), bonusTimer(config::bonus_time_wait){

	collisionDetector = new CollisionDetector();
	trashPool = new TrashPool(this);
	spawner = new EnemySpawner(this);
	repairArea = new RepairArea();
	for (int i = 0; i < ALLY_MAX; ++i)
		ally[i] = new Ally();

	addUnit(repairArea);

	init();
}
Пример #19
0
void Slash::use(
	Unit *u,
	Vec2 pos){

	auto stage = u->stage;

	auto bullet = new Bullet();
	bullet->position = u->position;
	bullet->fire(pos - u->position, 800);

	bullet->attackData.user = u;
	bullet->attackData.radius = 10;
	bullet->attackData.damage = u->_ATTR(attack);
	bullet->range = u->_ATTR(range);
	bullet->ally = u->ally;

	stage->addUnit(bullet);
}
Пример #20
0
FITSHeaderEditAddUnitDialog::FITSHeaderEditAddUnitDialog(const QString& unit, QWidget *parent) :
    KDialog(parent) {
    QWidget* mainWidget = new QWidget(this);
    ui.setupUi(mainWidget);
    setMainWidget( mainWidget );

    setWindowTitle(i18n("Specify the new unit"));
    setButtons( KDialog::Ok | KDialog::Cancel );
    setButtonText(KDialog::Ok, i18n("&Add unit"));
    KCompletion* keyCompletion = new KCompletion;
    keyCompletion->setItems(FITSFilter::units());
    if (!unit.isEmpty()) {
        ui.kleUnit->setText(unit);
    }
    ui.kleUnit->setCompletionObject(keyCompletion);
    ui.kleUnit->setAutoDeleteCompletionObject(true);
    connect(this, SIGNAL(okClicked()), this, SLOT(addUnit()));
    setAttribute(Qt::WA_DeleteOnClose);
}
std::vector<Fix42::MessagePtr> SecurityDefinitionHandler::accept(const Fix42::MessagePtr message) {
    std::vector<Fix42::MessagePtr> results;
    auto result = std::make_shared<Fix42::Message>();
    //auto requests = message->getRepeatGroup(Fix42::kFieldName::kNoRelatedSym)->getUnits();

    result->setType(Fix42::kMessageType::kSecurityDefinition);
    std::vector<SecurityStatus> securities;
    api_.securityQueryAll(securities);

    auto security_list = std::make_shared<Fix42::RepeatGroup>();

    for (const auto &security:securities) {
        auto unit = std::make_shared<Fix42::FieldValueContainer>();
        unit->setField<Fix42::kFieldName::kSymbol>(security.symbol);
        unit->setField<Fix42::kFieldName::kPrice>(Quote::toOriginalPrice(security.price));
        security_list->addUnit(unit);
    }

    result->setRepeatGroup(Fix42::kFieldName::kNoRelatedSym, security_list);
    results.push_back(result);
    return results;
}
Пример #22
0
Area::Area() : CustomCategory(AreaCategory,
                              i18nc("Unit Category: two dimensional size of a surface", "Area"),
                              i18nc("Unit Category: two dimensional size of a surface", "Area"))
{
    // i18n: Used when converting to symbol string e.g. 2.34 m²
    KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (area)", "%1 %2");

    addUnit(CustomUnit(AreaCategory, SquareYottameter, 1e+48,
                       // i18n: Used when unit symbol is needed.
                       i18nc("area unit symbol", "Ym²"),
                       // i18n: unit as it will be shown to user wherever units are to
                       // be explicitly selected (listbox, radio buttons, checkboxes...).
                       // E.g. an application may give option "Unit of wind speed: [unit-list-box]"
                       i18nc("unit description in lists", "square yottameters"),
                       // i18n: Messages such as this one provide synonyms for each unit,
                       // in order to guess the unit from the text that the user inputs.
                       // Synonyms are semicolon-separated, and you can add as many as
                       // you need (either equal to, more, or less than in the original).
                       // Note that any gramatical inflections of unit names
                       // (such as plural and cases) should also be listed.
                       i18nc("unit synonyms for matching user input",
                             "square yottameter;square yottameters;Ym²;Ym/-2;Ym^2;Ym2"),
                       symbolString,
                       // i18n: This is used when a real-valued amount in units is given,
                       // such as "0.37 miles".
                       ki18nc("amount in units (real)", "%1 square yottameters"),
                       // i18n: This is used when a integer-valued amount in units is given,
                       // such as "1 mile" or "21 miles".
                       ki18ncp("amount in units (integer)", "%1 square yottameter", "%1 square yottameters")));

    addUnit(CustomUnit(AreaCategory, SquareZettameter, 1e+42,
                       i18nc("area unit symbol", "Zm²"),
                       i18nc("unit description in lists", "square zettameters"),
                       i18nc("unit synonyms for matching user input",
                             "square zettameter;square zettameters;Zm²;Zm/-2;Zm^2;Zm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square zettameters"),
                       ki18ncp("amount in units (integer)", "%1 square zettameter", "%1 square zettameters")));

    addUnit(CustomUnit(AreaCategory, SquareExameter, 1e+36,
                       i18nc("area unit symbol", "Em²"),
                       i18nc("unit description in lists", "square exameters"),
                       i18nc("unit synonyms for matching user input",
                             "square exameter;square exameters;Em²;Em/-2;Em^2;Em2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square exameters"),
                       ki18ncp("amount in units (integer)", "%1 square exameter", "%1 square exameters")));

    addUnit(CustomUnit(AreaCategory, SquarePetameter, 1e+30,
                       i18nc("area unit symbol", "Pm²"),
                       i18nc("unit description in lists", "square petameters"),
                       i18nc("unit synonyms for matching user input",
                             "square petameter;square petameters;Pm²;Pm/-2;Pm^2;Pm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square petameters"),
                       ki18ncp("amount in units (integer)", "%1 square petameter", "%1 square petameters")));

    addUnit(CustomUnit(AreaCategory, SquareTerameter, 1e+24,
                       i18nc("area unit symbol", "Tm²"),
                       i18nc("unit description in lists", "square terameters"),
                       i18nc("unit synonyms for matching user input",
                             "square terameter;square terameters;Tm²;Tm/-2;Tm^2;Tm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square terameters"),
                       ki18ncp("amount in units (integer)", "%1 square terameter", "%1 square terameters")));

    addUnit(CustomUnit(AreaCategory, SquareGigameter, 1e+18,
                       i18nc("area unit symbol", "Gm²"),
                       i18nc("unit description in lists", "square gigameters"),
                       i18nc("unit synonyms for matching user input",
                             "square gigameter;square gigameters;Gm²;Gm/-2;Gm^2;Gm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square gigameters"),
                       ki18ncp("amount in units (integer)", "%1 square gigameter", "%1 square gigameters")));

    addUnit(CustomUnit(AreaCategory, SquareMegameter, 1e+12,
                       i18nc("area unit symbol", "Mm²"),
                       i18nc("unit description in lists", "square megameters"),
                       i18nc("unit synonyms for matching user input",
                             "square megameter;square megameters;Mm²;Mm/-2;Mm^2;Mm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square megameters"),
                       ki18ncp("amount in units (integer)", "%1 square megameter", "%1 square megameters")));

    addCommonUnit(CustomUnit(AreaCategory, SquareKilometer, 1e+06,
                             i18nc("area unit symbol", "km²"),
                             i18nc("unit description in lists", "square kilometers"),
                             i18nc("unit synonyms for matching user input",
                                   "square kilometer;square kilometers;km²;km/-2;km^2;km2"),
                             symbolString,
                             ki18nc("amount in units (real)", "%1 square kilometers"),
                             ki18ncp("amount in units (integer)", "%1 square kilometer", "%1 square kilometers")));

    addCommonUnit(CustomUnit(AreaCategory, SquareHectometer, 10000,
                             i18nc("area unit symbol", "hm²"),
                             i18nc("unit description in lists", "square hectometers"),
                             i18nc("unit synonyms for matching user input",
                                   "square hectometer;square hectometers;hm²;hm/-2;hm^2;hm2;hectare;hectares"),
                             symbolString,
                             ki18nc("amount in units (real)", "%1 square hectometers"),
                             ki18ncp("amount in units (integer)", "%1 square hectometer", "%1 square hectometers")));

    addUnit(CustomUnit(AreaCategory, SquareDecameter, 100,
                       i18nc("area unit symbol", "dam²"),
                       i18nc("unit description in lists", "square decameters"),
                       i18nc("unit synonyms for matching user input",
                             "square decameter;square decameters;dam²;dam/-2;dam^2;dam2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square decameters"),
                       ki18ncp("amount in units (integer)", "%1 square decameter", "%1 square decameters")));

    addDefaultUnit(CustomUnit(AreaCategory, SquareMeter, 1,
                              i18nc("area unit symbol", "m²"),
                              i18nc("unit description in lists", "square meters"),
                              i18nc("unit synonyms for matching user input", "square meter;square meters;m²;m/-2;m^2;m2"),
                              symbolString,
                              ki18nc("amount in units (real)", "%1 square meters"),
                              ki18ncp("amount in units (integer)", "%1 square meter", "%1 square meters")));

    addUnit(CustomUnit(AreaCategory, SquareDecimeter, 0.01,
                       i18nc("area unit symbol", "dm²"),
                       i18nc("unit description in lists", "square decimeters"),
                       i18nc("unit synonyms for matching user input",
                             "square decimeter;square decimeters;dm²;dm/-2;dm^2;dm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square decimeters"),
                       ki18ncp("amount in units (integer)", "%1 square decimeter", "%1 square decimeters")));

    addUnit(CustomUnit(AreaCategory, SquareCentimeter, 0.0001,
                       i18nc("area unit symbol", "cm²"),
                       i18nc("unit description in lists", "square centimeters"),
                       i18nc("unit synonyms for matching user input",
                             "square centimeter;square centimeters;cm²;cm/-2;cm^2;cm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square centimeters"),
                       ki18ncp("amount in units (integer)", "%1 square centimeter", "%1 square centimeters")));

    addUnit(CustomUnit(AreaCategory, SquareMillimeter, 1e-06,
                       i18nc("area unit symbol", "mm²"),
                       i18nc("unit description in lists", "square millimeters"),
                       i18nc("unit synonyms for matching user input",
                             "square millimeter;square millimeters;mm²;mm/-2;mm^2;mm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square millimeters"),
                       ki18ncp("amount in units (integer)", "%1 square millimeter", "%1 square millimeters")));

    addUnit(CustomUnit(AreaCategory, SquareMicrometer, 1e-12,
                       i18nc("area unit symbol", "µm²"),
                       i18nc("unit description in lists", "square micrometers"),
                       i18nc("unit synonyms for matching user input",
                             "square micrometer;square micrometers;µm²;um²;µm/-2;µm^2;µm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square micrometers"),
                       ki18ncp("amount in units (integer)", "%1 square micrometer", "%1 square micrometers")));

    addUnit(CustomUnit(AreaCategory, SquareNanometer, 1e-18,
                       i18nc("area unit symbol", "nm²"),
                       i18nc("unit description in lists", "square nanometers"),
                       i18nc("unit synonyms for matching user input",
                             "square nanometer;square nanometers;nm²;nm/-2;nm^2;nm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square nanometers"),
                       ki18ncp("amount in units (integer)", "%1 square nanometer", "%1 square nanometers")));

    addUnit(CustomUnit(AreaCategory, SquarePicometer, 1e-24,
                       i18nc("area unit symbol", "pm²"),
                       i18nc("unit description in lists", "square picometers"),
                       i18nc("unit synonyms for matching user input",
                             "square picometer;square picometers;pm²;pm/-2;pm^2;pm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square picometers"),
                       ki18ncp("amount in units (integer)", "%1 square picometer", "%1 square picometers")));

    addUnit(CustomUnit(AreaCategory, SquareFemtometer, 1e-30,
                       i18nc("area unit symbol", "fm²"),
                       i18nc("unit description in lists", "square femtometers"),
                       i18nc("unit synonyms for matching user input",
                             "square femtometer;square femtometers;fm²;fm/-2;fm^2;fm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square femtometers"),
                       ki18ncp("amount in units (integer)", "%1 square femtometer", "%1 square femtometers")));

    addUnit(CustomUnit(AreaCategory, SquareAttometer, 1e-36,
                       i18nc("area unit symbol", "am²"),
                       i18nc("unit description in lists", "square attometers"),
                       i18nc("unit synonyms for matching user input",
                             "square attometer;square attometers;am²;am/-2;am^2;am2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square attometers"),
                       ki18ncp("amount in units (integer)", "%1 square attometer", "%1 square attometers")));

    addUnit(CustomUnit(AreaCategory, SquareZeptometer, 1e-42,
                       i18nc("area unit symbol", "zm²"),
                       i18nc("unit description in lists", "square zeptometers"),
                       i18nc("unit synonyms for matching user input",
                             "square zeptometer;square zeptometers;zm²;zm/-2;zm^2;zm2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square zeptometers"),
                       ki18ncp("amount in units (integer)", "%1 square zeptometer", "%1 square zeptometers")));

    addUnit(CustomUnit(AreaCategory, SquareYoctometer, 1e-48,
                       i18nc("area unit symbol", "ym²"),
                       i18nc("unit description in lists", "square yoctometers"),
                       i18nc("unit synonyms for matching user input",
                             "square yoctometer;square yoctometers;ym²;ym/-2;ym^2;ym2"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square yoctometers"),
                       ki18ncp("amount in units (integer)", "%1 square yoctometer", "%1 square yoctometers")));

    addCommonUnit(CustomUnit(AreaCategory, Acre, 4046.86,
                             i18nc("area unit symbol", "acre"),
                             i18nc("unit description in lists", "acres"),
                             i18nc("unit synonyms for matching user input", "acre;acres"),
                             symbolString,
                             ki18nc("amount in units (real)", "%1 acres"),
                             ki18ncp("amount in units (integer)", "%1 acre", "%1 acres")));

    addCommonUnit(CustomUnit(AreaCategory, SquareFoot, 0.092903,
                             i18nc("area unit symbol", "ft²"),
                             i18nc("unit description in lists", "square feet"),
                             i18nc("unit synonyms for matching user input",
                                   "square foot;square feet;ft²;square ft;sq foot;sq ft;sq feet;feet²"),
                             symbolString,
                             ki18nc("amount in units (real)", "%1 square feet"),
                             ki18ncp("amount in units (integer)", "%1 square foot", "%1 square feet")));

    addUnit(CustomUnit(AreaCategory, SquareInch, 0.00064516,
                       i18nc("area unit symbol", "in²"),
                       i18nc("unit description in lists", "square inches"),
                       i18nc("unit synonyms for matching user input",
                             "square inch;square inches;in²;square inch;square in;sq inches;sq inch;sq in;inch²"),
                       symbolString,
                       ki18nc("amount in units (real)", "%1 square inches"),
                       ki18ncp("amount in units (integer)", "%1 square inch", "%1 square inches")));

    addCommonUnit(CustomUnit(AreaCategory, SquareMile, 2.58999e+06,
                             i18nc("area unit symbol", "mi²"),
                             i18nc("unit description in lists", "square miles"),
                             i18nc("unit synonyms for matching user input",
                                   "square mile;square miles;mi²;square mi;sq miles;sq mile;sq mi;mile²"),
                             symbolString,
                             ki18nc("amount in units (real)", "%1 square miles"),
                             ki18ncp("amount in units (integer)", "%1 square mile", "%1 square miles")));
}
Пример #23
0
void UnitGroup::addUnits(std::vector<Unit*> units) {
	for (unsigned int i=0; i < units.size(); i++) {
		addUnit(units[i]);
	}
}
Пример #24
0
UnitGroup::UnitGroup(Unit* unit) {
	mSide = unit->getSide();
	mType = OBSERVED_GROUP;
	addUnit(unit);
}
Пример #25
0
void CCataloguer::addUnit(CUnit* unit) {
	addUnit(unit->type, unit->key);
}
/**
    \fn runVC1
    \brief Index VC1 stream
*/
bool TsIndexer::runVC1(const char *file,ADM_TS_TRACK *videoTrac)
{
    uint32_t temporal_ref,val;
    uint8_t buffer[50*1024];
    bool seq_found=false;

    TSVideo video;
    indexerData  data;
    dmxPacketInfo info;

    beginConsuming=0;
    listOfUnits.clear();

    if(!videoTrac) return false;
    if(videoTrac[0].trackType!=ADM_TS_VC1)
    {
        printf("[Ts Indexer] Only VC1 video supported\n");
        return false;
    }
    video.pid=videoTrac[0].trackPid;

    memset(&data,0,sizeof(data));
    data.picStructure=pictureFrame;

    string indexName=string(file);
    indexName=indexName+string(".idx2");
    index=qfopen(indexName,"wt");

    if(!index)
    {
        printf("[PsIndex] Cannot create %s\n",indexName.c_str());
        return false;
    }
    writeSystem(file,false);
    pkt=new tsPacketLinearTracker(videoTrac->trackPid, audioTracks);

    FP_TYPE append=FP_APPEND;
    pkt->open(file,append);
    data.pkt=pkt;
    fullSize=pkt->getSize();
    int startCode;
    decodingImage=false;
#define likely(x) x
#define unlikely(x) x
    while(1)
    {
        startCode=pkt->findStartCode();
        if(!pkt->stillOk()) break;

        switch(startCode)
        {
        case 0x0f: // sequence start

            if(seq_found)
            {
                pkt->getInfo(&thisUnit.packetInfo);
                thisUnit.consumedSoFar=pkt->getConsumed();
                addUnit(data,unitTypeSps,thisUnit,4);
                decodingImage=false;
                break;
            }
            // Verify it is high/advanced profile
            {
                int seqSize=0;
                tsGetBits bits(pkt);
                if(!bits.peekBits(1)) continue; // simple/main profile

                if(!decodeVC1Seq(bits,video)) continue;

                seqSize=bits.getConsumed();
                video.extraDataLength=seqSize+4+1;
                memcpy(video.extraData+4,bits.data,seqSize);
                // Add info so that ffmpeg is happy
                video.extraData[0]=0;
                video.extraData[1]=0;
                video.extraData[2]=1;
                video.extraData[3]=0xf;
                video.extraData[seqSize+4+0]=0;
                seq_found=1;
                // Hi Profile
                printf("[VC1] Found seq start with %d x %d video\n",(int)video.w,(int)video.h);
                printf("[VC1] FPS : %d\n",(int)video.fps);
                printf("[VC1] sequence header is %d bytes\n",(int)seqSize);
                writeVideo(&video,ADM_TS_VC1);
                writeAudio();
                qfprintf(index,"[Data]");

                pkt->getInfo(&thisUnit.packetInfo);
                thisUnit.consumedSoFar=pkt->getConsumed();
                addUnit(data,unitTypeSps,thisUnit,seqSize+4);
                decodingImage=false;

                continue;
            }
            break;
        case 0x0D: //  Picture start
        {
            int type;
            uint8_t buffer[4];
            uint32_t fType,sType;
            if(!seq_found)
            {
                continue;
                printf("[TsIndexer]No sequence start yet, skipping..\n");
            }
            pkt->getInfo(&thisUnit.packetInfo);
            thisUnit.consumedSoFar=pkt->getConsumed();

            tsGetBits bits(pkt);
            if(!decodeVC1Pic(bits,fType,sType)) continue;
            thisUnit.imageType=fType;
            updatePicStructure(video,sType);
            addUnit(data,unitTypePic,thisUnit,4);
            decodingImage=true;
            data.nbPics++;
        }
        break;
        default:
            break;
        }
    }

    printf("\n");
//        Mark(&data,&info,2);
    qfprintf(index,"\n[End]\n");
    qfprintf(index,"\n# Found %"PRIu32" images \n",data.nbPics); // Size
    qfprintf(index,"# Found %"PRIu32" frame pictures\n",video.frameCount); // Size
    qfprintf(index,"# Found %"PRIu32" field pictures\n",video.fieldCount); // Size
    qfclose(index);
    index=NULL;
    audioTracks=NULL;
    delete pkt;
    pkt=NULL;
    return 1;
}
std::shared_ptr<sbe::Unit> sbe::ModelManager::addUnit()
{
	return addUnit(50, 50);
}
Пример #28
0
vector<Squad*> SquadFileReader::readSquadList()
{
	string filename = getFilename("squads");
	
	//Read buildorder file
	ifstream inFile;

	stringstream ss;
	ss << getScriptPath();
	ss << "squads\\";
	ss << filename;
	string filePath = ss.str();

	inFile.open(filePath.c_str());

	if (!inFile)
	{
		Broodwar->printf("Unable to open file %s", filePath.c_str());
	}
	else
	{
		string line;
		char buffer[256];

		while (!inFile.eof())
		{
			inFile.getline(buffer, 100);
			if (buffer[0] != ';')
			{
				stringstream ss;
				ss << buffer;
				line = ss.str();
				
				Tokens token = split(line, "=");
				
				if (token.key == "Type")
				{
					type = token.value;
				}
				if (token.key == "Name")
				{
					name = token.value;
				}
				if (token.key == "MorphsTo")
				{
					morphsTo = getUnitType(token.value);
					//Broodwar->printf("FRU %s", morphsTo.getName().c_str());
				}
				if (token.key == "Priority")
				{
					priority = toInt(token.value);
					activePriority = priority;
				}
				if (token.key == "ActivePriority")
				{
					activePriority = toInt(token.value);
				}
				if (token.key == "OffenseType")
				{
					offType = token.value;
				}
				if (line == "<setup>")
				{
					createSquad();
				}
				if (token.key == "Unit")
				{
					addUnit(token.value);
				}
			}
		}
		inFile.close();
	}

	Broodwar->printf("Squad file %s loaded. %d squads added.", filePath.c_str(), (int)squads.size());
	
	return squads;
}
Пример #29
0
/**
    \fn runH264
    \brief Index H264 stream
*/  
bool TsIndexer::runH264(const char *file,ADM_TS_TRACK *videoTrac)
{

bool    seq_found=false;
bool    firstSps=true;

TSVideo video;
indexerData  data;    
dmxPacketInfo tmpInfo;
TS_PESpacket SEI_nal(0);
bool result=false;
bool bAppend=false;

    beginConsuming=0;
    listOfUnits.clear();

    printf("Starting H264 indexer\n");
    if(!videoTrac) return false;
    if(videoTrac[0].trackType!=ADM_TS_H264)
    {
        printf("[Ts Indexer] Only H264 video supported\n");
        return false;
    }
    video.pid=videoTrac[0].trackPid;

    memset(&data,0,sizeof(data));
    data.picStructure=pictureFrame;
    string indexName=string(file);
    indexName=indexName+string(".idx2");
    index=qfopen(indexName,(const char*)"wt");

    if(!index)
    {
        printf("[PsIndex] Cannot create %s\n",indexName.c_str());
        return false;
    }

    
    pkt=new tsPacketLinearTracker(videoTrac->trackPid, audioTracks);
    
    FP_TYPE append=FP_DONT_APPEND;
    if(true==ADM_probeSequencedFile(file))
    {
        if(true==GUI_Question("There are several files with sequential file names. Should they be all loaded ?"))
                bAppend=true;
    }
    if(bAppend==true)
        append=FP_APPEND;
    writeSystem(file,bAppend);
    pkt->open(file,append);
    data.pkt=pkt;
    fullSize=pkt->getSize();
    gui=createProcessing("Indexing",pkt->getSize());
    int lastRefIdc=0;
    bool keepRunning=true;
    //******************
    // 1 search SPS
    //******************
      while(keepRunning)
      {
        int startCode=pkt->findStartCode();

        if(startCode&0x80) continue; // Marker missing
        startCode&=0x1f;
        if(startCode!=NAL_SPS) continue;

          // Got SPS!
          
          uint32_t xA,xR;
          // Get info
          pkt->getInfo(&tmpInfo);
          // Read just enough...
          {
            SEI_nal.empty();
            uint32_t code=0xffff+0xffff0000;
            while(((code&0xffffff)!=1) && pkt->stillOk())
            {
                    uint8_t r=pkt->readi8();
                    code=(code<<8)+r;
                    SEI_nal.pushByte(r);
            }
            if(!pkt->stillOk()) break;;
            pkt->seek(tmpInfo.startAt,tmpInfo.offset-5);
            if (extractSPSInfo(SEI_nal.payload, SEI_nal.payloadSize-4,&spsInfo))
            {
              ADM_info("[TsIndexer] Found video %"PRIu32"x%"PRIu32", fps=%"PRIu32"\n",video.w,video.h,video.fps);
              ADM_info("[TsIndexer] SPS says %"PRIu32"x%"PRIu32"\n",spsInfo.width,spsInfo.height);
              seq_found=1;
              video.w=spsInfo.width;
              video.h=spsInfo.height;
              video.fps=spsInfo.fps1000;
              xA=spsInfo.darNum;
              xR=spsInfo.darDen;
              writeVideo(&video,ADM_TS_H264);
              writeAudio();
              qfprintf(index,"[Data]");
              // Rewind
              
              break;              
          };
        }
      }
      
        if(!seq_found) goto the_end;
        
        decodingImage=false;
    //******************
    // 2 Index
    //******************
        bool fourBytes;
      while(keepRunning)
      {
          fourBytes=false;
        int startCode=pkt->findStartCode2(fourBytes);
resume:
        if(!pkt->stillOk()) break;

        int startCodeLength=4;
        if(fourBytes==true) startCodeLength++;

//  1:0 2:Nal ref idc 5:Nal Type
        if(startCode&0x80) 
        {
            printf("[Ts] Nal Marker missing:%x\n",startCode);
            continue; // Marker missing
        }
        int fullStartCode=startCode;
        int ref=(startCode>>5)&3;

        startCode&=0x1f; // Ignore nal ref IDR
        
        aprintf("[%02x] Nal :0x%x,ref=%d,lastRef=%d at : %d \n",fullStartCode,startCode,ref,lastRefIdc,pkt->getConsumed()-beginConsuming);
        
          // Ignore multiple chunk of the same pic
          if((startCode==NAL_NON_IDR || startCode==NAL_IDR)&&decodingImage )
          {
            aprintf("Still capturing, ignore\n");
            continue;
          }
                
          switch(startCode)
                  {
                  case NAL_AU_DELIMITER:
                        {
                          aprintf("AU DELIMITER\n");
                          decodingImage = false;
                        }
                          break;
                  case NAL_SEI:
                        {
                        // Load the whole NAL
                            SEI_nal.empty();
                            uint32_t code=0xffff+0xffff0000;
                            while(((0xffffff&code)!=1) && pkt->stillOk())
                            {
                                uint8_t r=pkt->readi8();
                                code=(code<<8)+r;
                                SEI_nal.pushByte(r);
                            }
                            if(!pkt->stillOk()) goto resume;
                            aprintf("[SEI] Nal size :%d\n",SEI_nal.payloadSize);
                            if(SEI_nal.payloadSize>=7)
                                decodeSEI(SEI_nal.payloadSize-4,
                                    SEI_nal.payload,&(thisUnit.recoveryCount),&(thisUnit.imageStructure));
                            else 
                                    printf("[SEI] Too short size+4=%d\n",*(SEI_nal.payload));
                            startCode=pkt->readi8();
                            
                            decodingImage=false;
                            pkt->getInfo(&thisUnit.packetInfo);
                            thisUnit.consumedSoFar=pkt->getConsumed();
                            if(!addUnit(data,unitTypeSei,thisUnit,startCodeLength+SEI_nal.payloadSize+1))
                                keepRunning=false;
                            fourBytes=true;
                            goto resume;
                            }
                            break;
                  
                  case NAL_SPS:
                                decodingImage=false;
                                pkt->getInfo(&thisUnit.packetInfo);
                                if(firstSps)
                                {
                                    pkt->setConsumed(startCodeLength); // reset consume counter
                                    firstSps=false;
                                }
                                thisUnit.consumedSoFar=pkt->getConsumed();
                                if(!addUnit(data,unitTypeSps,thisUnit,startCodeLength))
                                    keepRunning=false;
                          break;

                  case NAL_IDR:
                  case NAL_NON_IDR:
                    {
#define NON_IDR_PRE_READ 8
                      aprintf("Pic start last ref:%d cur ref:%d nb=%d\n",lastRefIdc,ref,data.nbPics);
                      lastRefIdc=ref;
                        
                      uint8_t bufr[NON_IDR_PRE_READ+4];
                      uint8_t header[NON_IDR_PRE_READ+4];
                      
                   
                        pkt->read(NON_IDR_PRE_READ,bufr);
                        // unescape...
                        ADM_unescapeH264(NON_IDR_PRE_READ,bufr,header);
                        //
                        getBits bits(NON_IDR_PRE_READ,header);
                        int first_mb_in_slice,slice_type;

                        first_mb_in_slice= bits.getUEG();
                        slice_type= bits.getUEG31();
                        if(slice_type>9) 
                        {
                            printf("[TsIndexer] Bad slice type\n");
                        }
                        if(slice_type>4) slice_type-=5;
                        switch(slice_type)
                        {

                            case 0 : thisUnit.imageType=2;break; // P
                            case 1 : thisUnit.imageType=3;break; // B
                            case 2 : thisUnit.imageType=1;break; // I
                            default : thisUnit.imageType=2;break; // SP/SI
                        }
                      if(startCode==NAL_IDR) thisUnit.imageType=4; // IDR
                      aprintf("[>>>>>>>>] Pic Type %"PRIu32" Recovery %"PRIu32"\n",thisUnit.imageType,recoveryCount);
                      if(thisUnit.imageType==1 && !thisUnit.recoveryCount) 
                                thisUnit.imageType=4; //I  + Recovery=0 = IDR!

                      data.nbPics++;

                      

                      decodingImage=true;
                      pkt->getInfo(&thisUnit.packetInfo);
                      thisUnit.consumedSoFar=pkt->getConsumed();

                      if(!addUnit(data,unitTypePic,thisUnit,startCodeLength+NON_IDR_PRE_READ))
                          keepRunning=false;
                        // reset to default
                      thisUnit.imageStructure=pictureFrame;
                      thisUnit.recoveryCount=0xff;
                      pkt->invalidatePtsDts();
                    }
                  
                    break;
                  default:
                      break;
          }
      } // End while
      result=true;
the_end:
        printf("\n");
        qfprintf(index,"\n[End]\n");
        qfclose(index);
        index=NULL;
        audioTracks=NULL;
        delete pkt;
        pkt=NULL;
        return result; 
}
Пример #30
0
/**
 * Placing units on the initial positions
 */
static void firstDistribution (int x, int y) {
		addUnit(x, y, KING) ;
		addUnit(x + 1, y, PEASANT);
		addUnit(x + 2, y, KNIGHT);
		addUnit(x + 3, y, KNIGHT);
}