/*
    This file is part of Android File Transfer For Linux.
    Copyright (C) 2015  Vladimir Menshakov

    Android File Transfer For Linux 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.

    Android File Transfer For Linux 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 Android File Transfer For Linux.
    If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef USB_USB_H
#define USB_USB_H

#include <usb/Exception.h>
#include <usb/usb.h>

#define USB_CALL(...) do { int _r_ = (__VA_ARGS__); if (_r_ != kIOReturnSuccess) throw mtp::usb::Exception(#__VA_ARGS__, _r_) ; } while(false)

#endif


/*
    This file is part of Android File Transfer For Linux.
    Copyright (C) 2015  Vladimir Menshakov

    Android File Transfer For Linux 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.

    Android File Transfer For Linux 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 Android File Transfer For Linux.
    If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef USB_USB_H
#define USB_USB_H

#include <usb/Exception.h>
#include <usb/usb.h>
#include <mtp/usb/DeviceNotFoundException.h>

#define USB_CALL(...) \
	do { int _r_ = (__VA_ARGS__); \
		switch(_r_) { \
			case kIOReturnSuccess  : break; \
			case kIOReturnNoDevice : throw mtp::usb::DeviceNotFoundException(); \
			default: throw mtp::usb::Exception(#__VA_ARGS__, _r_) ; \
		} \
	} while(false)

#endif


Add DeviceNotFoundException throw on mac
Add DeviceNotFoundException throw on mac
