Exemple #1
0
BOOST_FIXTURE_TEST_CASE(test7, base_fixture_t)
{
  TStringList Lines;
  Lines.SetSorted(true);
  if (1)
  {
    Lines.SetDuplicates(dupAccept);
    Lines.Add(L"aaa");
    Lines.Add(L"aaa");
    Lines.Add(L"bbb");
    BOOST_CHECK(3 == Lines.GetCount());
    BOOST_CHECK(0 == Lines.IndexOf(L"aaa"));
    BOOST_CHECK(2 == Lines.IndexOf(L"bbb"));
  }
  Lines.Clear();
  if (1)
  {
    Lines.SetDuplicates(dupIgnore);
    Lines.Add(L"aaa");
    Lines.Add(L"aaa");
    Lines.Add(L"bbb");
    BOOST_CHECK(2 == Lines.GetCount());
    BOOST_CHECK(1 == Lines.IndexOf(L"bbb"));
  }
  Lines.Clear();
  if (1)
  {
    Lines.SetDuplicates(dupError);
    Lines.Add(L"aaa");
    Lines.Add(L"bbb");
    BOOST_CHECK_THROW(Lines.Add(L"aaa"), std::exception);
  }
}
Exemple #2
0
//---------------------------------------------------------------------------
String __fastcall TTarget::GetProjectPath(bool FallBack)
{
  TStringList *ProjectPathes = FormMain->FrameProject->GetProjects();
  int Index = ProjectPathes->IndexOf(ProjectPath);
  if (ProjectPath.IsEmpty() || (Index < 0)) {
    return FallBack && ProjectPathes->Count ? ProjectPathes->Strings[0] : EmptyStr;
  }
  return ProjectPath;
}
Exemple #3
0
void Defines::RemoveFromList(String keyList, String data)
{
        TStringList *s = GetList(keyList);
        if (s==0)
                return;
        int i=s->IndexOf(data);
        if (i>=0)
                s->Delete(i);
        SetList(keyList,s);
        delete s;
}
__fastcall TSrvAudioSettings::TSrvAudioSettings(TSrvResponse* Response)
	: TSrvMediaSettings(Response, MEDIA_NAME, MEDIA_DEFAULT,
		CFG_DEFAULT_AUDIO_ALLOWEXTENSIONS)
{
	this->FRequirePicture = Response->ReadBool(
		TSrvResponseValID(L"RequirePic", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_AUDIO_REQUIREPICTURE);

	//Format
	TStringList* SL = Response->ReadList(
		TSrvResponseValID("Formats", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_AUDIO_FORMATS);
	if (SL->IndexOf(L"mp3")>=0) {
		TSrvMediaFormat* obj = new TSrvMediaFormat;
		obj->Label = L"MPEG 3";
		obj->FileExt = L"mp3";
		obj->InternetMediaType = L"audio/mp3";
		obj->FFmpegOptions =
			Response->ReadString(TSrvResponseValID("MP3Options", MEDIA_NAME, MEDIA_DEFAULT),
			CFG_DEFAULT_MP3_OPTIONS, false);
		this->Formats->AddObject(L"mp3", obj);

		this->NativeExts->Add(L"mp3=mp3");
	}
	delete SL;
	if (this->Formats->Count == 0) throw ESrvResponseError(L"No valid audio formats found.");

	if (Response->ReadBool(
			TSrvResponseValID(L"NoTranscode"), CFG_DEFAULT_NO_TRANSCODE)
		|| Response->ReadBool(
			TSrvResponseValID(L"NoTranscode", MEDIA_NAME),
				CFG_DEFAULT_AUDIO_NO_TRANSCODE))
	{
			this->FAllNative = true;
	}
}
Exemple #5
0
//---------------------------------------------------------------------------
void __fastcall TFormOptsOplata::UpdateTable(TStringGrid* pTab)
{
  ClearTable(pTab);

  int i,j;
  TStringList* listIDStud = new TStringList;
  TStringList* listIDOpts = new TStringList;
  listIDOpts->Clear();
  listIDStud->Clear();

  ZMySqlQuery->SQL->Clear();
  ZMySqlQuery->SQL->Add("SELECT id FROM "+opts.DBStudTable+" WHERE deleted=0 AND grpid="+ToStr(AnsiString(IDGroup)));
  ZMySqlQuery->Active=true;
  for (i=1;i<=ZMySqlQuery->RecordCount;i++)
  {
    ZMySqlQuery->RecNo=i;
    listIDStud->Add(AnsiString(ZMySqlQuery->Fields->FieldByNumber(1)->AsString.ToInt()));
  }

  AnsiString IDOptsStr;
  for (i=0; i<listIDStud->Count; i++)
  {
    ZMySqlQuery->SQL->Clear();
    ZMySqlQuery->SQL->Add("SELECT idopts FROM "+opts.DBPayFacts+" WHERE deleted=0 AND idstud="+ToStr(listIDStud->Strings[i]));
    ZMySqlQuery->Active=true;

    for (j=1; j<=ZMySqlQuery->RecordCount;j++)
    {
      ZMySqlQuery->RecNo=j;
      IDOptsStr = ZMySqlQuery->Fields->FieldByNumber(1)->AsString;
      if (listIDOpts->IndexOf(IDOptsStr)==-1)
        listIDOpts->Add(IDOptsStr);
    }
  }


  int numCurRow=0;
  listIDs->Clear();
  listIDs->Add("NULL");
  listRealIDs->Clear();
  listRealIDs->Add("NULL");

for (j=0; j<listIDOpts->Count; j++)
{
  ZMySqlQuery->SQL->Clear();
  ZMySqlQuery->SQL->Add("SELECT id,idgroup,datestart,dateend,commoncountmoney FROM "+opts.DBPayOpts+" WHERE deleted=0 AND id="+ToStr(listIDOpts->Strings[j])+" ORDER BY datestart");
  ZMySqlQuery->Active=true;

  for (i=1;i<=ZMySqlQuery->RecordCount;i++)
  {
    ZMySqlQuery->RecNo=i;
    numCurRow++;
    pTab->RowCount=numCurRow+1;

    listIDs->Add(AnsiString(ZMySqlQuery->Fields->FieldByNumber(1)->AsString.ToInt()));
    pTab->Cells[0][numCurRow]=numCurRow;
    pTab->Cells[1][numCurRow]=WCGetTitleForKeyNum(GROUPS,ZMySqlQuery->Fields->FieldByNumber(2)->AsString.ToInt());
    pTab->Cells[2][numCurRow]=GetPeriodStr(ZMySqlQuery->Fields->FieldByNumber(3)->AsString,ZMySqlQuery->Fields->FieldByNumber(4)->AsString);
    pTab->Cells[3][numCurRow]=ZMySqlQuery->Fields->FieldByNumber(5)->AsString;

    pTab->Refresh();
  }
}
  delete listIDOpts;
  delete listIDStud;

  StrGridOptsClick(StrGridOpts);
}
__fastcall TSrvVideoSettings::TSrvVideoSettings(TSrvResponse* Response)
	: TSrvMediaSettings(Response, MEDIA_NAME, MEDIA_DEFAULT,
		CFG_DEFAULT_VIDEO_ALLOWEXTENSIONS)
{
	//Init pointers:
	this->FResolution = NULL;
	this->FThumbResolution = NULL;
	this->FBigThumbResolution = NULL;

	this->FYouTubeFormats = new TStringList;

	//Default values:
	this->FMkvAsDivx = false;

//Parse server info
	//ResizeType
	this->FResizeType = (TSRResizeType)Response->ReadEnum(
		TSrvResponseValID(L"ResizeType", MEDIA_NAME, MEDIA_DEFAULT),
		MIN_TSRResizeType, MAX_TSRResizeType,
		CFG_DEFAULT_RESIZETYPE);

	//VideoResolution
	this->FResolution = Response->ReadResolution(
		TSrvResponseValID(L"Resolution", MEDIA_NAME, MEDIA_DEFAULT, L"VideoResolution"),
		CFG_DEFAULT_VIDEO_RESOLUTION);
	//BigThumbResolution
	this->FBigThumbResolution = Response->ReadResolution(
		TSrvResponseValID(L"BigThumbResolution", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_BIGTHUMBRESOLUTION);
	//ThumbResolution
	this->FThumbResolution = Response->ReadResolution(
		TSrvResponseValID(L"ThumbResolution", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_THUMBRESOLUTION);


	// re-transcode MP4?
	this->FReTranscodeMP4 = Response->ReadBool(
		TSrvResponseValID(L"ReTranscodeMP4", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_RETRANSCODE_MP4);

	//ThumbPadding
	this->FThumbPadding = Response->ReadBool(
		TSrvResponseValID(L"ThumbPadding", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_THUMBPADDING);
	//ThumbCount
	this->FThumbCount= Response->ReadInt(
		TSrvResponseValID(L"ThumbCount", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_THUMBNAIL_COUNT);
	//BigThumbCount
	this->FThumbCountBig= Response->ReadInt(
		TSrvResponseValID(L"ThumbCountBig", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_THUMBNAIL_COUNT_BIG);
	//AllowYTDownload
	this->FAllowYTDownload = Response->ReadBool(
		TSrvResponseValID(L"AllowYTDownload", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_ALLOWYTDOWNLOAD);
	//AllowYTEmbed
	this->FAllowYTEmbed = Response->ReadBool(
		TSrvResponseValID(L"AllowYTEmbed", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_ALLOWYTEMBED);
	//YTDownloadThumbnails
	this->FYTDownloadThumbnails = Response->ReadBool(
		TSrvResponseValID(L"YTDownloadThumbnails", MEDIA_NAME, MEDIA_DEFAULT),
		CFG_DEFAULT_YT_DOWNLOAD_THUMBNAILS);
	//WatermarkEnabled
	this->FWatermarkEnabled = Response->ReadBool(
		TSrvResponseValID(L"WatermarkEnabled", MEDIA_NAME, MEDIA_DEFAULT),
		CUSTOM_DEFAULT_WATERMARK_ENABLED);
	//WatermarkPosition
	this->FWatermarkPosition = StrToWatermarkPos(Response->ReadString(
		TSrvResponseValID(L"WatermarkPosition", MEDIA_NAME, MEDIA_DEFAULT),
		CUSTOM_DEFAULT_WATERMARK_POSITION));
	//WatermarkOffsetX
	this->FWatermarkOffsetX = Response->ReadInt(
		TSrvResponseValID(L"WatermarkOffsetX", MEDIA_NAME, MEDIA_DEFAULT),
		CUSTOM_DEFAULT_WATERMARK_OFFSET_X);
	//WatermarkOffsetY
	this->FWatermarkOffsetY = Response->ReadInt(
		TSrvResponseValID(L"WatermarkOffsetY", MEDIA_NAME, MEDIA_DEFAULT),
		CUSTOM_DEFAULT_WATERMARK_OFFSET_Y);

	//Format
	TStringList* SL = Response->ReadList(
		TSrvResponseValID("Formats", MEDIA_NAME, MEDIA_DEFAULT, "VideoFormat"),
		CFG_DEFAULT_VIDEO_FORMATS);
	if (SL->IndexOf(L"flv")>=0) {
		TSrvMediaFormat* obj = new TSrvMediaFormat;
		obj->Label = L"Flash Video";
		obj->FileExt = L"flv";
		obj->InternetMediaType = L"video/flv";
		obj->FFmpegOptions =
			Response->ReadString(
				TSrvResponseValID("FLVOptions", MEDIA_NAME, MEDIA_DEFAULT),
				CFG_DEFAULT_FLV_OPTIONS, false);
		this->Formats->AddObject(L"flv", obj);

		TYouTubeFormat* yf = new TYouTubeFormat;
		yf->Label = L"Normal";
		yf->QualityLevel = YT_QUALITYLEVEL_NORMAL;
		this->YouTubeFormats->AddObject(L"0", yf);
		if (!this->FWatermarkEnabled) {
			this->NativeExts->Add(L"flv=flv");
		}
	}
	if (SL->IndexOf(L"divx")>=0) {
		TSrvMediaFormat* obj = new TSrvMediaFormat;
		obj->Label = L"DivX";
		obj->FileExt = L"divx";
		obj->InternetMediaType = L"video/divx";
		obj->FFmpegOptions =
			Response->ReadString(TSrvResponseValID("DivXOptions", MEDIA_NAME, MEDIA_DEFAULT),
			CFG_DEFAULT_DIVX_OPTIONS, false);
		this->Formats->AddObject(L"divx", obj);
		if (!this->FWatermarkEnabled) {
			this->NativeExts->Add(L"divx=divx");
        }
		//Allow native MKV upload
		if (Response->ReadBool(
			TSrvResponseValID(L"MkvAsDivx", MEDIA_NAME, MEDIA_DEFAULT),
				CFG_DEFAULT_MKVASDIVX))
		{
			if (!this->FWatermarkEnabled) {
				this->NativeExts->Add(L"mkv=divx");
            }
			this->FMkvAsDivx = true;
        }
	}
	if (SL->IndexOf(L"mp4")>=0) {
		TSrvMediaFormat* obj = new TSrvMediaFormat;
		obj->Label = L"MPEG4";
		obj->FileExt = L"mp4";
		obj->InternetMediaType = L"video/mp4";
		obj->FFmpegOptions =
			Response->ReadString(TSrvResponseValID("MP4Options", MEDIA_NAME, MEDIA_DEFAULT),
			CFG_DEFAULT_MP4_OPTIONS, false);
		obj->EnablePass2 = true;
		obj->Preset = L"libx264-hq";
		obj->PresetPass1 = L"libx264-fastfirstpass";
		obj->PresetPass2 = L"libx264-hq";
		this->Formats->AddObject(L"mp4", obj);

		TYouTubeFormat* yf = new TYouTubeFormat;
		yf->Label = L"High Definition";
		yf->QualityLevel = YT_QUALITYLEVEL_HD;
		this->YouTubeFormats->AddObject(L"0", yf);

		if(!this->FReTranscodeMP4 && !this->FWatermarkEnabled) {
			this->NativeExts->Add(L"mp4=mp4");
        }
	}
	delete SL;
	if (this->Formats->Count == 0) throw ESrvResponseError(L"No valid video formats found.");

	if (Response->ReadBool(
			TSrvResponseValID(L"NoTranscode"), CFG_DEFAULT_NO_TRANSCODE)
		|| Response->ReadBool(
			TSrvResponseValID(L"NoTranscode", MEDIA_NAME),
				CFG_DEFAULT_VIDEO_NO_TRANSCODE))
	{
			this->FAllNative = true;
	}
}
//---------------------------------------------------------------------------
TStrings * __fastcall TGUIConfiguration::GetLocales()
{
  UnicodeString LocalesExts;
  TStringList * Exts = new TStringList();
  try
  {
    Exts->Sorted = true;
    Exts->CaseSensitive = false;

    int FindAttrs = faReadOnly | faArchive;
    TSearchRec SearchRec;
    bool Found;

    Found = (bool)(FindFirst(ChangeFileExt(ModuleFileName(), L".*"),
      FindAttrs, SearchRec) == 0);
    try
    {
      UnicodeString Ext;
      while (Found)
      {
        Ext = ExtractFileExt(SearchRec.Name).UpperCase();
        if ((Ext.Length() >= 3) && (Ext != L".EXE") && (Ext != L".COM") &&
            (Ext != L".DLL") && (Ext != L".INI"))
        {
          Ext = Ext.SubString(2, Ext.Length() - 1);
          LocalesExts += Ext;
          Exts->Add(Ext);
        }
        Found = (FindNextChecked(SearchRec) == 0);
      }
    }
    __finally
    {
      FindClose(SearchRec);
    }

    if (FLastLocalesExts != LocalesExts)
    {
      FLastLocalesExts = LocalesExts;
      FLocales->Clear();

      TLanguages * Langs = Languages();
      int Ext, Index, Count;
      wchar_t LocaleStr[255];
      LCID Locale;

      Count = Langs->Count;
      Index = -1;
      while (Index < Count)
      {
        if (Index >= 0)
        {
          Locale = Langs->LocaleID[Index];
          Ext = Exts->IndexOf(Langs->Ext[Index]);
          if (Ext < 0)
          {
            Ext = Exts->IndexOf(Langs->Ext[Index].SubString(1, 2));
            if (Ext >= 0)
            {
              Locale = MAKELANGID(PRIMARYLANGID(Locale), SUBLANG_DEFAULT);
            }
          }

          if (Ext >= 0)
          {
            Exts->Objects[Ext] = reinterpret_cast<TObject*>(Locale);
          }
          else
          {
            Locale = 0;
          }
        }
        else
        {
          Locale = InternalLocale();
        }

        if (Locale)
        {
          UnicodeString Name;
          GetLocaleInfo(Locale, LOCALE_SENGLANGUAGE,
            LocaleStr, LENOF(LocaleStr));
          Name = LocaleStr;
          Name += L" - ";
          // LOCALE_SNATIVELANGNAME
          GetLocaleInfo(Locale, LOCALE_SLANGUAGE,
            LocaleStr, LENOF(LocaleStr));
          Name += LocaleStr;
          FLocales->AddObject(Name, reinterpret_cast<TObject*>(Locale));
        }
        Index++;
      }

      for (int Index = 0; Index < Exts->Count; Index++)
      {
        if ((Exts->Objects[Index] == NULL) &&
            (Exts->Strings[Index].Length() == 3) &&
            SameText(Exts->Strings[Index].SubString(1, 2), AdditionaLanguagePrefix))
        {
          UnicodeString LangName = GetFileFileInfoString(L"LangName",
            ChangeFileExt(ModuleFileName(), UnicodeString(L".") + Exts->Strings[Index]));
          if (!LangName.IsEmpty())
          {
            FLocales->AddObject(LangName, reinterpret_cast<TObject*>(
              AdditionaLanguageMask + Exts->Strings[Index][3]));
          }
        }
      }
    }
  }
  __finally
  {
    delete Exts;
  }

  return FLocales;
}