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

Da Gambas-it.org - Wikipedia.
Riga 4: Riga 4:
 
   Dim i As Integer
 
   Dim i As Integer
 
   Dim ss As New String[]
 
   Dim ss As New String[]
   Dim j As Byte
+
   Dim b, j As Byte
 
   Dim s As String
 
   Dim s As String
 
    
 
    
Riga 14: Riga 14:
 
   ss = Split(File.Load("/proc/asound/cards"), Chr(10))
 
   ss = Split(File.Load("/proc/asound/cards"), Chr(10))
 
    
 
    
   For j = 0 To (ss.Count / 2) Step 2
+
   Repeat
    Print "\n\n"; ss[j]
+
    If InStr(ss[b], "]:") > 0 Then
    If j > 0 Then Dec j
+
      Print "\n\n"; ss[b], "b="; b
    For Each s In Dir("/proc/asound/card" & j, "pcm*p", gb.Directory)
+
      For Each s In Dir("/proc/asound/card" & CStr(j), "pcm*p", gb.Directory)
      Print "Device:  /card"; j; "/"; s
+
        Print "Device:  /card"; j; "/"; s
      If InStr(File.Load("/proc/asound/card" & CStr(j) &/ s &/ "sub0/status"), "RUNNING") > 0 Then
+
        If InStr(File.Load("/proc/asound/card" & CStr(j) &/ s &/ "sub0/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
        Print "\e[31mQuesto dispositivo della scheda audio non sta processando alcun segnale audio.\e[0m"
+
          Print "\e[31mQuesto dispositivo della scheda audio non sta processando alcun segnale audio.\e[0m"
       Endif
+
        Endif
     Next
+
      Next
   Next
+
       Inc j
 +
    Endif
 +
     Inc b
 +
   Until b == ss.Max
 
    
 
    
 
  '''End'''
 
  '''End'''

Versione delle 17:37, 8 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 i As Integer
 Dim ss As New String[]
 Dim b, 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))
 
 Repeat
   If InStr(ss[b], "]:") > 0 Then 
     Print "\n\n"; ss[b], "b="; b
     For Each s In Dir("/proc/asound/card" & CStr(j), "pcm*p", gb.Directory)
       Print "Device:  /card"; j; "/"; s
       If InStr(File.Load("/proc/asound/card" & CStr(j) &/ s &/ "sub0/status"), "RUNNING") > 0 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
     Inc j
   Endif
   Inc b
 Until b == ss.Max
 
End