diff --git a/lib/graphics.js b/lib/graphics.js index 3ce3987..3ad0340 100644 --- a/lib/graphics.js +++ b/lib/graphics.js @@ -68,17 +68,17 @@ function getVendorFromModel(model) { { pattern: '^ACER.+', manufacturer: 'Acer' }, { pattern: '^AOC.+', manufacturer: 'AOC Monitors' }, { pattern: '^HP.+', manufacturer: 'HP' }, - { pattern: '^EIZO.+', manufacturer: 'Eizo' }, - { pattern: '^PHILIPS.+', manufacturer: 'Philips' }, - { pattern: '^IIYAMA.+', manufacturer: 'Iiyama' }, - { pattern: '^SHARP.+', manufacturer: 'Sharp' }, - { pattern: '^NEC.+', manufacturer: 'NEC' }, - { pattern: '^LENOVO.+', manufacturer: 'Lenovo' }, - { pattern: 'COMPAQ.+', manufacturer: 'Compaq' }, - { pattern: 'APPLE.+', manufacturer: 'Apple' }, - { pattern: 'INTEL.+', manufacturer: 'Intel' }, - { pattern: 'AMD.+', manufacturer: 'AMD' }, - { pattern: 'NVIDIA.+', manufacturer: 'NVDIA' }, + { pattern: '^EIZO.?', manufacturer: 'Eizo' }, + { pattern: '^PHILIPS.?', manufacturer: 'Philips' }, + { pattern: '^IIYAMA.?', manufacturer: 'Iiyama' }, + { pattern: '^SHARP.?', manufacturer: 'Sharp' }, + { pattern: '^NEC.?', manufacturer: 'NEC' }, + { pattern: '^LENOVO.?', manufacturer: 'Lenovo' }, + { pattern: 'COMPAQ.?', manufacturer: 'Compaq' }, + { pattern: 'APPLE.?', manufacturer: 'Apple' }, + { pattern: 'INTEL.?', manufacturer: 'Intel' }, + { pattern: 'AMD.?', manufacturer: 'AMD' }, + { pattern: 'NVIDIA.?', manufacturer: 'NVDIA' }, ]; let result = ''; @@ -125,6 +125,11 @@ function getMetalVersion(id) { 'spdisplays_mtlgpufamilyapple5': 'apple5', 'spdisplays_mtlgpufamilyapple6': 'apple6', 'spdisplays_mtlgpufamilyapple7': 'apple7', + 'spdisplays_metalfeaturesetfamily11': 'family1_v1', + 'spdisplays_metalfeaturesetfamily12': 'family1_v2', + 'spdisplays_metalfeaturesetfamily13': 'family1_v3', + 'spdisplays_metalfeaturesetfamily14': 'family1_v4', + 'spdisplays_metalfeaturesetfamily21': 'family2_v1' }; return families[id] || ''; } @@ -139,9 +144,9 @@ function graphics(callback) { try { graphicsArr.forEach(function (item) { // controllers - const bus = ((item.sppci_bus || '').indexOf('builtin') ? 'Built-In' : ((item.sppci_bus || '').indexOf('pcie') ? 'PCIE' : '')); - const vram = (parseInt((item._spdisplays_vram || ''), 10) || 0) * (((item._spdisplays_vram || '').indexOf('GB') > -1) ? 1024 : 1); - const vramDyn = (parseInt((item.spdisplays_vram_shares || ''), 10) || 0) * (((item.spdisplays_vram_shares || '').indexOf('GB') > -1) ? 1024 : 1); + const bus = ((item.sppci_bus || '').indexOf('builtin') >= 0 ? 'Built-In' : ((item.sppci_bus || '').indexOf('pcie') >= 0 ? 'PCIe' : '')); + const vram = (parseInt((item.spdisplays_vram || ''), 10) || 0) * (((item.spdisplays_vram || '').indexOf('GB') > -1) ? 1024 : 1); + const vramDyn = (parseInt((item.spdisplays_vram_shared || ''), 10) || 0) * (((item.spdisplays_vram_shared || '').indexOf('GB') > -1) ? 1024 : 1); let metalVersion = getMetalVersion(item.spdisplays_metal || item.spdisplays_metalfamily || ''); res.controllers.push({ vendor: getVendorFromModel(item.spdisplays_vendor || '') || item.spdisplays_vendor || '', @@ -172,7 +177,7 @@ function graphics(callback) { productionYear: displayItem['_spdisplays_display-year'] || null, serial: serial !== '0' ? serial : null, displayId: displayItem['_spdisplays_displayID'] || null, - main: displayItem['spdisplays_main'] ? displayItem['spdisplays_main'] === 'spdisplays_yes' : true, + main: displayItem['spdisplays_main'] ? displayItem['spdisplays_main'] === 'spdisplays_yes' : false, builtin: (displayItem['spdisplays_display_type'] || '').indexOf('built-in') >= 0, connection: ((connectionType.indexOf('_internal')) ? 'Internal' : ((connectionType.indexOf('_displayport')) ? 'Display Port' : ((connectionType.indexOf('_hdmi')) ? 'HDMI' : ''))), sizeX: null,