//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected int CreatePort(IDebugPortRequest2 portRequest, out IDebugPort2 port) { LoggingUtils.PrintFunction(); try { string requestPortName; LoggingUtils.RequireOk(portRequest.GetPortName(out requestPortName)); if (string.IsNullOrWhiteSpace(requestPortName)) { throw new InvalidOperationException("Invalid/empty port name"); } AndroidDevice device = AndroidAdb.GetConnectedDeviceById(requestPortName); if (device == null) { throw new InvalidOperationException("Failed to find a device with the name: " + requestPortName); } port = new DebuggeePort(this, device); return(Constants.S_OK); } catch (Exception e) { LoggingUtils.HandleException(e); port = null; return(Constants.E_FAIL); } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected DebuggeePort CreatePort(IDebugPortRequest2 portRequest) { AndroidAdb.Refresh(); string requestPortName; LoggingUtils.RequireOk(portRequest.GetPortName(out requestPortName)); AndroidDevice device = AndroidAdb.GetConnectedDeviceById(requestPortName); return(new DebuggeePort(this, device)); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public int EnumPersistedPorts(BSTR_ARRAY PortNames, out IEnumDebugPorts2 ppEnum) { // // This method retrieves an object that allows enumeration of the list of persisted ports. // LoggingUtils.PrintFunction(); try { #if false AndroidAdb.Refresh(); if (PortNames.dwCount > 0) { // TODO: This conversion process is tricky, and still broken. _BSTR_ARRAY portNames = (_BSTR_ARRAY)Marshal.PtrToStructure(PortNames.Members, typeof(_BSTR_ARRAY)); for (int i = 0; i < PortNames.dwCount; ++i) { IDebugPort2 ppPort; AndroidDevice device = AndroidAdb.GetConnectedDeviceById(portNames.Members [i]); LoggingUtils.RequireOk(AddPort(new DevicePortRequest(device), out ppPort)); } } #endif LoggingUtils.RequireOk(EnumPorts(out ppEnum)); return(Constants.S_OK); } catch (Exception e) { LoggingUtils.HandleException(e); ppEnum = null; return(Constants.E_FAIL); } }