Rilevare se la scheda audio sta processando dati audio

Da Gambas-it.org - Wikipedia.

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 i As Integer
 Dim ss As New String[]
 Dim j As Byte
 Dim s As String

 
' Verifica innanzitutto quante schede audio sono rilevate dal sistema:
   i = Dir("/proc/asound", "card*", gb.Directory).Count
   Print "Il sistema ha rilevato num. " & i & " Schede audio:"

     
' Quindi verifica quali dispositivi di quali schede audio stanno eventualmente processando segnali audio:
   ss = Split(File.Load("/proc/asound/cards"), Chr(10))

   For j = 0 To (ss.Count / 2) Step 2
     
     Print "\n\n"; ss[j]
     If j > 0 Then Dec j
     For Each s In Dir("/proc/asound/card" & j, "pcm*p", gb.Directory)
       Print "Device: "; s
       If File.Load("/proc/asound/card" & j &/ s & "/sub0/status") Like "*RUNNING*" Then
         Print "\e[32mQuesto dispositivo della scheda audio sta processando segnali audio !\e[0m"
       Else
         Print "\e[31mQuesto dispositivo della scheda audio non sta processando alcun segnale audio.\e[0m"
       Endif
     Next
     
   Next

End