New upstream version 25.0.3+dfsg1
This commit is contained in:
parent
04fe0efc67
commit
8b2e5f2130
569 changed files with 62491 additions and 5875 deletions
|
|
@ -35,4 +35,5 @@ Transform="Transformació de text"
|
|||
Transform.None="Cap"
|
||||
Transform.Uppercase="Majúscula"
|
||||
Transform.Lowercase="Minúscula"
|
||||
Transform.Startcase="Primera lletra en majúscula"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Transformace textu"
|
|||
Transform.None="Žádná"
|
||||
Transform.Uppercase="VELKÝMI PÍSMENY"
|
||||
Transform.Lowercase="malými písmeny"
|
||||
Transform.Startcase="Počáteční velikost"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Teksttransformation"
|
|||
Transform.None="Ingen"
|
||||
Transform.Uppercase="Versaler"
|
||||
Transform.Lowercase="Minuskler"
|
||||
Transform.Startcase="Hvert ords startbogstav med versal"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Texttransformation"
|
|||
Transform.None="Keine"
|
||||
Transform.Uppercase="Großbuchstaben"
|
||||
Transform.Lowercase="Kleinbuchstaben"
|
||||
Transform.Startcase="Erster Buchstabe großgeschrieben"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,3 +35,4 @@ Transform="Text Transform"
|
|||
Transform.None="None"
|
||||
Transform.Uppercase="Uppercase"
|
||||
Transform.Lowercase="Lowercase"
|
||||
Transform.Startcase="Start Case"
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Transformación de Texto"
|
|||
Transform.None="Ninguno"
|
||||
Transform.Uppercase="Mayúscula"
|
||||
Transform.Lowercase="Minúscula"
|
||||
Transform.Startcase="Primera letra en mayúscula"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Testu-eraldaketa"
|
|||
Transform.None="Gabe"
|
||||
Transform.Uppercase="Hizki-larriak"
|
||||
Transform.Lowercase="Hizki-xeheak"
|
||||
Transform.Startcase="Hitz guztien lehenengo letra maiuskulaz"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Tekstin muunnos"
|
|||
Transform.None="Ei mitään"
|
||||
Transform.Uppercase="Isot kirjaimet"
|
||||
Transform.Lowercase="Pienet kirjaimet"
|
||||
Transform.Startcase="Sanan alkukirjain"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Transformer le texte"
|
|||
Transform.None="Aucune"
|
||||
Transform.Uppercase="Majuscules"
|
||||
Transform.Lowercase="Minuscules"
|
||||
Transform.Startcase="Capitalisation des mots"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Transformación do texto"
|
|||
Transform.None="Ningunha"
|
||||
Transform.Uppercase="Maiúsculas"
|
||||
Transform.Lowercase="Minúsculas"
|
||||
Transform.Startcase="Primeira letra en maiúscula"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Szöveg alakítása"
|
|||
Transform.None="Egyik sem"
|
||||
Transform.Uppercase="Nagybetűs"
|
||||
Transform.Lowercase="Kisbetűs"
|
||||
Transform.Startcase="Nagy kezdőbetű"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Trasformazione del testo"
|
|||
Transform.None="Nessuna"
|
||||
Transform.Uppercase="In lettere maiuscole"
|
||||
Transform.Lowercase="In lettere minuscole"
|
||||
Transform.Startcase="Avvia Caso"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="テキスト変換"
|
|||
Transform.None="未設定"
|
||||
Transform.Uppercase="大文字"
|
||||
Transform.Lowercase="小文字"
|
||||
Transform.Startcase="各単語の最初の一文字を大文字にする"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="ტექსტის გარდაქმნა"
|
|||
Transform.None="არცერთი"
|
||||
Transform.Uppercase="მთავრული"
|
||||
Transform.Lowercase="ნუსხური"
|
||||
Transform.Startcase="პირველი ასოს გამთავრულება"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="글자 변환"
|
|||
Transform.None="없음"
|
||||
Transform.Uppercase="대문자"
|
||||
Transform.Lowercase="소문자"
|
||||
Transform.Startcase="첫 글자를 대문자로"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Tekst transformering"
|
|||
Transform.None="Ingen"
|
||||
Transform.Uppercase="Store bokstaver"
|
||||
Transform.Lowercase="Små bokstaver"
|
||||
Transform.Startcase="Stor forbokstav i alle ord"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Tekst transformatie"
|
|||
Transform.None="Geen"
|
||||
Transform.Uppercase="Hoofdletters"
|
||||
Transform.Lowercase="Kleine letters"
|
||||
Transform.Startcase="Beginletters hoofdletter"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Przekształcanie tekstu"
|
|||
Transform.None="Brak"
|
||||
Transform.Uppercase="Wielkie litery"
|
||||
Transform.Lowercase="Małe litery"
|
||||
Transform.Startcase="Wielkie Pierwsze Litery"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Transformação"
|
|||
Transform.None="Nenhuma"
|
||||
Transform.Uppercase="Letras Maiúsculas"
|
||||
Transform.Lowercase="Letras Minúsculas"
|
||||
Transform.Startcase="Capitular"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
TextGDIPlus="Texto (GDI+)"
|
||||
Font="Fonte"
|
||||
Text="Texto"
|
||||
ReadFromFile="Ler de um ficheiro"
|
||||
TextFile="Ficheiro Texto (UTF-8)"
|
||||
Filter.TextFiles="Ficheiros Texto"
|
||||
Filter.AllFiles="Todos os Ficheiros"
|
||||
Color="Cor"
|
||||
Opacity="Opacidade"
|
||||
|
|
@ -7,6 +11,8 @@ Gradient="Gradiente"
|
|||
Gradient.Color="Cor do Gradiente"
|
||||
Gradient.Opacity="Opacidade do Gradiente"
|
||||
Gradient.Direction="Direção do Gradiente"
|
||||
BkColor="Cor de Fundo"
|
||||
BkOpacity="Opacidade do Fundo"
|
||||
Alignment="Alinhamento"
|
||||
Alignment.Left="Esquerda"
|
||||
Alignment.Center="Centro"
|
||||
|
|
@ -14,6 +20,15 @@ Alignment.Right="Direita"
|
|||
Vertical="Vertical"
|
||||
VerticalAlignment="Alinhamento Vertical"
|
||||
VerticalAlignment.Top="Topo"
|
||||
VerticalAlignment.Bottom="Fundo"
|
||||
Outline="Contorno"
|
||||
Outline.Size="Espessura do Contorno"
|
||||
Outline.Color="Cor do Contorno"
|
||||
Outline.Opacity="Opacidade do Contorno"
|
||||
Width="Largura"
|
||||
Height="Altura"
|
||||
Transform="Transformar Texto"
|
||||
Transform.None="Nenhum"
|
||||
Transform.Uppercase="Maiúsculas"
|
||||
Transform.Lowercase="Minúsculas"
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ Width="Ширина"
|
|||
Height="Высота"
|
||||
Transform="Преобразование текста"
|
||||
Transform.None="Нет"
|
||||
Transform.Uppercase="Верхний регистр"
|
||||
Transform.Lowercase="Нижний регистр"
|
||||
Transform.Uppercase="Заглавные буквы"
|
||||
Transform.Lowercase="Строчные буквы"
|
||||
Transform.Startcase="Каждое слово с заглавной"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Transformácia textu"
|
|||
Transform.None="Žiadna"
|
||||
Transform.Uppercase="Veľké písmená"
|
||||
Transform.Lowercase="Malé písmená"
|
||||
Transform.Startcase="Veľkosť Začiatočných Písmen"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Preoblika besedila"
|
|||
Transform.None="Brez"
|
||||
Transform.Uppercase="Velike črke"
|
||||
Transform.Lowercase="Male črke"
|
||||
Transform.Startcase="Velika začetnica"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Textomvandling"
|
|||
Transform.None="Ingen"
|
||||
Transform.Uppercase="Versaler"
|
||||
Transform.Lowercase="Gemener"
|
||||
Transform.Startcase="Första bokstavens skiftläge"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Metin Dönüşümü"
|
|||
Transform.None="Yok"
|
||||
Transform.Uppercase="Büyük harf"
|
||||
Transform.Lowercase="Küçük harf"
|
||||
Transform.Startcase="Davayı Başlat"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="Перетворення тексту"
|
|||
Transform.None="Немає"
|
||||
Transform.Uppercase="До верхнього регістру"
|
||||
Transform.Lowercase="До нижнього регістру"
|
||||
Transform.Startcase="Почати звернення"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="文本转换"
|
|||
Transform.None="无"
|
||||
Transform.Uppercase="大写"
|
||||
Transform.Lowercase="小写"
|
||||
Transform.Startcase="每词首字母大写"
|
||||
|
||||
|
|
|
|||
|
|
@ -35,4 +35,5 @@ Transform="文字變型"
|
|||
Transform.None="無"
|
||||
Transform.Uppercase="大寫"
|
||||
Transform.Lowercase="小寫"
|
||||
Transform.Startcase="起始大小寫"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <locale>
|
||||
|
||||
using namespace std;
|
||||
using namespace Gdiplus;
|
||||
|
|
@ -80,6 +81,7 @@ using namespace Gdiplus;
|
|||
#define S_TRANSFORM_NONE 0
|
||||
#define S_TRANSFORM_UPPERCASE 1
|
||||
#define S_TRANSFORM_LOWERCASE 2
|
||||
#define S_TRANSFORM_STARTCASE 3
|
||||
|
||||
#define T_(v) obs_module_text(v)
|
||||
#define T_FONT T_("Font")
|
||||
|
|
@ -123,6 +125,7 @@ using namespace Gdiplus;
|
|||
#define T_TRANSFORM_NONE T_("Transform.None")
|
||||
#define T_TRANSFORM_UPPERCASE T_("Transform.Uppercase")
|
||||
#define T_TRANSFORM_LOWERCASE T_("Transform.Lowercase")
|
||||
#define T_TRANSFORM_STARTCASE T_("Transform.Startcase")
|
||||
|
||||
/* clang-format on */
|
||||
|
||||
|
|
@ -657,10 +660,28 @@ void TextSource::LoadFileText()
|
|||
|
||||
void TextSource::TransformText()
|
||||
{
|
||||
const locale loc = locale(obs_get_locale());
|
||||
const ctype<wchar_t> &f = use_facet<ctype<wchar_t>>(loc);
|
||||
if (text_transform == S_TRANSFORM_UPPERCASE)
|
||||
transform(text.begin(), text.end(), text.begin(), towupper);
|
||||
f.toupper(&text[0], &text[0] + text.size());
|
||||
else if (text_transform == S_TRANSFORM_LOWERCASE)
|
||||
transform(text.begin(), text.end(), text.begin(), towlower);
|
||||
f.tolower(&text[0], &text[0] + text.size());
|
||||
else if (text_transform == S_TRANSFORM_STARTCASE) {
|
||||
bool upper = true;
|
||||
for (wstring::iterator it = text.begin(); it != text.end();
|
||||
++it) {
|
||||
const wchar_t upper_char = f.toupper(*it);
|
||||
const wchar_t lower_char = f.tolower(*it);
|
||||
if (upper && lower_char != upper_char) {
|
||||
upper = false;
|
||||
*it = upper_char;
|
||||
} else if (lower_char != upper_char) {
|
||||
*it = lower_char;
|
||||
} else {
|
||||
upper = iswspace(*it);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#define obs_data_get_uint32 (uint32_t) obs_data_get_int
|
||||
|
|
@ -951,6 +972,8 @@ static obs_properties_t *get_properties(void *data)
|
|||
S_TRANSFORM_UPPERCASE);
|
||||
obs_property_list_add_int(p, T_TRANSFORM_LOWERCASE,
|
||||
S_TRANSFORM_LOWERCASE);
|
||||
obs_property_list_add_int(p, T_TRANSFORM_STARTCASE,
|
||||
S_TRANSFORM_STARTCASE);
|
||||
|
||||
obs_properties_add_bool(props, S_VERTICAL, T_VERTICAL);
|
||||
obs_properties_add_color(props, S_COLOR, T_COLOR);
|
||||
|
|
@ -1012,13 +1035,43 @@ static obs_properties_t *get_properties(void *data)
|
|||
return props;
|
||||
}
|
||||
|
||||
static void defaults(obs_data_t *settings, int ver)
|
||||
{
|
||||
obs_data_t *font_obj = obs_data_create();
|
||||
obs_data_set_default_string(font_obj, "face", "Arial");
|
||||
obs_data_set_default_int(font_obj, "size", ver == 1 ? 36 : 256);
|
||||
|
||||
obs_data_set_default_obj(settings, S_FONT, font_obj);
|
||||
obs_data_set_default_string(settings, S_ALIGN, S_ALIGN_LEFT);
|
||||
obs_data_set_default_string(settings, S_VALIGN, S_VALIGN_TOP);
|
||||
obs_data_set_default_int(settings, S_COLOR, 0xFFFFFF);
|
||||
obs_data_set_default_int(settings, S_OPACITY, 100);
|
||||
obs_data_set_default_int(settings, S_GRADIENT_COLOR, 0xFFFFFF);
|
||||
obs_data_set_default_int(settings, S_GRADIENT_OPACITY, 100);
|
||||
obs_data_set_default_double(settings, S_GRADIENT_DIR, 90.0);
|
||||
obs_data_set_default_int(settings, S_BKCOLOR, 0x000000);
|
||||
obs_data_set_default_int(settings, S_BKOPACITY, 0);
|
||||
obs_data_set_default_int(settings, S_OUTLINE_SIZE, 2);
|
||||
obs_data_set_default_int(settings, S_OUTLINE_COLOR, 0xFFFFFF);
|
||||
obs_data_set_default_int(settings, S_OUTLINE_OPACITY, 100);
|
||||
obs_data_set_default_int(settings, S_CHATLOG_LINES, 6);
|
||||
obs_data_set_default_bool(settings, S_EXTENTS_WRAP, true);
|
||||
obs_data_set_default_int(settings, S_EXTENTS_CX, 100);
|
||||
obs_data_set_default_int(settings, S_EXTENTS_CY, 100);
|
||||
obs_data_set_default_int(settings, S_TRANSFORM, S_TRANSFORM_NONE);
|
||||
|
||||
obs_data_release(font_obj);
|
||||
};
|
||||
|
||||
bool obs_module_load(void)
|
||||
{
|
||||
obs_source_info si = {};
|
||||
si.id = "text_gdiplus";
|
||||
si.type = OBS_SOURCE_TYPE_INPUT;
|
||||
si.output_flags = OBS_SOURCE_VIDEO | OBS_SOURCE_CUSTOM_DRAW;
|
||||
si.output_flags = OBS_SOURCE_VIDEO | OBS_SOURCE_CUSTOM_DRAW |
|
||||
OBS_SOURCE_CAP_OBSOLETE;
|
||||
si.get_properties = get_properties;
|
||||
si.icon_type = OBS_ICON_TYPE_TEXT;
|
||||
|
||||
si.get_name = [](void *) { return obs_module_text("TextGDIPlus"); };
|
||||
si.create = [](obs_data_t *settings, obs_source_t *source) {
|
||||
|
|
@ -1033,33 +1086,7 @@ bool obs_module_load(void)
|
|||
si.get_height = [](void *data) {
|
||||
return reinterpret_cast<TextSource *>(data)->cy;
|
||||
};
|
||||
si.get_defaults = [](obs_data_t *settings) {
|
||||
obs_data_t *font_obj = obs_data_create();
|
||||
obs_data_set_default_string(font_obj, "face", "Arial");
|
||||
obs_data_set_default_int(font_obj, "size", 36);
|
||||
|
||||
obs_data_set_default_obj(settings, S_FONT, font_obj);
|
||||
obs_data_set_default_string(settings, S_ALIGN, S_ALIGN_LEFT);
|
||||
obs_data_set_default_string(settings, S_VALIGN, S_VALIGN_TOP);
|
||||
obs_data_set_default_int(settings, S_COLOR, 0xFFFFFF);
|
||||
obs_data_set_default_int(settings, S_OPACITY, 100);
|
||||
obs_data_set_default_int(settings, S_GRADIENT_COLOR, 0xFFFFFF);
|
||||
obs_data_set_default_int(settings, S_GRADIENT_OPACITY, 100);
|
||||
obs_data_set_default_double(settings, S_GRADIENT_DIR, 90.0);
|
||||
obs_data_set_default_int(settings, S_BKCOLOR, 0x000000);
|
||||
obs_data_set_default_int(settings, S_BKOPACITY, 0);
|
||||
obs_data_set_default_int(settings, S_OUTLINE_SIZE, 2);
|
||||
obs_data_set_default_int(settings, S_OUTLINE_COLOR, 0xFFFFFF);
|
||||
obs_data_set_default_int(settings, S_OUTLINE_OPACITY, 100);
|
||||
obs_data_set_default_int(settings, S_CHATLOG_LINES, 6);
|
||||
obs_data_set_default_bool(settings, S_EXTENTS_WRAP, true);
|
||||
obs_data_set_default_int(settings, S_EXTENTS_CX, 100);
|
||||
obs_data_set_default_int(settings, S_EXTENTS_CY, 100);
|
||||
obs_data_set_default_int(settings, S_TRANSFORM,
|
||||
S_TRANSFORM_NONE);
|
||||
|
||||
obs_data_release(font_obj);
|
||||
};
|
||||
si.get_defaults = [](obs_data_t *settings) { defaults(settings, 1); };
|
||||
si.update = [](void *data, obs_data_t *settings) {
|
||||
reinterpret_cast<TextSource *>(data)->Update(settings);
|
||||
};
|
||||
|
|
@ -1070,7 +1097,15 @@ bool obs_module_load(void)
|
|||
reinterpret_cast<TextSource *>(data)->Render();
|
||||
};
|
||||
|
||||
obs_source_info si_v2 = si;
|
||||
si_v2.version = 2;
|
||||
si_v2.output_flags &= ~OBS_SOURCE_CAP_OBSOLETE;
|
||||
si_v2.get_defaults = [](obs_data_t *settings) {
|
||||
defaults(settings, 2);
|
||||
};
|
||||
|
||||
obs_register_source(&si);
|
||||
obs_register_source(&si_v2);
|
||||
|
||||
const GdiplusStartupInput gdip_input;
|
||||
GdiplusStartup(&gdip_token, &gdip_input, nullptr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue