Ho appena scoperto questo modulo che potrebbe fare al caso mio per un
progetto che sto intraprendendo.

Il progetto è intercettare l'audio di un microfono esterno su
piattaforma windows e redirigerlo in stream tramite Socket.

Su Win32 c'è una libreria di nome winmm.dll che permette di gestire
l'audio esterno tramite le funzione waveInxxx

Per adesso sto facendo alcune prove con Visual Basic ma vorrei portare
subito il codice in Perl.

Per fortuna ho trovato su CPAN il modulo Win32::API che mi permetterebbe
di gestire winmm.dll

http://search.cpan.org/~acalpini/Win32-API-0.41/API.pm

Purtroppo non so proprio come usare questo pacchetto!
Per questo avrei bisogno che qualcono me lo spiegasse!

Per iniziare mi piacerebbe portare questo codice in Perl:

codice:
Private Type WaveInCaps
   ManufacturerID As Integer
   ProductID As Integer
   DriverVersion As Long
   ProductName(1 To 32) As Byte
   Formats As Long
   Channels As Integer
   Reserved As Integer
End Type

Private Declare Function waveInGetNumDevs Lib "winmm" () As Long
Private Declare Function waveInGetDevCaps Lib "winmm" Alias 
"waveInGetDevCapsA" (ByVal uDeviceID As Long, Byval lpCaps As Long, 
ByVal uSize As Long) As Long

sub InitDevices()

   Dim Caps As WaveInCaps, Which As Long, testo As String

   For Which = 0 To waveInGetNumDevs - 1
      Call waveInGetDevCaps(Which, VarPtr(Caps), Len(Caps))
      testo = StrConv(Caps.ProductName, vbUnicode) & Which
      msgbox testo
   Next
   
   If Which = 0 Then
      MsgBox "You have no audio input devices!", vbCritical, "Ack!"
      End
   End If
   
End Sub
Grazie a tutti!

Ciao