Differenze tra le versioni di "Rilevare se la scheda audio sta processando dati audio"

Da Gambas-it.org - Wikipedia.
Riga 4: Riga 4:
 
   Dim ss As New String[]
 
   Dim ss As New String[]
 
   Dim b, c, j As Byte
 
   Dim b, c, j As Byte
   Dim s As String
+
   Dim s, u 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>
Riga 18: Riga 18:
 
       For Each s In Dir("/proc/asound/card" & CStr(j), "pcm*p", gb.Directory)
 
       For Each s In Dir("/proc/asound/card" & CStr(j), "pcm*p", gb.Directory)
 
         Print "  [Dispositivo    ]: /card"; j; "/\e[1m"; s
 
         Print "  [Dispositivo    ]: /card"; j; "/\e[1m"; s
         If InStr(File.Load("/proc/asound/card" & CStr(j) &/ s &/ "sub0/status"), "RUNNING") > 0 Then
+
         For Each u In Dir("/proc/asound/card" & CStr(j) &/ s, "sub*", gb.Directory)
          Print "\e[32mQuesto dispositivo della scheda audio sta processando segnali audio !\e[0m"
+
          If InStr(File.Load("/proc/asound/card" & CStr(j) &/ s &/ u &/ "status"), "RUNNING") > 0 Then
        Else
+
            Print "\e[32mQuesto dispositivo della scheda audio sta processando segnali audio !\e[0m"
          Print "\e[0m\e[31mQuesto dispositivo della scheda audio non sta processando alcun segnale audio.\e[0m"
+
          Else
         Endif
+
            Print "\e[0m\e[31mQuesto dispositivo della scheda audio non sta processando alcun segnale audio.\e[0m"
 +
          Endif
 +
         Next
 
       Next
 
       Next
 
       Inc j
 
       Inc j

Versione delle 11:07, 9 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 ss As New String[]
 Dim b, c, j As Byte
 Dim s, u As String
 
' Verifica innanzitutto quante schede audio sono rilevate dal sistema:
 c = Dir("/proc/asound", "card*", gb.Directory).Count
 Print "Il sistema ha rilevato num. " & c & " Schede audio:"
 
 ss = Split(File.Load("/proc/asound/cards"), Chr(10))
 
' Quindi verifica il dispositivo della scheda audio che sta eventualmente processando segnali audio:
 Repeat
   If InStr(ss[b], "]:") > 0 Then 
     Print "\n\n"; ss[b]
     For Each s In Dir("/proc/asound/card" & CStr(j), "pcm*p", gb.Directory)
       Print "   [Dispositivo    ]: /card"; j; "/\e[1m"; s
       For Each u In Dir("/proc/asound/card" & CStr(j) &/ s, "sub*", gb.Directory)
         If InStr(File.Load("/proc/asound/card" & CStr(j) &/ s &/ u &/ "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 j
   Endif
   Inc b
 Until b > c
 
End