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); } }
//--------------------------------------------------------------------------- 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; }
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; } }
//--------------------------------------------------------------------------- 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; }