Differenze tra le versioni di "Rilevare se la scheda audio sta processando dati audio"
Da Gambas-it.org - Wikipedia.
(14 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
Per rilevare se una o più schede audio, e quali loro dispositivi, stanno eventualmente processando dati audio, è possibile utilizzare questo codice: | Per rilevare se una o più schede audio, e quali loro dispositivi, stanno eventualmente processando dati audio, è possibile utilizzare questo codice: | ||
− | + | Private Const ASOUND As String = "/proc/asound" | |
+ | |||
+ | |||
+ | Public Sub Main() | ||
+ | Dim c As Byte | ||
Dim ss As New String[] | Dim ss As New String[] | ||
− | Dim | + | Dim ca, pc, su As String |
− | |||
<FONT color=gray>' ''Verifica innanzitutto quante schede audio sono rilevate dal sistema:''</font> | <FONT color=gray>' ''Verifica innanzitutto quante schede audio sono rilevate dal sistema:''</font> | ||
− | + | Print "Il sistema ha rilevato num. " & Dir(ASOUND, "card*", gb.Directory).Count & " Schede audio:" | |
− | + | ||
− | + | ss = Split(File.Load(ASOUND &/ "cards"), gb.NewLine) | |
− | |||
− | ss = Split(File.Load(" | ||
− | |||
Repeat | Repeat | ||
− | If InStr(ss[ | + | If InStr(ss[c], "]:") == 0 Then |
− | Print "\n\n"; ss[ | + | ss.Remove(c, 1) |
− | + | Else | |
− | + | Inc c | |
− | If InStr(File.Load( | + | Endif |
+ | Until c == ss.Count | ||
+ | |||
+ | c = 0 | ||
+ | |||
+ | <FONT color=gray>' ''Mostra i dispositivi delle schede audio rilevate evidenziando quello che sta eventualmente processando segnali audio:''</font> | ||
+ | For Each ca In Dir(ASOUND, "card*", gb.Directory) | ||
+ | Print "\n\n"; ss[c] | ||
+ | For Each pc In Dir(ASOUND &/ ca, "pcm*p", gb.Directory) ' <SUP>[[[#Note|Nota 1]]]</sup> | ||
+ | Print " [Dispositivo ]: " &/ ca &/ "\e[1m"; pc | ||
+ | For Each su In Dir(ASOUND &/ ca &/ pc, "sub*", gb.Directory) | ||
+ | If InStr(File.Load(ASOUND &/ ca &/ pc &/ su &/ "status"), "RUNNING") > 0 Then | ||
Print "\e[32mQuesto dispositivo della scheda audio sta processando segnali audio !\e[0m" | Print "\e[32mQuesto dispositivo della scheda audio sta processando segnali audio !\e[0m" | ||
Else | Else | ||
Riga 25: | Riga 36: | ||
Endif | Endif | ||
Next | Next | ||
− | + | Next | |
− | + | Inc c | |
− | Inc | + | Next |
− | |||
− | ''' | + | End |
+ | |||
+ | |||
+ | |||
+ | =Note= | ||
+ | [1] Da rilevare che, se il dispositivo audio termina con la lettera "p" (ad esempio: pcm0'''p''' ), allora esso è un dispositivo di ''esecuzione'' dei dati audio. Infatti "p" sta per "PLAYBACK". | ||
+ | <BR>Se il dispositivo audio termina invece con la lettera "c" (ad esempio: pcm0'''c''' ), allora esso è un dispositivo di ''registrazione'' di dati audio. Infatti "c" sta per "CAPTURE". |
Versione attuale delle 12:26, 13 gen 2024
Per rilevare se una o più schede audio, e quali loro dispositivi, stanno eventualmente processando dati audio, è possibile utilizzare questo codice:
Private Const ASOUND As String = "/proc/asound" Public Sub Main() Dim c As Byte Dim ss As New String[] Dim ca, pc, su As String ' Verifica innanzitutto quante schede audio sono rilevate dal sistema: Print "Il sistema ha rilevato num. " & Dir(ASOUND, "card*", gb.Directory).Count & " Schede audio:" ss = Split(File.Load(ASOUND &/ "cards"), gb.NewLine) Repeat If InStr(ss[c], "]:") == 0 Then ss.Remove(c, 1) Else Inc c Endif Until c == ss.Count c = 0 ' Mostra i dispositivi delle schede audio rilevate evidenziando quello che sta eventualmente processando segnali audio: For Each ca In Dir(ASOUND, "card*", gb.Directory) Print "\n\n"; ss[c] For Each pc In Dir(ASOUND &/ ca, "pcm*p", gb.Directory) ' [Nota 1] Print " [Dispositivo ]: " &/ ca &/ "\e[1m"; pc For Each su In Dir(ASOUND &/ ca &/ pc, "sub*", gb.Directory) If InStr(File.Load(ASOUND &/ ca &/ pc &/ su &/ "status"), "RUNNING") > 0 Then Print "\e[32mQuesto dispositivo della scheda audio sta processando segnali audio !\e[0m" Else Print "\e[0m\e[31mQuesto dispositivo della scheda audio non sta processando alcun segnale audio.\e[0m" Endif Next Next Inc c Next End
Note
[1] Da rilevare che, se il dispositivo audio termina con la lettera "p" (ad esempio: pcm0p ), allora esso è un dispositivo di esecuzione dei dati audio. Infatti "p" sta per "PLAYBACK".
Se il dispositivo audio termina invece con la lettera "c" (ad esempio: pcm0c ), allora esso è un dispositivo di registrazione di dati audio. Infatti "c" sta per "CAPTURE".