/* Copyright 2019-2020 Dmitry Isaenko This file is part of NS-USBloader. NS-USBloader is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. NS-USBloader is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with NS-USBloader. If not, see . */ package nsusbloader.Utilities.nxdumptool; import nsusbloader.com.usb.UsbConnect; import nsusbloader.ModelControllers.CancellableRunnable; import nsusbloader.ModelControllers.ILogPrinter; import nsusbloader.ModelControllers.Log; import nsusbloader.NSLDataTypes.EModule; import nsusbloader.NSLDataTypes.EMsgType; import org.usb4java.DeviceHandle; public class NxdtTask extends CancellableRunnable { private final ILogPrinter logPrinter; private final String saveToLocation; public NxdtTask(String saveToLocation){ this.logPrinter = Log.getPrinter(EModule.NXDT); this.saveToLocation = saveToLocation; } @Override public void run() { print("Save to location: "+ saveToLocation, EMsgType.INFO); print("=============== nxdumptool ===============", EMsgType.INFO); UsbConnect usbConnect = UsbConnect.connectHomebrewMode(logPrinter); if (! usbConnect.isConnected()){ logPrinter.close(); return; } DeviceHandle handler = usbConnect.getNsHandler(); try { new NxdtUsbAbi1(handler, logPrinter, saveToLocation, this); } catch (Exception e){ print(e.getMessage(), EMsgType.FAIL); } print(".:: Complete ::.", EMsgType.PASS); usbConnect.close(); logPrinter.updateOneLinerStatus(true); logPrinter.close(); } private void print(String message, EMsgType type){ try { logPrinter.print(message, type); } catch (InterruptedException ie){ ie.printStackTrace(); } } }