Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším
… více »Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.
Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.
Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.
Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.
IKEA a XBOX představují kolekci YXSTABY (pdf). Ta přináší designová a praktická řešení, díky nimž se prostor pro hraní během sekundy promění v útulný a harmonický domov.
Jonathan Thomas oznámil vydání verze 4.0 nelineární střižny OpenShot. Nově podporuje nahrávání obrazu a zvuku, vylepšuje uživatelské rozhraní, mj. color grading, přidává další efekty a mnoho dalšího (seznam změn).
Proběhlo hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu si odhlasovali zodpovědné využívání generativní umělé inteligence.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří vývoj Flatpaku částkou 508 640 eur.
Byla vydána první veřejná verze v7.0-mk2 projektu Multikernel (mklinux), který umožňuje spouštět více nezávislých linuxových jader současně na jednom stroji bez hypervizoru.
Po dokončení šesté části seriálu už víme, jak video zařízení nastavit a jak tam a zpět přenášet snímky. Je však známo, že uživatelé nejsou nikdy spokojení; nestačí jim, že mohou z kamery vidět video, hned by si chtěli hrát s parametry jako jas, kontrast atd. Takové úpravy mohou být prováděny ve video aplikaci, ale pokud to hardware podporuje, tak má své výhody je provádět rovnou v hardwaru. Například úprava jasu může znamenat ztrátu dynamického rozsahu, pokud se provádí až po přenosu. Naproti tomu hardwarová úprava umožňuje zachování plného rozsahu, kterého je senzor schopen. Hardwarové úpravy samozřejmě také ulehčí procesoru hostitelského systému.
Současný hardware mívá možnost nastavovat za běhu velkou spoustu parametrů. Konkrétní funkce těchto parametrů se však zařízení od zařízení výrazně liší. I tak jednoduchá úprava jako "jas" může zahrnovat přímočaré nastavení registru nebo také o dost komplexnější změnu nějaké obskurní transformační matice. Bylo by fajn co nejvíce těchto detailů před aplikací skrýt, ale má to své meze. Příliš abstraktní rozhraní by mohlo znemožnit plné využití možností hardwaru.
Ovládací rozhraní V4L2 se snaží věci co nejvíce zjednodušit a zároveň umožnit plné využití hardwaru. Začíná definicí standardních názvů ovládacích funkcí; patří mezi ně V4L2_CID_BRIGHTNESS, V4L2_CID_CONTRAST, V4L2_CID_SATURATION a mnoho dalších. Máme také booleovské ovládací prvky funkcí jako vyvážení bílé, horizontálního a vertikálního zrcadlení atd. Kompletní seznam předdefinovaných ID hodnot ovládacích prvků najdete ve specifikaci V4L2 API. K dispozici je také možnost ovládacího prvku specifického pro ovladač, ale ty budou zjevně používány jen specializovanými aplikacemi. Soukromé ovládací prvky začínají u V4L2_CID_PRIVATE_BASE.
Jako obvykle poskytuje API V4L2 mechanismus, pomocí kterého může aplikace ovládací prvky snadno očíslovat. Pokud to chce provést, provede ioctl() volání, která se dostanou do V4L2 ovladače prostřednictvím zpětného volání vidioc_queryctrl():
int (*vidioc_queryctrl)(struct file *file, void *private_data,
struct v4l2_queryctrl *qc);
Za normálních okolností ovladač zaplní strukturu qc informacemi o požadovaném ovládacím prvku nebo, pokud není ovládací prvek podporovaný, vrátí EINVAL. Tato struktura má několik polí:
struct v4l2_queryctrl
{
__u32 id;
enum v4l2_ctrl_type type;
__u8 name[32];
__s32 minimum;
__s32 maximum;
__s32 step;
__s32 default_value;
__u32 flags;
__u32 reserved[2];
};
Ovládací prvek, o který se jedná, bude předán prostřednictvím id. Aplikace může poskytnout ID ovládacího prvku s nastaveným bitem V4L2_CTRL_FLAG_NEXT_CTRL; v takovém případě by měl ovladač vrátit ID ovládacího prvku následujícího po tom, který předala aplikace. id by však každopádně mělo být nastaveno na ID ovládacího prvku, který je skutečně popisován.
Všechna ostatní pole nastaví ovladač, aby popsal zvolený ovládací prvek. Datový typ ovládacího prvku je uveden v type; může to být V4L2_CTRL_TYPE_INTEGER, V4L2_CTRL_TYPE_BOOLEAN, V4L2_CTRL_TYPE_MENU (pro neměnnou sadu voleb) nebo V4L2_CTRL_TYPE_BUTTON (pro ovládací prvek, který při nastavení provede nějakou akci a ignoruje jakoukoliv předanou hodnotu). name popisuje ovládací prvek; může být použito v rozhraní, které aplikace prezentuje uživateli. U celočíselných ovládacích prvků popisují minimum a maximum rozsah hodnot, které prvek implementuje, a step udává velikost kroků daného rozsahu. default_value je výchozí hodnota, ale aplikovat lze pouze na ovládací prvky typu celé číslo, boolean a menu. Ovladače by měly hodnoty ovládacích prvků nastavovat na výchozí jen při inicializaci; stejně jako ostatní parametry zařízení, i tyto by měly přežít volání open() a close(). Z toho vyplývá, že default_value vůbec nemusí odpovídat aktuální hodnotě ovládacího prvku.
Kromě toho máme ještě sadu příznaků, které ovládací prvek dále popisují.
Aplikace si mohou přát dotázat jen na několik ovládacích prvků, které mají naprogramovány, nebo mohou chtít očíslovat celou sadu. Ve druhém případě začnou u V4L2_CID_BASE a budou pokračovat až k V4L2_CID_LASTP1, např. pomocí V4L2_CTRL_FLAG_NEXT_CTRL. U ovládacích prvků typu menu (typ V4L2_CTRL_TYPE_MENU) budou aplikace pravděpodobně chtít očíslovat i možné hodnoty. Příslušné zpětné volání:
int (*vidioc_querymenu)(struct file *file, void *private_data,
struct v4l2_querymenu *qm);
Struktura v4l2_querymenu vypadá takto:
struct v4l2_querymenu
{
__u32 id;
__u32 index;
__u8 name[32];
__u32 reserved;
};
Při vstupu je id hodnota ID daného ovládacího prvku typu menu a index je hodnota indexu konkrétní položky menu. Indexové hodnoty začínají nulou a pokračují až k hodnotě maximum, kterou vrátila vidioc_queryctrl(). Ovladač vyplní name položky menu; pole reserved by mělo být nastaveno na nulu.
Jakmile aplikace ví o dostupných ovládacích prvcích, pustí se pravděpodobně do zjišťování a měnění jejich hodnot. Struktura používaná pro tento účel je relativně jednoduchá:
struct v4l2_control
{
__u32 id;
__s32 value;
};
Aby se mohla aplikace dotázat na konkrétní ovládací prvek, nastaví id na ID prvku a provede volání, které se do ovladače dostane jako:
int (*vidioc_g_ctrl)(struct file *file, void *private_data,
struct v4l2_control *ctrl);
Ovladač by měl nastavit value na aktuální nastavení ovládacího prvku. Měl by se také samozřejmě ujistit, že o tom konkrétním prvku ví, a případně vrátit EINVAL, pokud by se aplikace pokoušela dotazovat na neexistující prvek. Pokusy o dotazování na tlačítkové ovládací prvky by také měly vracet EINVAL.
Požadavek na změnu ovládacího prvku dopadne takto:
int (*vidioc_s_ctrl)(struct file *file, void *private_data,
struct v4l2_control *ctrl);
Ovladač by měl ověřit id a ujistit se, že value je v mezích povoleného rozsahu. Pokud je vše v pořádku, měla by být nová hodnota nastavena v hardwaru.
Nakonec stojí za zmínku, že v rámci V4L2 je podporováno samostatné rozhraní s rozšířenými ovládacími prvky. Je určeno pro poměrně komplexní ovládací prvky; v praxi se využije především pro parametry k enkódování a dekódování MPEG. Rozšířené ovládací prvky mohou být seskupovány do tříd a jsou podporovány i 64bitové celočíselné hodnoty. Rozhraní je podobné tomu obyčejnému; podrobnosti najdete ve specifikaci.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: