From 7405011cd26c742e8ccaaabe86d9338d9ecfbe83 Mon Sep 17 00:00:00 2001 From: Arnaud Robin Date: Mon, 31 Mar 2025 00:46:52 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(frontend)=20add=20french=20touch=20ef?= =?UTF-8?q?fect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enhanced the FaceLandmarksProcessor to include a new 'french' effect, allowing users to add a beret image to detected faces. Updated the EffectsConfiguration component to toggle this effect and modified localization files to reflect the change from 'mustache' to 'french'. --- src/frontend/public/assets/beret.png | Bin 0 -> 20125 bytes .../components/blur/FaceLandmarksProcessor.ts | 25 +++++++++++---- .../rooms/livekit/components/blur/index.ts | 2 +- .../effects/EffectsConfiguration.tsx | 30 +++++++++--------- src/frontend/src/locales/de/rooms.json | 6 ++-- src/frontend/src/locales/en/rooms.json | 6 ++-- src/frontend/src/locales/fr/rooms.json | 6 ++-- src/frontend/src/locales/nl/rooms.json | 6 ++-- 8 files changed, 47 insertions(+), 34 deletions(-) create mode 100644 src/frontend/public/assets/beret.png diff --git a/src/frontend/public/assets/beret.png b/src/frontend/public/assets/beret.png new file mode 100644 index 0000000000000000000000000000000000000000..f9691793e07df851725d0e561de814b21723a776 GIT binary patch literal 20125 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 { if (type === ProcessorType.FACE_LANDMARKS) { - const effect = options.showGlasses ? 'glasses' : 'mustache' + const effect = options.showGlasses ? 'glasses' : 'french' return t(`faceLandmarks.${effect}.${isSelected(type, options) ? 'clear' : 'apply'}`) } return t(`${type}.${isSelected(type, options) ? 'clear' : 'apply'}`) @@ -151,19 +151,19 @@ export const EffectsConfiguration = ({ const getFaceLandmarksOptions = () => { const processor = getProcessor() if (processor?.serialize().type === ProcessorType.FACE_LANDMARKS) { - return processor.serialize().options as { showGlasses?: boolean; showMustache?: boolean } + return processor.serialize().options as { showGlasses?: boolean; showFrench?: boolean } } - return { showGlasses: false, showMustache: false } + return { showGlasses: false, showFrench: false } } - const toggleFaceLandmarkEffect = async (effect: 'glasses' | 'mustache') => { + const toggleFaceLandmarkEffect = async (effect: 'glasses' | 'french') => { const currentOptions = getFaceLandmarksOptions() const newOptions = { ...currentOptions, - [effect === 'glasses' ? 'showGlasses' : 'showMustache']: !currentOptions[effect === 'glasses' ? 'showGlasses' : 'showMustache'] + [effect === 'glasses' ? 'showGlasses' : 'showFrench']: !currentOptions[effect === 'glasses' ? 'showGlasses' : 'showFrench'] } - if (!newOptions.showGlasses && !newOptions.showMustache) { + if (!newOptions.showGlasses && !newOptions.showFrench) { // If both effects are off stop the processor await clearEffect() } else { @@ -356,11 +356,11 @@ export const EffectsConfiguration = ({ variant="bigSquare" aria-label={tooltipLabel(ProcessorType.FACE_LANDMARKS, { showGlasses: true, - showMustache: false, + showFrench: false, })} tooltip={tooltipLabel(ProcessorType.FACE_LANDMARKS, { showGlasses: true, - showMustache: false, + showFrench: false, })} isDisabled={processorPendingReveal} onChange={async () => await toggleFaceLandmarkEffect('glasses')} @@ -373,18 +373,18 @@ export const EffectsConfiguration = ({ variant="bigSquare" aria-label={tooltipLabel(ProcessorType.FACE_LANDMARKS, { showGlasses: false, - showMustache: true, + showFrench: true, })} tooltip={tooltipLabel(ProcessorType.FACE_LANDMARKS, { showGlasses: false, - showMustache: true, + showFrench: true, })} isDisabled={processorPendingReveal} - onChange={async () => await toggleFaceLandmarkEffect('mustache')} - isSelected={getFaceLandmarksOptions().showMustache} - data-attr="toggle-mustache" + onChange={async () => await toggleFaceLandmarkEffect('french')} + isSelected={getFaceLandmarksOptions().showFrench} + data-attr="toggle-french" > - + diff --git a/src/frontend/src/locales/de/rooms.json b/src/frontend/src/locales/de/rooms.json index 2a672fd7..38aa76f0 100644 --- a/src/frontend/src/locales/de/rooms.json +++ b/src/frontend/src/locales/de/rooms.json @@ -156,9 +156,9 @@ "apply": "Brille hinzufügen", "clear": "Brille entfernen" }, - "mustache": { - "apply": "Schnurrbart hinzufügen", - "clear": "Schnurrbart entfernen" + "french": { + "apply": "Französische Touch hinzufügen", + "clear": "Französische Touch entfernen" } }, "experimental": "Experimentelle Funktion. Eine v2 kommt für vollständige Browserunterstützung und verbesserte Qualität." diff --git a/src/frontend/src/locales/en/rooms.json b/src/frontend/src/locales/en/rooms.json index 23fc147d..ca125a14 100644 --- a/src/frontend/src/locales/en/rooms.json +++ b/src/frontend/src/locales/en/rooms.json @@ -155,9 +155,9 @@ "apply": "Add Glasses", "clear": "Remove Glasses" }, - "mustache": { - "apply": "Add Mustache", - "clear": "Remove Mustache" + "french": { + "apply": "Add French touch", + "clear": "Remove French touch" } }, "experimental": "Experimental feature. A v2 is coming for full browser support and improved quality." diff --git a/src/frontend/src/locales/fr/rooms.json b/src/frontend/src/locales/fr/rooms.json index 0508179c..2ac71f08 100644 --- a/src/frontend/src/locales/fr/rooms.json +++ b/src/frontend/src/locales/fr/rooms.json @@ -155,9 +155,9 @@ "apply": "Ajouter des lunettes", "clear": "Retirer les lunettes" }, - "mustache": { - "apply": "Ajouter une moustache", - "clear": "Retirer la moustache" + "french": { + "apply": "Ajouter la touche française", + "clear": "Retirer la touche française" } }, "experimental": "Fonctionnalité expérimentale. Une v2 arrive pour un support complet des navigateurs et une meilleure qualité." diff --git a/src/frontend/src/locales/nl/rooms.json b/src/frontend/src/locales/nl/rooms.json index da56ae02..7f38350a 100644 --- a/src/frontend/src/locales/nl/rooms.json +++ b/src/frontend/src/locales/nl/rooms.json @@ -155,9 +155,9 @@ "apply": "Bril toevoegen", "clear": "Bril verwijderen" }, - "mustache": { - "apply": "Snor toevoegen", - "clear": "Snor verwijderen" + "french": { + "apply": "Franse stijl toevoegen", + "clear": "Franse stijl verwijderen" } }, "experimental": "Experimentele functie. Een v2 komt eraan voor volledige browserondersteuning en verbeterde kwaliteit."