fix: rimappa shortcut annulla registrazione da Esc a Ctrl+Esc
Esc è riservato alla built-in app.interrupt di pi: la shortcut veniva scartata con warning 'conflicts with built-in shortcut'. Rimossa anche la registrazione ridondante 'esc' (stesso tasto fisico). Aggiornati messaggi di stato e documentazione.
This commit is contained in:
@@ -84,5 +84,6 @@ Mostra una dashboard grafica centrata con lo stato di salute dell'estensione:
|
||||
- **Primo tocco (`F12`)**: Avvia la registrazione audio tramite `ffmpeg`, riproduce il suono sci-fi *Power Up* e mostra la barra di stato live `🔴 REGISTRAZIONE... MM:SS / MM:SS`.
|
||||
- **Secondo tocco (`F12`)**: Interrompe la registrazione, riproduce il suono *Deactivate*, ottimizza l'audio (soppressione silenzio), invia la traccia a Gemini per la trascrizione e trasmette il prompt risultante a `pi`.
|
||||
|
||||
### Tasto `Esc` / `Escape` — Annullamento Registrazione
|
||||
- Durante una registrazione audio attiva, premere `Esc` o `Escape` abortisce immediatamente il processo `ffmpeg`, rimuove il file temporaneo, riproduce il tono acustico di cancellazione e cancella l'indicatore di stato.
|
||||
### Tasto `Ctrl+Esc` — Annullamento Registrazione
|
||||
- Durante una registrazione audio attiva, premere `Ctrl+Esc` abortisce immediatamente il processo `ffmpeg`, rimuove il file temporaneo, riproduce il tono acustico di cancellazione e cancella l'indicatore di stato.
|
||||
- `Esc` da solo è riservato alla combinazione built-in di pi (`app.interrupt`), quindi l'estensione usa `Ctrl+Esc` per evitare il conflitto.
|
||||
|
||||
@@ -41,7 +41,7 @@ Alla pressione del tasto **F12**:
|
||||
- Viene avviato un sottoprocesso `ffmpeg` che cattura dal dispositivo PulseAudio predefinito (`-f pulse -i default`).
|
||||
- L'audio viene campionato a 16.000 Hz in mono (`-ac 1 -ar 16000`).
|
||||
- Viene attivato un timer TUI che aggiorna dinamicamente lo stato di `pi`:
|
||||
`🔴 REGISTRAZIONE... 00:14 / 02:00 (Esc per annullare)`
|
||||
`🔴 REGISTRAZIONE... 00:14 / 02:00 (Ctrl+Esc per annullare)`
|
||||
|
||||
### 2. Feedback Acustici Sci-Fi Procedurali (`playSound`)
|
||||
Per non dipendere da file audio esterni, i suoni di feedback vengono generati proceduralmente usando il filtro `aevalsrc` di `ffmpeg` e riprodotti tramite `paplay` (fallback su `aplay` o `ffplay`):
|
||||
|
||||
+3
-15
@@ -840,7 +840,7 @@ function startRecording(ctx?: any): string {
|
||||
const maxSecStr = String(maxDur % 60).padStart(2, "0");
|
||||
ctx.ui.setStatus(
|
||||
"agy-rec",
|
||||
`🔴 REGISTRAZIONE... ${elapsedMinStr}:${elapsedSecStr} / ${maxMinStr}:${maxSecStr} (Esc per annullare)`,
|
||||
`🔴 REGISTRAZIONE... ${elapsedMinStr}:${elapsedSecStr} / ${maxMinStr}:${maxSecStr} (Ctrl+Esc per annullare)`,
|
||||
);
|
||||
};
|
||||
updateStatus();
|
||||
@@ -2149,7 +2149,7 @@ export default function agyExtension(pi: ExtensionAPI) {
|
||||
if (!recording) {
|
||||
startRecording(ctx);
|
||||
playSound("start");
|
||||
ctx.ui.notify("🎙️ Registrazione avviata (F12 per fermare, Esc per annullare)", "info");
|
||||
ctx.ui.notify("🎙️ Registrazione avviata (F12 per fermare, Ctrl+Esc per annullare)", "info");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2266,19 +2266,7 @@ export default function agyExtension(pi: ExtensionAPI) {
|
||||
},
|
||||
});
|
||||
|
||||
pi.registerShortcut("escape", {
|
||||
description: "Annulla la registrazione microfono in corso",
|
||||
handler: async (ctx) => {
|
||||
if (recording) {
|
||||
await cancelRecording();
|
||||
ctx.ui.setStatus("agy-rec", "");
|
||||
ctx.ui.notify("❌ Registrazione annullata", "info");
|
||||
playSound("cancel");
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
pi.registerShortcut("esc", {
|
||||
pi.registerShortcut("ctrl+escape", {
|
||||
description: "Annulla la registrazione microfono in corso",
|
||||
handler: async (ctx) => {
|
||||
if (recording) {
|
||||
|
||||
Reference in New Issue
Block a user