Differenze tra le versioni di "Rilevare se la scheda audio sta processando dati audio"
Da Gambas-it.org - Wikipedia.
Riga 2: | Riga 2: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
+ | Dim c As Byte | ||
Dim ss As New String[] | Dim ss As New String[] | ||
− | Dim | + | Dim aso, ca, pc, su As String |
− | + | ||
+ | aso = "/proc/asound" | ||
<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> | ||
− | c = Dir( | + | c = Dir(aso, "card*", gb.Directory).Count |
Print "Il sistema ha rilevato num. " & c & " Schede audio:" | Print "Il sistema ha rilevato num. " & c & " Schede audio:" | ||
− | ss = Split(File.Load(" | + | ss = Split(File.Load(aso &/ "cards"), gb.NewLine) |
− | <FONT color=gray>' '' | + | <FONT color=gray>' ''Individua il dispositivo della scheda audio che sta eventualmente processando segnali audio:''</font> |
− | + | For c = 0 To ss.Max | |
− | If InStr(ss[ | + | If InStr(ss[c], "]:") == 0 Then Continue |
− | + | Print "\n\n"; ss[c] | |
− | + | For Each ca In Dir(aso, "card*", gb.Directory) | |
− | Print " [Dispositivo ]: / | + | For Each pc In Dir(aso &/ ca, "pcm*p", gb.Directory) |
− | For Each | + | Print " [Dispositivo ]: " &/ ca &/ "\e[1m"; pc |
− | If InStr(File.Load( | + | For Each su In Dir(aso &/ ca &/ pc, "sub*", gb.Directory) |
+ | If InStr(File.Load(aso &/ 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 26: | Riga 29: | ||
Next | Next | ||
Next | Next | ||
− | + | Next | |
− | + | Next | |
− | |||
− | |||
'''End''' | '''End''' |
Versione delle 02:39, 19 ago 2020
Per rilevare se una o più schede audio, e quali loro dispositivi, stanno eventualmente processando dati audio, è possibile utilizzare questo codice:
Public Sub Main() Dim c As Byte Dim ss As New String[] Dim aso, ca, pc, su As String aso = "/proc/asound" ' Verifica innanzitutto quante schede audio sono rilevate dal sistema: c = Dir(aso, "card*", gb.Directory).Count Print "Il sistema ha rilevato num. " & c & " Schede audio:" ss = Split(File.Load(aso &/ "cards"), gb.NewLine) ' Individua il dispositivo della scheda audio che sta eventualmente processando segnali audio: For c = 0 To ss.Max If InStr(ss[c], "]:") == 0 Then Continue Print "\n\n"; ss[c] For Each ca In Dir(aso, "card*", gb.Directory) For Each pc In Dir(aso &/ ca, "pcm*p", gb.Directory) Print " [Dispositivo ]: " &/ ca &/ "\e[1m"; pc For Each su In Dir(aso &/ ca &/ pc, "sub*", gb.Directory) If InStr(File.Load(aso &/ 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 Next Next End