diff --git a/README.md b/README.md index 20be87c..e0046dc 100755 --- a/README.md +++ b/README.md @@ -672,6 +672,7 @@ Below is the full list of capabilities | MICROPHONE | Running on hardware that includes a microphone. | | SMARTSTRAP | Running on hardware that includes a smartstrap connector. | | SMARTSTRAP_POWER | Running on hardware that includes a powered smartstrap connector. | +| SPEAKER | Running on hardware that includes a speaker. | | HEALTH | Running on hardware that supports Pebble Health and the HealthService API. | | RECT | Running on hardware with a rectangular display. | | ROUND | Running on hardware with a round display. | diff --git a/src/scripts/lib/utils.js b/src/scripts/lib/utils.js index 959ad4c..d5c4dc5 100644 --- a/src/scripts/lib/utils.js +++ b/src/scripts/lib/utils.js @@ -84,6 +84,11 @@ module.exports.capabilityMap = { minFwMajor: 3, minFwMinor: 4 }, + SPEAKER: { + platforms: ['emery', 'flint'], + minFwMajor: 4, + minFwMinor: 9 + }, HEALTH: { platforms: ['basalt', 'chalk', 'diorite', 'emery', 'flint', 'gabbro'], minFwMajor: 3, diff --git a/test/spec/lib/clay-config.js b/test/spec/lib/clay-config.js index f50aa0e..66b6d3d 100644 --- a/test/spec/lib/clay-config.js +++ b/test/spec/lib/clay-config.js @@ -82,6 +82,7 @@ describe('ClayConfig', function() { testCapabilities('aplite', 2, 9, ['MICROPHONE'], 0); testCapabilities('aplite', 2, 9, ['SMARTSTRAP'], 0); testCapabilities('aplite', 2, 9, ['SMARTSTRAP_POWER'], 0); + testCapabilities('aplite', 2, 9, ['SPEAKER'], 0); testCapabilities('aplite', 2, 9, ['HEALTH'], 0); testCapabilities('aplite', 2, 9, ['RECT'], 1); testCapabilities('aplite', 2, 9, ['ROUND'], 0); @@ -105,6 +106,7 @@ describe('ClayConfig', function() { testCapabilities('aplite', 3, 4, ['SMARTSTRAP'], 0); testCapabilities('aplite', 3, 3, ['SMARTSTRAP'], 0); testCapabilities('aplite', 3, 10, ['SMARTSTRAP_POWER'], 0); + testCapabilities('aplite', 3, 10, ['SPEAKER'], 0); testCapabilities('aplite', 3, 10, ['HEALTH'], 0); testCapabilities('aplite', 3, 9, ['HEALTH'], 0); testCapabilities('aplite', 3, 10, ['RECT'], 1); @@ -131,6 +133,7 @@ describe('ClayConfig', function() { testCapabilities('basalt', 3, 10, ['SMARTSTRAP_POWER'], 1); testCapabilities('basalt', 3, 4, ['SMARTSTRAP_POWER'], 1); testCapabilities('basalt', 3, 3, ['SMARTSTRAP_POWER'], 0); + testCapabilities('basalt', 3, 3, ['SPEAKER'], 0); testCapabilities('basalt', 3, 10, ['HEALTH'], 1); testCapabilities('basalt', 3, 9, ['HEALTH'], 0); testCapabilities('basalt', 3, 10, ['RECT'], 1); @@ -157,6 +160,7 @@ describe('ClayConfig', function() { testCapabilities('chalk', 3, 10, ['SMARTSTRAP_POWER'], 1); testCapabilities('chalk', 3, 4, ['SMARTSTRAP_POWER'], 1); testCapabilities('chalk', 3, 3, ['SMARTSTRAP_POWER'], 0); + testCapabilities('chalk', 3, 3, ['SPEAKER'], 0); testCapabilities('chalk', 3, 10, ['HEALTH'], 1); testCapabilities('chalk', 3, 9, ['HEALTH'], 0); testCapabilities('chalk', 3, 10, ['RECT'], 0); @@ -183,6 +187,7 @@ describe('ClayConfig', function() { testCapabilities('diorite', 3, 10, ['SMARTSTRAP_POWER'], 0); testCapabilities('diorite', 3, 4, ['SMARTSTRAP_POWER'], 0); testCapabilities('diorite', 3, 3, ['SMARTSTRAP_POWER'], 0); + testCapabilities('diorite', 3, 3, ['SPEAKER'], 0); testCapabilities('diorite', 3, 10, ['HEALTH'], 1); testCapabilities('diorite', 3, 9, ['HEALTH'], 0); testCapabilities('diorite', 3, 10, ['RECT'], 1); @@ -209,6 +214,7 @@ describe('ClayConfig', function() { testCapabilities('emery', 3, 10, ['SMARTSTRAP_POWER'], 1); testCapabilities('emery', 3, 4, ['SMARTSTRAP_POWER'], 1); testCapabilities('emery', 3, 3, ['SMARTSTRAP_POWER'], 0); + testCapabilities('emery', 4, 10, ['SPEAKER'], 1); testCapabilities('emery', 3, 10, ['HEALTH'], 1); testCapabilities('emery', 3, 9, ['HEALTH'], 0); testCapabilities('emery', 3, 10, ['RECT'], 1); @@ -235,6 +241,7 @@ describe('ClayConfig', function() { testCapabilities('flint', 3, 10, ['SMARTSTRAP_POWER'], 0); testCapabilities('flint', 3, 4, ['SMARTSTRAP_POWER'], 0); testCapabilities('flint', 3, 3, ['SMARTSTRAP_POWER'], 0); + testCapabilities('flint', 4, 10, ['SPEAKER'], 1); testCapabilities('flint', 3, 10, ['HEALTH'], 1); testCapabilities('flint', 3, 9, ['HEALTH'], 0); testCapabilities('flint', 3, 10, ['RECT'], 1); @@ -257,6 +264,7 @@ describe('ClayConfig', function() { testCapabilities('gabbro', 3, 10, ['MICROPHONE'], 1); testCapabilities('gabbro', 3, 10, ['SMARTSTRAP'], 0); testCapabilities('gabbro', 3, 10, ['SMARTSTRAP_POWER'], 0); + testCapabilities('gabbro', 3, 10, ['SPEAKER'], 0); testCapabilities('gabbro', 3, 10, ['HEALTH'], 1); testCapabilities('gabbro', 3, 10, ['RECT'], 0); testCapabilities('gabbro', 3, 10, ['ROUND'], 1);