001package net.filebot.mediainfo;
002
003import com.sun.jna.Platform;
004
005public class MediaInfoException extends RuntimeException {
006
007        public MediaInfoException(String message, Throwable cause) {
008                super(message, cause);
009        }
010
011        public MediaInfoException(LinkageError cause) {
012                this(getLinkageErrorMessage(cause), cause);
013        }
014
015        private static String getLinkageErrorMessage(LinkageError e) {
016                String name = Platform.isWindows() ? "MediaInfo.dll" : Platform.isMac() ? "libmediainfo.dylib" : "libmediainfo.so";
017                String arch = System.getProperty("os.arch");
018                String bit = Platform.is64Bit() ? "64-bit" : "32-bit";
019                return String.format("Unable to load %s (%s) native library %s: %s", arch, bit, name, e.getMessage());
020        }
021
022}