1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-01-18 02:31:10 +01:00

Add support for playing sounds

Summary:
Ref T5369. New HTML5 version without flash dependencies.

This doesn't play any sounds.

Test Plan: Did not play any sounds.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: joshuaspence, epriestley

Maniphest Tasks: T5369

Differential Revision: https://secure.phabricator.com/D9535
This commit is contained in:
epriestley 2015-03-10 14:20:00 -07:00
parent 10f1692b1b
commit 5afa2c3b62
5 changed files with 125 additions and 81 deletions

View file

@ -8,7 +8,7 @@
return array(
'names' => array(
'core.pkg.css' => '70320e8a',
'core.pkg.js' => '5a1c336d',
'core.pkg.js' => '28ef0e70',
'darkconsole.pkg.js' => '8ab24e01',
'differential.pkg.css' => '1940be3f',
'differential.pkg.js' => '53c1ccc2',
@ -207,7 +207,8 @@ return array(
'rsrc/externals/javelin/lib/Resource.js' => '44959b73',
'rsrc/externals/javelin/lib/Routable.js' => 'b3e7d692',
'rsrc/externals/javelin/lib/Router.js' => '29274e2b',
'rsrc/externals/javelin/lib/Scrollbar.js' => '1feea462',
'rsrc/externals/javelin/lib/Scrollbar.js' => '1ed54a27',
'rsrc/externals/javelin/lib/Sound.js' => '59655c83',
'rsrc/externals/javelin/lib/URI.js' => '6eff08aa',
'rsrc/externals/javelin/lib/Vector.js' => '2caa8fb8',
'rsrc/externals/javelin/lib/WebSocket.js' => 'e292eaf4',
@ -347,15 +348,14 @@ return array(
'rsrc/image/texture/table_header_tall.png' => 'd56b434f',
'rsrc/js/application/aphlict/Aphlict.js' => '2be71d56',
'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '830b3278',
'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => '851f167c',
'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => 'bdf2226d',
'rsrc/js/application/aphlict/behavior-aphlict-status.js' => 'ea681761',
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de',
'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '11e2dcf2',
'rsrc/js/application/conpherence/behavior-durable-column.js' => '5fc7fac0',
'rsrc/js/application/conpherence/behavior-menu.js' => '6bc52765',
'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861',
'rsrc/js/application/conpherence/behavior-widget-pane.js' => '2c1cd7f5',
'rsrc/js/application/conpherence/behavior-durable-column.js' => 'e4affa94',
'rsrc/js/application/conpherence/behavior-menu.js' => '869e3445',
'rsrc/js/application/conpherence/behavior-pontificate.js' => '86df5915',
'rsrc/js/application/conpherence/behavior-widget-pane.js' => '40b1ff90',
'rsrc/js/application/countdown/timer.js' => 'e4cc26b3',
'rsrc/js/application/dashboard/behavior-dashboard-async-panel.js' => '469c0d9e',
'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => '82439934',
@ -517,7 +517,6 @@ return array(
'conpherence-menu-css' => 'c6ac5299',
'conpherence-message-pane-css' => '5930260a',
'conpherence-notification-css' => '04a6e10a',
'conpherence-thread-manager' => '11e2dcf2',
'conpherence-update-css' => '1099a660',
'conpherence-widget-pane-css' => '3d575438',
'differential-changeset-view-css' => '6a8b172a',
@ -544,7 +543,7 @@ return array(
'javelin-aphlict' => '2be71d56',
'javelin-behavior' => '61cbc29a',
'javelin-behavior-aphlict-dropdown' => '830b3278',
'javelin-behavior-aphlict-listen' => '851f167c',
'javelin-behavior-aphlict-listen' => 'bdf2226d',
'javelin-behavior-aphlict-status' => 'ea681761',
'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884',
'javelin-behavior-aphront-crop' => 'fa0f4fc2',
@ -557,9 +556,9 @@ return array(
'javelin-behavior-boards-dropdown' => '0ec56e1d',
'javelin-behavior-choose-control' => '6153c708',
'javelin-behavior-config-reorder-fields' => '14a827de',
'javelin-behavior-conpherence-menu' => '6bc52765',
'javelin-behavior-conpherence-pontificate' => '21ba5861',
'javelin-behavior-conpherence-widget-pane' => '2c1cd7f5',
'javelin-behavior-conpherence-menu' => '869e3445',
'javelin-behavior-conpherence-pontificate' => '86df5915',
'javelin-behavior-conpherence-widget-pane' => '40b1ff90',
'javelin-behavior-countdown-timer' => 'e4cc26b3',
'javelin-behavior-dark-console' => '08883e8b',
'javelin-behavior-dashboard-async-panel' => '469c0d9e',
@ -584,7 +583,7 @@ return array(
'javelin-behavior-diffusion-locate-file' => '6d3e1947',
'javelin-behavior-diffusion-pull-lastmodified' => '2b228192',
'javelin-behavior-doorkeeper-tag' => 'e5822781',
'javelin-behavior-durable-column' => '5fc7fac0',
'javelin-behavior-durable-column' => 'e4affa94',
'javelin-behavior-error-log' => '6882e80a',
'javelin-behavior-fancy-datepicker' => 'c51ae228',
'javelin-behavior-global-drag-and-drop' => '07f199d8',
@ -678,7 +677,8 @@ return array(
'javelin-resource' => '44959b73',
'javelin-routable' => 'b3e7d692',
'javelin-router' => '29274e2b',
'javelin-scrollbar' => '1feea462',
'javelin-scrollbar' => '1ed54a27',
'javelin-sound' => '59655c83',
'javelin-stratcom' => '6c53634d',
'javelin-tokenizer' => '7644823e',
'javelin-typeahead' => '70baed2f',
@ -899,16 +899,6 @@ return array(
'javelin-install',
'javelin-util',
),
'11e2dcf2' => array(
'javelin-dom',
'javelin-util',
'javelin-stratcom',
'javelin-install',
'javelin-workflow',
'javelin-router',
'javelin-behavior-device',
'javelin-vector',
),
'13c739ea' => array(
'javelin-behavior',
'javelin-stratcom',
@ -962,7 +952,7 @@ return array(
'javelin-dom',
'javelin-reactor-dom',
),
'1feea462' => array(
'1ed54a27' => array(
'javelin-install',
'javelin-dom',
'javelin-stratcom',
@ -980,14 +970,6 @@ return array(
'phabricator-phtize',
'changeset-view-manager',
),
'21ba5861' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-workflow',
'javelin-stratcom',
'conpherence-thread-manager',
),
'2290aeef' => array(
'javelin-install',
'javelin-dom',
@ -1032,19 +1014,6 @@ return array(
'javelin-stratcom',
'javelin-dom',
),
'2c1cd7f5' => array(
'javelin-behavior',
'javelin-dom',
'javelin-stratcom',
'javelin-workflow',
'javelin-util',
'phabricator-notification',
'javelin-behavior-device',
'phuix-dropdown-menu',
'phuix-action-list-view',
'phuix-action-view',
'conpherence-thread-manager',
),
'2c426492' => array(
'javelin-behavior',
'javelin-dom',
@ -1100,6 +1069,18 @@ return array(
'javelin-dom',
'javelin-reactor-dom',
),
'40b1ff90' => array(
'javelin-behavior',
'javelin-dom',
'javelin-stratcom',
'javelin-workflow',
'javelin-util',
'phabricator-notification',
'javelin-behavior-device',
'phuix-dropdown-menu',
'phuix-action-list-view',
'phuix-action-view',
),
42126667 => array(
'javelin-behavior',
'javelin-dom',
@ -1196,6 +1177,9 @@ return array(
'javelin-vector',
'javelin-dom',
),
'59655c83' => array(
'javelin-install',
),
'59b251eb' => array(
'javelin-behavior',
'javelin-stratcom',
@ -1219,15 +1203,6 @@ return array(
'javelin-dom',
'javelin-vector',
),
'5fc7fac0' => array(
'javelin-behavior',
'javelin-dom',
'javelin-stratcom',
'javelin-scrollbar',
'javelin-quicksand',
'phabricator-keyboard-shortcut',
'conpherence-thread-manager',
),
'5fefb143' => array(
'javelin-behavior',
'javelin-dom',
@ -1268,18 +1243,6 @@ return array(
'69adf288' => array(
'javelin-install',
),
'6bc52765' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-stratcom',
'javelin-workflow',
'javelin-behavior-device',
'javelin-history',
'javelin-vector',
'phabricator-shaped-request',
'conpherence-thread-manager',
),
'6c2b09a2' => array(
'javelin-install',
'javelin-util',
@ -1466,19 +1429,6 @@ return array(
'javelin-uri',
'javelin-routable',
),
'851f167c' => array(
'javelin-behavior',
'javelin-aphlict',
'javelin-stratcom',
'javelin-request',
'javelin-uri',
'javelin-dom',
'javelin-json',
'javelin-router',
'javelin-util',
'javelin-leader',
'phabricator-notification',
),
'85ea0626' => array(
'javelin-install',
),
@ -1489,6 +1439,24 @@ return array(
'phabricator-tooltip',
'changeset-view-manager',
),
'869e3445' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-stratcom',
'javelin-workflow',
'javelin-behavior-device',
'javelin-history',
'javelin-vector',
'phabricator-shaped-request',
),
'86df5915' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-workflow',
'javelin-stratcom',
),
'87cb6b51' => array(
'javelin-behavior',
'javelin-dom',
@ -1744,6 +1712,20 @@ return array(
'javelin-util',
'javelin-request',
),
'bdf2226d' => array(
'javelin-behavior',
'javelin-aphlict',
'javelin-stratcom',
'javelin-request',
'javelin-uri',
'javelin-dom',
'javelin-json',
'javelin-router',
'javelin-util',
'javelin-leader',
'javelin-sound',
'phabricator-notification',
),
'be807912' => array(
'javelin-behavior',
'javelin-dom',
@ -1860,6 +1842,14 @@ return array(
'javelin-dom',
'javelin-uri',
),
'e4affa94' => array(
'javelin-behavior',
'javelin-dom',
'javelin-stratcom',
'javelin-scrollbar',
'javelin-quicksand',
'phabricator-keyboard-shortcut',
),
'e4cc26b3' => array(
'javelin-behavior',
'javelin-dom',

View file

@ -125,6 +125,7 @@ abstract class CelerityResourceController extends PhabricatorController {
'woff2' => 'font/woff2',
'eot' => 'font/eot',
'ttf' => 'font/ttf',
'mp3' => 'audio/mpeg',
);
}

View file

@ -37,6 +37,7 @@ abstract class CelerityResourcesOnDisk extends CelerityPhysicalResources {
'woff2',
'ttf',
'eot',
'mp3',
);
}

View file

@ -0,0 +1,38 @@
/**
* @requires javelin-install
* @provides javelin-sound
* @javelin
*/
JX.install('Sound', {
statics: {
_sounds: {},
load: function(uri) {
var self = JX.Sound;
if (!(uri in self._sounds)) {
self._sounds[uri] = JX.$N(
'audio',
{
src: uri,
preload: 'auto'
});
}
},
play: function(uri) {
var self = JX.Sound;
self.load(uri);
var sound = self._sounds[uri];
try {
sound.play();
} catch (ex) {
JX.log(ex);
}
}
}
});

View file

@ -10,6 +10,7 @@
* javelin-router
* javelin-util
* javelin-leader
* javelin-sound
* phabricator-notification
*/
@ -97,4 +98,17 @@ JX.behavior('aphlict-listen', function(config) {
.setHandler(onAphlictMessage)
.start();
JX.Leader.listen('onReceiveBroadcast', function(message, is_leader) {
if (message.type !== 'sound') {
return;
}
if (!is_leader) {
return;
}
JX.Sound.play(message.data);
});
});