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}