bool BridgeManager::BeginSession(void) { Interface::Print("Beginning session...\n"); BeginSessionPacket beginSessionPacket; //***** BEGIN SESSION ***** if (!SendPacket(&beginSessionPacket, kDefaultTimeoutSend, kEmptyTransferNone)) { Interface::PrintError("Failed to begin session!\n"); return (false); } SessionSetupResponse beginSessionResponse; if (!ReceivePacket(&beginSessionResponse)) return (false); unsigned int deviceDefaultPacketSize = beginSessionResponse.GetResult(); Interface::Print("\nSome devices may take up to 2 minutes to respond.\nPlease be patient!\n\n"); Sleep(3000); // Give the user time to read the message. if (deviceDefaultPacketSize != 0) // 0 means changing the packet size is not supported. { fileTransferSequenceTimeout = 120000; // 2 minutes! fileTransferPacketSize = 1048576; // 1 MiB fileTransferSequenceMaxLength = 30; // Therefore, fileTransferPacketSize * fileTransferSequenceMaxLength == 30 MiB per sequence. FilePartSizePacket filePartSizePacket(fileTransferPacketSize); //***** CHANGE FILE PACK SIZE ***** if (!SendPacket(&filePartSizePacket, kDefaultTimeoutSend, kEmptyTransferBefore)) { Interface::PrintError("Failed to send file part size packet!\n"); return (false); } SessionSetupResponse filePartSizeResponse; if (!ReceivePacket(&filePartSizeResponse)) return (false); if (filePartSizeResponse.GetResult() != 0) { Interface::PrintError("Unexpected file part size response!\nExpected: 0\nReceived: %d\n", filePartSizeResponse.GetResult()); return (false); } } Interface::Print("Session begun.\n\n"); return (true); }
bool BridgeManager::RequestDeviceType(unsigned int request, int *result) const { DeviceTypePacket deviceTypePacket; bool success = SendPacket(&deviceTypePacket); if (!success) { Interface::PrintError("Failed to request device info packet!\n"); if (verbose) Interface::PrintError("Failed request: %u\n", request); return (false); } SessionSetupResponse deviceTypeResponse; if (!ReceivePacket(&deviceTypeResponse)) return (false); *result = deviceTypeResponse.GetResult(); return (true); }
bool BridgeManager::BeginSession(void) { Interface::Print("Beginning session...\n"); BeginSessionPacket beginSessionPacket; if (!SendPacket(&beginSessionPacket)) { Interface::PrintError("Failed to begin session!\n"); return (false); } SessionSetupResponse beginSessionResponse; if (!ReceivePacket(&beginSessionResponse)) return (false); unsigned int deviceDefaultPacketSize = beginSessionResponse.GetResult(); Interface::Print("\nSome devices may take up to 2 minutes to respond.\nPlease be patient!\n\n"); Sleep(3000); // Give the user time to read the message. if (deviceDefaultPacketSize != 0) // 0 means changing the packet size is not supported. { fileTransferSequenceTimeout = 120000; // 2 minutes! fileTransferPacketSize = 1048576; // 1 MiB fileTransferSequenceMaxLength = 30; // Therefore, fileTransferPacketSize * fileTransferSequenceMaxLength == 30 MiB per sequence. FilePartSizePacket filePartSizePacket(fileTransferPacketSize); if (!SendPacket(&filePartSizePacket)) { Interface::PrintError("Failed to send file part size packet!\n"); return (false); } SessionSetupResponse filePartSizeResponse; if (!ReceivePacket(&filePartSizeResponse)) return (false); if (filePartSizeResponse.GetResult() != 0) { Interface::PrintError("Unexpected file part size response!\nExpected: 0\nReceived: %d\n", filePartSizeResponse.GetResult()); return (false); } } // -------------------- KIES DOESN'T DO THIS -------------------- /*DeviceTypePacket deviceTypePacket; if (!SendPacket(&deviceTypePacket)) { Interface::PrintError("Failed to request device type!\n"); return (false); } SessionSetupResponse deviceTypeResponse; if (!ReceivePacket(&deviceTypeResponse)) return (false); unsigned int deviceType = deviceTypeResponse.GetResult(); switch (deviceType) { // NOTE: If you add a new device type don't forget to update the error message below! case 0: // Galaxy S etc. case 3: // Galaxy Tab case 30: // Galaxy S 2 Skyrocket case 180: // Galaxy S etc. case 190: // M110S Galaxy S if (verbose) Interface::Print("Session begun with device of type: %d.\n\n", deviceType); else Interface::Print("Session begun.\n\n"); return (true); default: Interface::PrintError("Unexpected device info response!\nExpected: 0, 3, 30, 180 or 190\nReceived:%d\n", deviceType); return (false); }*/ Interface::Print("Session begun.\n\n"); return (true); }