public async Task <LineStatus> GetLineStatusAsync(string hostAddress, string lineEncoder = "ProgramL1") { // TODO: Get actual amount of lines from CCM and add to CodecInformation object to determine if it exists using (var socket = await ProdysSocketPool.TakeSocket(hostAddress)) { // If the device have multiple lines and encoders var deviceLineEncoder = string.IsNullOrEmpty(lineEncoder) || lineEncoder == "null" ? "ProgramL1" : lineEncoder; IkusNetLine statusSelectedLineEncoder = IkusNetLine.ProgramL1; try { statusSelectedLineEncoder = (IkusNetLine)Enum.Parse(typeof(IkusNetLine), deviceLineEncoder, true); } catch (Exception) { statusSelectedLineEncoder = IkusNetLine.ProgramL1; } log.Debug($"Trying to GetLineStatus statusSelectedLine: {statusSelectedLineEncoder} , hostAddress: {hostAddress}"); SendCommand(socket, new CommandIkusNetGetLineStatus { Line = statusSelectedLineEncoder }); var response = new IkusNetGetLineStatusResponse(socket); return(new LineStatus { LineEncoder = statusSelectedLineEncoder.ToString(), StatusCode = IkusNetMapper.MapToLineStatus(response.LineStatus), DisconnectReason = IkusNetMapper.MapToDisconnectReason(response.DisconnectionCode), RemoteAddress = response.Address }); } }
// For test only public async Task <string> GetDeviceNameAsync(string hostAddress) { using (var socket = await ProdysSocketPool.TakeSocket(hostAddress)) { SendCommand(socket, new CommandIkusNetSysGetDeviceName()); var response = new IkusNetGetDeviceNameResponse(socket); return(response.DeviceName); } }
public async Task <VuValues> GetVuValuesAsync(string hostAddress) { using (var socket = await ProdysSocketPool.TakeSocket(hostAddress)) { SendCommand(socket, new CommandIkusNetGetVuMeters()); var response = new IkusNetGetVumetersResponse(socket); return(IkusNetMapper.MapToVuValues(response)); } }
public async Task <bool?> GetGpoAsync(string hostAddress, int gpio) { using (var socket = await ProdysSocketPool.TakeSocket(hostAddress)) { SendCommand(socket, new CommandIkusNetGetGpo { Gpio = gpio }); var response = new IkusNetGetGpoResponse(socket); return(response.Active); } }
public async Task <bool> CheckIfAvailableAsync(string ip) { try { using (var socket = await ProdysSocketPool.TakeSocket(ip)) { // Send dummy command to codec. SendCommand(socket, new CommandIkusNetGetVuMeters()); var dummResponse = new IkusNetGetVumetersResponse(socket); return(true); // Success } } catch (Exception) { return(false); } }
public async Task <AudioMode> GetAudioModeAsync(string hostAddress) { using (var socket = await ProdysSocketPool.TakeSocket(hostAddress)) { // Get encoder algoritm SendCommand(socket, new CommandIkusNetGetEncoderAudioMode()); var encoderResponse = IkusNetGetEncoderAudioModeResponse.GetResponse(socket); // Get decoder algoritm SendCommand(socket, new CommandIkusNetGetDecoderAudioMode()); var decoderResponse = IkusNetGetDecoderAudioModeResponse.GetResponse(socket); return(new AudioMode { EncoderAudioAlgoritm = IkusNetMapper.MapToAudioAlgorithm(encoderResponse.AudioAlgorithm), DecoderAudioAlgoritm = IkusNetMapper.MapToAudioAlgorithm(decoderResponse.AudioAlgorithm) }); } }
public virtual async Task <AudioStatus> GetAudioStatusAsync(string hostAddress, int nrOfInputs, int nrOfGpos) { var audioStatus = new AudioStatus(); using (var socket = await ProdysSocketPool.TakeSocket(hostAddress)) { SendCommand(socket, new CommandIkusNetGetVuMeters()); var vuResponse = new IkusNetGetVumetersResponse(socket); audioStatus.VuValues = IkusNetMapper.MapToVuValues(vuResponse); // // Input status not implemented in Quantum ST audioStatus.InputStatus = new List <InputStatus>(); audioStatus.Gpos = new List <GpoStatus>(); for (int gpo = 0; gpo < nrOfGpos; gpo++) { SendCommand(socket, new CommandIkusNetGetGpo { Gpio = gpo }); var response = new IkusNetGetGpoResponse(socket); var gpoEnable = response.Active; if (!gpoEnable.HasValue) { // Indication of missing GPO for the number. Probably we passed the last one. break; } audioStatus.Gpos.Add(new GpoStatus() { Index = gpo, Active = gpoEnable.Value }); } } return(audioStatus); }
public IkusNetStApi(ProdysSocketPool prodysSocketPool) : base(prodysSocketPool) { }