Esempio n. 1
0
        private CAudioJackDeviceInfo GetJackDevice(CAudioDataFlow deviceType)
        {
            uint                 devCount = 0;
            CAudioDeviceInfo     devInfo;
            CAudioJackDeviceInfo jackDeviceInfo = new CAudioJackDeviceInfo();
            int rev = NativeMethods.CMI_GetDeviceCount(deviceType, ref devCount);

            if (0 == devCount)
            {
                //Device not found!!
                return(null);
            }
            else
            {
                for (int i = 0; i < devCount; i++)
                {
                    rev = NativeMethods.CMI_GetDeviceById(deviceType, i, out devInfo);
                    switch (devInfo.DeviceState)
                    {
                    case CAudioDeviceState.Active:
                        jackDeviceInfo.m_devInfo = devInfo;
                        break;
                    }
                }
                ;
            }
            return(jackDeviceInfo);
        }
Esempio n. 2
0
        public int Initialize()
        {
            int rev = NativeMethods.CMI_ConfLibInit();

            rev = NativeMethods.CMI_CreateDeviceList();

            //Get Render device
            _cmediaJackInfoRender = GetJackDevice(CAudioDataFlow.eRender);
            if (_cmediaJackInfoRender == null)
            {
                return(-1);
            }
            //Get Capture device
            _cmediajackInfoCapture = GetJackDevice(CAudioDataFlow.eCapture);
            if (_cmediajackInfoCapture == null)
            {
                return(-1);
            }

            return(rev);
        }
Esempio n. 3
0
        public ReturnValue ConfigureJackDeviceData(CAudioDataFlow dataFlow, CAudioDriverReadWrite readWrite, CAudioClientData clientData)
        {
            ReturnValue revData = new ReturnValue()
            {
                RevCode = -1, RevMessage = $"API Name [{clientData.ApiName}] not Correct!"
            };
            CAudioAPIFunctionPoint sdkAPI;

            if (!Enum.TryParse(clientData.ApiName, out sdkAPI))
            {
                return(revData);
            }
            if (readWrite == CAudioDriverReadWrite.Write &&
                clientData.SetValue == null && clientData.SetExtraValue == null)
            {
                revData.RevMessage = "SetValue Can't be Null";
                return(revData);
            }

            CAudioStructure      rwData   = null;
            CAudioJackDeviceInfo jackInfo = null;

            jackInfo = _cmediaJackInfoRender;
            if (dataFlow == CAudioDataFlow.eCapture || sdkAPI > CAudioAPIFunctionPoint.VOICECLARITY_NOISESUPP_LEVEL)
            {
                jackInfo = _cmediajackInfoCapture;
            }
            rwData = new CAudioStructure()
            {
                JackInfo = jackInfo, ApiPropertyName = clientData.ApiName, ReadWrite = readWrite, WriteData = clientData.SetValueToByteArray(), WriteExtraData = clientData.SetExtraValueToByteArray()
            };
            if (clientData.SetValue != null || clientData.SetExtraValue != null)
            {
                rwData.IsWriteExtra = true;
            }
            revData = ConfigurePropertyControl(rwData);
            return(revData);
        }
Esempio n. 4
0
 public void Dispose()
 {
     _cmediaSDKCallback     = null;
     _cmediaJackInfoRender  = null;
     _cmediajackInfoCapture = null;
 }