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

Da Gambas-it.org - Wikipedia.
Riga 6: Riga 6:
 
   Dim j As Byte
 
   Dim j As Byte
 
   Dim s As String
 
   Dim s 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>
    i = Dir("/proc/asound", "card*", gb.Directory).Count
+
  i = Dir("/proc/asound", "card*", gb.Directory).Count
    Print "Il sistema ha rilevato num. " & i & " Schede audio:"
+
  Print "Il sistema ha rilevato num. " & i & " Schede audio:"
 
 
        
 
        
 
  <FONT color=gray>' ''Quindi verifica quali dispositivi di quali schede audio stanno eventualmente processando segnali audio:''</font>
 
  <FONT color=gray>' ''Quindi verifica quali dispositivi di quali schede audio stanno eventualmente processando segnali audio:''</font>
    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
+
  For j = 0 To (ss.Count / 2) Step 2
     
+
    Print "\n\n"; ss[j]
      Print "\n\n"; ss[j]
+
    If j > 0 Then Dec j
      If j > 0 Then Dec j
+
    For Each s In Dir("/proc/asound/card" & j, "pcm*p", gb.Directory)
      For Each s In Dir("/proc/asound/card" & j, "pcm*p", gb.Directory)
+
      Print "Device: /card"; j; "/"; s
        Print "Device: "; s
+
      If InStr(File.Load("/proc/asound/card" & CStr(j) &/ s &/ "sub0/status"), "RUNNING") > 0 Then
        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"
          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
+
  Next
 +
 
 
  '''End'''
 
  '''End'''

Versione delle 17:04, 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 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:  /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
 Next
 
End