|  |  | @ -23,40 +23,55 @@ func main() { | 
			
		
	
		
		
			
				
					
					|  |  |  |     panic(err) |  |  |  |     panic(err) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   playback_device := infos[0] |  |  |  |   var playback_device *malgo.DeviceInfo = nil | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	for _, info := range infos { |  |  |  | 	for _, info := range infos { | 
			
		
	
		
		
			
				
					
					|  |  |  |     if info.IsDefault != 0 { |  |  |  |     if info.IsDefault != 0 { | 
			
		
	
		
		
			
				
					
					|  |  |  |       playback_device = info |  |  |  |       full, err := ctx.DeviceInfo(malgo.Playback, info.ID, malgo.Shared) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       break |  |  |  |       if err != nil { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         panic(err) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       playback_device = &full | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   if playback_device == nil { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     panic("No default playback device") | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	infos, err = ctx.Devices(malgo.Capture) |  |  |  | 	infos, err = ctx.Devices(malgo.Capture) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	if err != nil { |  |  |  | 	if err != nil { | 
			
		
	
		
		
			
				
					
					|  |  |  |     panic(err) |  |  |  |     panic(err) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   capture_device := infos[0] |  |  |  |   var capture_device *malgo.DeviceInfo = nil | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	for _, info := range infos { |  |  |  | 	for _, info := range infos { | 
			
		
	
		
		
			
				
					
					|  |  |  |     if info.IsDefault != 0 { |  |  |  |     if info.IsDefault != 0 { | 
			
		
	
		
		
			
				
					
					|  |  |  |         capture_device = info |  |  |  |       full, err := ctx.DeviceInfo(malgo.Capture, info.ID, malgo.Shared) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       if err != nil { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         panic(err) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       capture_device = &full | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   if capture_device == nil { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     panic("No default capture device") | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   inDeviceConfig := malgo.DefaultDeviceConfig(malgo.Capture) |  |  |  |   inDeviceConfig := malgo.DefaultDeviceConfig(malgo.Capture) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	inDeviceConfig.Capture.Format = malgo.FormatF32 |  |  |  | 	inDeviceConfig.Capture.Format = capture_device.Formats[0].Format | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	inDeviceConfig.Capture.Channels = 1 |  |  |  | 	inDeviceConfig.Capture.Channels = 1 | 
			
		
	
		
		
			
				
					
					|  |  |  |   inDeviceConfig.Capture.DeviceID = capture_device.ID.Pointer() |  |  |  |   inDeviceConfig.Capture.DeviceID = capture_device.ID.Pointer() | 
			
		
	
		
		
			
				
					
					|  |  |  | 	inDeviceConfig.SampleRate = 44100 |  |  |  | 	inDeviceConfig.SampleRate = capture_device.Formats[0].SampleRate | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   inDeviceConfig.PeriodSizeInFrames = 100 |  |  |  |   inDeviceConfig.PeriodSizeInFrames = 100 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	inDeviceConfig.Alsa.NoMMap = 1 |  |  |  | 	inDeviceConfig.Alsa.NoMMap = 1 | 
			
		
	
		
		
			
				
					
					|  |  |  |   inDeviceConfig.Capture.ShareMode = malgo.Shared |  |  |  |   inDeviceConfig.Capture.ShareMode = malgo.Shared | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   outDeviceConfig := malgo.DefaultDeviceConfig(malgo.Playback) |  |  |  |   outDeviceConfig := malgo.DefaultDeviceConfig(malgo.Playback) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	outDeviceConfig.Playback.Format = malgo.FormatF32 |  |  |  | 	outDeviceConfig.Playback.Format = playback_device.Formats[0].Format | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	outDeviceConfig.Playback.Channels = 1 |  |  |  | 	outDeviceConfig.Playback.Channels = 1 | 
			
		
	
		
		
			
				
					
					|  |  |  |   outDeviceConfig.Playback.DeviceID = playback_device.ID.Pointer() |  |  |  |   outDeviceConfig.Playback.DeviceID = playback_device.ID.Pointer() | 
			
		
	
		
		
			
				
					
					|  |  |  | 	outDeviceConfig.SampleRate = 44100 |  |  |  | 	outDeviceConfig.SampleRate = playback_device.Formats[0].SampleRate | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   outDeviceConfig.PeriodSizeInFrames = 100 |  |  |  |   outDeviceConfig.PeriodSizeInFrames = 100 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	outDeviceConfig.Alsa.NoMMap = 1 |  |  |  | 	outDeviceConfig.Alsa.NoMMap = 1 | 
			
		
	
		
		
			
				
					
					|  |  |  |   outDeviceConfig.Playback.ShareMode = malgo.Shared |  |  |  |   outDeviceConfig.Playback.ShareMode = malgo.Shared | 
			
		
	
	
		
		
			
				
					|  |  | @ -75,7 +90,7 @@ func main() { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Data: onSendFrames, |  |  |  | 		Data: onSendFrames, | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   fmt.Printf("Creating playback device %s\n", playback_device) |  |  |  |   fmt.Printf("Creating playback device %+v\n", playback_device) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   outDevice, err := malgo.InitDevice(ctx.Context, outDeviceConfig, playbackCallbacks) |  |  |  |   outDevice, err := malgo.InitDevice(ctx.Context, outDeviceConfig, playbackCallbacks) | 
			
		
	
		
		
			
				
					
					|  |  |  |   if err != nil { |  |  |  |   if err != nil { | 
			
		
	
		
		
			
				
					
					|  |  |  |     panic(err) |  |  |  |     panic(err) | 
			
		
	
	
		
		
			
				
					|  |  | @ -104,7 +119,7 @@ func main() { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Data: onRecvFrames, |  |  |  | 		Data: onRecvFrames, | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   fmt.Printf("Creating capture device %s\n", capture_device) |  |  |  |   fmt.Printf("Creating capture device %+v\n", capture_device) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	inDevice, err := malgo.InitDevice(ctx.Context, inDeviceConfig, captureCallbacks) |  |  |  | 	inDevice, err := malgo.InitDevice(ctx.Context, inDeviceConfig, captureCallbacks) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	if err != nil { |  |  |  | 	if err != nil { | 
			
		
	
		
		
			
				
					
					|  |  |  |     panic(err) |  |  |  |     panic(err) | 
			
		
	
	
		
		
			
				
					|  |  | 
 |