// Cover Art Dimensions
// (c) 2020 Steve Banham
scriptName = "Cover Art Dimensions Column";
scriptVersion = "1.5";
scriptDate = "22/03/2020";
scriptCopyright = "(c) 2020 Steve Banham";
scriptMinVersion = "12";
scriptURL = "https://resource.dopus.com/t/cover-art-dimensions-column";
scriptDesc = "Adds a new column displaying the dimensions of the cover art in a music file.";
// This is a script for Directory Opus.
// See https://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information.
// Called by Directory Opus to initialize the script
function OnInit(initData)
{
initData.name = scriptName;
initData.version = scriptVersion;
initData.copyright = scriptCopyright;
initData.url = scriptURL;
initData.desc = scriptDesc;
initData.default_enable = true;
initData.min_version = scriptMinVersion;
initData.config_desc = DOpus.Create.Map();
initData.config_groups = DOpus.Create.Map();
var configName = "";
configName = "Directories";
initData.Config[configName] = "
";
initData.config_desc(configName) = "String to show for directories (Can be blank).";
initData.config_groups(configName) = "No Cover Art";
configName = "Files";
initData.Config[configName] = "---";
initData.config_desc(configName) = "String to show for files without cover art (Can be blank).";
initData.config_groups(configName) = "No Cover Art";
configName = "Bit Depth";
initData.Config[configName] = true;
initData.config_desc(configName) = "Include bit depth in column.";
initData.config_groups(configName) = "Include In Column";
configName = "Image Type";
initData.Config[configName] = true;
initData.config_desc(configName) = "Include the image type in the column.";
initData.config_groups(configName) = "Include In Column";
configName = "Image Size";
initData.config[configName] = true;
initData.config_desc(configName) = "Include the image size in the column.";
initData.config_groups(configName) = "Include In Column";
var col = initData.AddColumn();
col.name = "CoverArtDim";
col.method = "OnCoverArtDim";
col.label = "Cover Art Dimensions";
col.header = "Cover Art Dimensions";
col.autogroup = true;
col.autorefresh = true;
col.justify = "left";
col.match.push_back("Yes");
}
function OnCoverArtDim(scriptColData) {
if (scriptColData.item.is_dir) {
scriptColData.value = Script.Config["Directories"];
return;
}
if (scriptColData.item.metadata() == "audio" && scriptColData.item.metadata.audio.coverart > 0) {
var caExt = scriptColData.item.metadata.audio.coverart(0).ext;
var caSize = scriptColData.item.metadata.audio.coverart(0).size;
if(caExt == ".jpg"){
caExt = "JPEG Image";
}
else {
caExt = "PNG Image";
}
var colData = scriptColData.item.metadata.audio.coverart(0).width + " x " + scriptColData.item.metadata.audio.coverart(0).height;
if (Script.Config["Bit Depth"] == true) {
colData = colData + " x " + scriptColData.item.metadata.audio.coverart(0).depth;
}
if (Script.Config["Image Size"] == true) {
colData = colData + " (" + caSize.fmt() + ")";
}
if (Script.Config["Image Type"] == true) {
colData = colData + " " + caExt;
}
scriptColData.value = colData;
}
else {
scriptColData.value = Script.Config["Files"];
}
}
function OnAboutScript(aboutData)
{
dlg = DOpus.Dlg;
dlg.window = aboutData.window;
dlg.title = scriptName;
dlg.message = scriptName + " v" + scriptVersion + "\t\t" + scriptDate+ "\n\n" + scriptDesc + "\n\n" + scriptCopyright;
dlg.buttons = "Close";
dlg.icon = "info";
dlg.show;
}