Commit graph

444 commits

Author SHA1 Message Date
Pavle Goloskokovic
b151ba518a Reverting compatibility changes as they are handled by a polyfill 2018-01-06 15:12:12 +01:00
Pavle Goloskokovic
2d2bf4c0e3 Added check for touch events when trying to unlock web audio on iOS devices 2018-01-06 15:03:28 +01:00
Pavle Goloskokovic
01e5274c76 Removed completed webkit implementation compatibility TODO 2018-01-06 15:02:30 +01:00
Pavle Goloskokovic
0645145010 Added fallback to noteOff method call for webkit implementation when stopping loop buffer source 2018-01-06 15:01:41 +01:00
Pavle Goloskokovic
7f04143b7c Added fallback to noteOff method call for webkit implementation when stopping buffer source 2018-01-06 15:01:24 +01:00
Pavle Goloskokovic
cd0c6b27a7 Added fallback to noteGrainOn method call for webkit implementation when starting loop buffer source 2018-01-06 15:00:43 +01:00
Pavle Goloskokovic
00c90eb81a Added fallback to noteGrainOn method call for webkit implementation when starting buffer source 2018-01-06 14:59:56 +01:00
Pavle Goloskokovic
9665ab2f7c Added fallback to createGainNode method call for webkit implementation when creating global volume node 2018-01-06 14:58:15 +01:00
Pavle Goloskokovic
e66f1b7030 Added fallback to createGainNode method call for webkit implementation when creating global mute node 2018-01-06 14:57:50 +01:00
Pavle Goloskokovic
e635351f0b Added fallback to createGainNode method call for webkit implementation when creating sound volume node 2018-01-06 14:56:59 +01:00
Pavle Goloskokovic
a508d7ef4c Added fallback to createGainNode method call for webkit implementation when creating sound gain node 2018-01-06 14:56:39 +01:00
Pavle Goloskokovic
7c2bd98e44 Simplified logic for removal of destroyed sounds 2018-01-05 20:14:34 +01:00
Pavle Goloskokovic
78c74739fc Fixed sounds array truncate logic in update method 2018-01-05 19:35:44 +01:00
Pavle Goloskokovic
7e223685b3 Dispatching event when stopAll is called 2018-01-04 20:01:19 +01:00
Pavle Goloskokovic
734ce7e628 Dispatching event when resumeAll is called 2018-01-04 20:01:07 +01:00
Pavle Goloskokovic
4c172b6ffa Dispatching event when pauseAll is called 2018-01-04 20:00:43 +01:00
Pavle Goloskokovic
ec657a6517 Using forEachActiveSound method when updating global rate and detune settings 2018-01-04 19:53:47 +01:00
Pavle Goloskokovic
55f8ca51af Using forEachActiveSound method when destroying BaseSoundManager 2018-01-04 19:53:15 +01:00
Pavle Goloskokovic
2572b01e61 Using forEachActiveSound method for global playback methods 2018-01-04 19:52:44 +01:00
Pavle Goloskokovic
c424b61939 Added utility method forEachActiveSound that enables traversing only active (not destroyed) sounds 2018-01-04 19:51:54 +01:00
Pavle Goloskokovic
b3fad218bc Added logic for removing destroyed sounds from sounds array on BaseSoundManager update call 2018-01-04 19:50:06 +01:00
Pavle Goloskokovic
cf31ed9a4d Implemented destroy method for BaseSoundManager class 2018-01-04 19:48:00 +01:00
Pavle Goloskokovic
c919d331a6 Added docs for remove and removeByKey methods 2018-01-04 19:44:22 +01:00
Pavle Goloskokovic
267cfed1d0 Implemented removeByKey method 2018-01-04 19:43:41 +01:00
Pavle Goloskokovic
5f56d038f5 Implemented remove method 2018-01-04 19:41:43 +01:00
Pavle Goloskokovic
5790fe9a4f Reordered destroy method calls 2018-01-04 19:39:21 +01:00
Pavle Goloskokovic
03187ae8b5 Using pendingRemove flag when destroying BaseSound 2018-01-04 19:38:51 +01:00
Pavle Goloskokovic
5d5acb40a9 Added pendingRemove flag that indicates if destroy method was called on this sound 2018-01-04 19:37:20 +01:00
Pavle Goloskokovic
1a38273cd8 Implemented resumeAll method 2018-01-04 19:32:10 +01:00
Pavle Goloskokovic
17dee3cd8d Implemented pauseAll method 2018-01-04 19:30:29 +01:00
Pavle Goloskokovic
13f752baca Implemented global playAudioSprite method to enable playing audiosprite sprites on the fly 2018-01-04 19:28:34 +01:00
Pavle Goloskokovic
6a64693257 Updated global play method to accept sound config and sound marker as second argument 2018-01-04 19:27:12 +01:00
Pavle Goloskokovic
66936490a1 Implemented global play method to enable playing sounds on the fly 2018-01-04 19:24:28 +01:00
Pavle Goloskokovic
70b31c7273 Implemented stopAll method 2018-01-04 15:59:44 +01:00
Pavle Goloskokovic
4ff8fca1c5 Instantiating event dispatcher before setting any property values 2018-01-03 21:55:51 +01:00
Pavle Goloskokovic
0472463dad Instantiating event dispatcher before setting any property values 2018-01-03 21:55:41 +01:00
Pavle Goloskokovic
c293d4a516 Dispatching event when global detune value changes 2018-01-03 21:29:00 +01:00
Pavle Goloskokovic
f6976daf2b Dispatching event when global rate value changes 2018-01-03 21:28:45 +01:00
Pavle Goloskokovic
3b5289a733 Dispatching event when global volume value changes 2018-01-03 21:28:13 +01:00
Pavle Goloskokovic
3967a111a4 Dispatching event when global mute value changes 2018-01-03 21:27:53 +01:00
Pavle Goloskokovic
d73208349f Dispatching event when sound seek changes 2018-01-03 21:27:09 +01:00
Pavle Goloskokovic
dc796465b7 Dispatching event when sound detune value changes 2018-01-03 21:26:49 +01:00
Pavle Goloskokovic
de8919645a Dispatching event when sound rate value changes 2018-01-03 21:26:31 +01:00
Pavle Goloskokovic
e0591df9fc Dispatching event when sound volume value changes 2018-01-03 21:26:15 +01:00
Pavle Goloskokovic
0c70ae236e Dispatching event when sound mute value changes 2018-01-03 21:26:01 +01:00
Pavle Goloskokovic
c8a0591b62 Added SoundValueEvent to index.js 2018-01-03 21:24:47 +01:00
Pavle Goloskokovic
a157dd2ccc Added event class for sound value change 2018-01-03 21:24:33 +01:00
Pavle Goloskokovic
4210898a24 Replaced stop method call with logic needed to stop sound in order to avoiding dispatching both stop and ended events 2018-01-03 21:23:41 +01:00
Pavle Goloskokovic
89fce9135a Dispatching event when sound ends 2018-01-03 21:22:07 +01:00
Pavle Goloskokovic
3356fc2d92 Dispatching event when calling stop method 2018-01-03 21:20:40 +01:00
Pavle Goloskokovic
99accdbbd0 Dispatching event when calling resume method 2018-01-03 21:20:22 +01:00
Pavle Goloskokovic
fbc7264d4c Dispatching event when calling pause method 2018-01-03 21:20:02 +01:00
Pavle Goloskokovic
17985a0147 Dispatching event when calling play method 2018-01-03 21:19:44 +01:00
Pavle Goloskokovic
a664714c12 Removed unused dynamic fx code 2018-01-03 20:38:08 +01:00
Pavle Goloskokovic
d25b714e7e Added global playAudioSprite method that enables playing sounds from audiosprite on the fly 2018-01-03 20:35:28 +01:00
Pavle Goloskokovic
912a737561 Added global play method that enables playing sounds on the fly 2018-01-03 20:32:31 +01:00
Pavle Goloskokovic
1c896ba1f7 Removed fadeTo method 2018-01-03 20:31:33 +01:00
Pavle Goloskokovic
92ee1bb7e0 Removed fade tween property from destroy method 2018-01-03 20:31:07 +01:00
Pavle Goloskokovic
36f918c26b Removed fade tween property 2018-01-03 20:28:22 +01:00
Pavle Goloskokovic
aad8dea41b Added SoundEvent class to index.js 2017-12-22 15:47:37 +01:00
Pavle Goloskokovic
e36e18977e Dispatching loop event when sound loops 2017-12-22 15:47:15 +01:00
Pavle Goloskokovic
0ac51b879d Added SoundEvent class 2017-12-22 15:46:48 +01:00
Pavle Goloskokovic
97e648bea6 Removed debug logging 2017-12-22 15:46:05 +01:00
Pavle Goloskokovic
c569aabc73 Resetting rate updates on sound loop 2017-12-22 15:45:28 +01:00
Pavle Goloskokovic
5635c04da0 Stopping and removing loop source when stopping and removing main source 2017-12-22 15:42:45 +01:00
Pavle Goloskokovic
c15afd2d29 Setting loopTime to 0 when stopping and resetting loop source 2017-12-22 15:42:09 +01:00
Pavle Goloskokovic
9b1db4257c Setting playTime and startTime properties to loopTime value whe sound loops 2017-12-22 15:40:58 +01:00
Pavle Goloskokovic
c1688ddbfe Setting loopTime to loop source start call when parameter value when creating it 2017-12-22 15:37:36 +01:00
Pavle Goloskokovic
54de230ac4 Added loopTime property to keep track of the time at which the sound loop source should actually start playback based on BaseAudioContext.currentTime value 2017-12-22 15:35:57 +01:00
Pavle Goloskokovic
34d0e4f7a6 Setting loop source to be main source when sound loops and creating next loop source 2017-12-22 15:33:19 +01:00
Pavle Goloskokovic
cd6b6bf574 Using the same current time value for updating source playback rate and adding rate update item to the array 2017-12-22 15:29:56 +01:00
Pavle Goloskokovic
13d891893c Setting correct playback rate to loop source buffer when creating it 2017-12-22 15:27:42 +01:00
Pavle Goloskokovic
39f95cf6b4 Resetting loop source when updating sound playback rate if it is playing 2017-12-22 15:24:25 +01:00
Pavle Goloskokovic
187379ace2 Always topping and removing loop buffer source when setting loop property as it needs to be reset even if setting it to true 2017-12-22 15:21:21 +01:00
Pavle Goloskokovic
4d95cac657 Stopping and removing loop buffer source when setting loop property to false 2017-12-22 15:20:27 +01:00
Pavle Goloskokovic
b9ec8f2dea Added method for stopping and removing loop buffer source 2017-12-22 15:18:35 +01:00
Pavle Goloskokovic
15db2bac74 Moved logic for calculating loop time into separate method 2017-12-21 17:21:59 +01:00
Pavle Goloskokovic
4f6a665451 Moved loop buffer source creation and starting logic into separate method 2017-12-21 17:19:45 +01:00
Pavle Goloskokovic
46a99af255 Calculating correct value for when parameter for loop buffer source start method 2017-12-21 17:17:10 +01:00
Pavle Goloskokovic
b559985b31 Creating and starting loop buffer source only if sound is currently playing 2017-12-21 17:10:57 +01:00
Pavle Goloskokovic
4538ee9af1 Calculating when, offset and duration parameters for buffer source start method and calling it in loop setter method 2017-12-21 17:08:29 +01:00
Pavle Goloskokovic
1779bcb853 Moved loop source creation logic into loop property setter 2017-12-21 17:04:01 +01:00
Pavle Goloskokovic
8e9cc41b36 Moved sound buffer source creation logic into separate method to be able to reuse it 2017-12-21 17:02:44 +01:00
Pavle Goloskokovic
e612e2eaae Creating loop buffer source if looping is set in config 2017-12-21 16:58:43 +01:00
Pavle Goloskokovic
636275bc85 Added loop audio buffer source field 2017-12-21 16:56:19 +01:00
Pavle Goloskokovic
b2d0c72249 Added condition for handling looping in update method 2017-12-21 16:55:05 +01:00
Pavle Goloskokovic
a766ff9c2c Setting hasLooped flag when sound has ended and is supposed to loop 2017-12-21 16:53:03 +01:00
Pavle Goloskokovic
879e52a735 Added hasLooped property for WebAudioSound class 2017-12-21 16:50:44 +01:00
Pavle Goloskokovic
f19262acd4 Replaced setTargetAtTime calls with setValueAtTime calls 2017-12-18 17:29:01 +01:00
Pavle Goloskokovic
7033e1c9f5 Merge remote-tracking branch 'origin/master' 2017-12-18 17:14:55 +01:00
orblazer
09afe0be34 Fix deprecated WebAudio value change on FX 2017-12-16 02:47:30 +01:00
Pavle Goloskokovic
287dc70d61 Simplified rate updates logic in setRate method 2017-12-14 14:09:00 +01:00
Pavle Goloskokovic
06362216d1 Fixed issue with changing rate on a sound with delayed playback 2017-12-14 14:04:05 +01:00
Pavle Goloskokovic
7adb101d7e Updating rate updates correctly if delay has not yet elapsed 2017-12-13 22:49:13 +01:00
Pavle Goloskokovic
8ea3dbd6af Removed completed TODO 2017-12-13 22:48:27 +01:00
Pavle Goloskokovic
2126381bdd Updated startTime property description 2017-12-13 22:48:05 +01:00
Pavle Goloskokovic
b21331fb1c Returning difference between playTime and startTime from seek getter if delay has not yet elapsed 2017-12-13 22:47:39 +01:00
Pavle Goloskokovic
e173cac7d5 Ignoring seek setter calls on delayed playing sound if delay has not yet elapsed 2017-12-13 22:46:02 +01:00
Pavle Goloskokovic
7ee1f78f18 Ignoring resume calls on delayed playing sound if delay has not yet elapsed 2017-12-13 22:44:59 +01:00
Pavle Goloskokovic
a17ffeb5b9 Ignoring pause calls on delayed playing sound if delay has not yet elapsed 2017-12-13 22:43:42 +01:00
Pavle Goloskokovic
1993aabbf4 Resetting startTime when stopping buffer source 2017-12-13 22:42:16 +01:00
Pavle Goloskokovic
b087a92612 Setting startTime to value when sound should start playing and playTime to correct relative value 2017-12-13 22:41:33 +01:00
Pavle Goloskokovic
d4645313f4 Added startTime property to keep track of the time when the sound actually started playing music 2017-12-13 22:39:24 +01:00
Pavle Goloskokovic
52d2be65f3 Updated playTime property description 2017-12-13 22:36:57 +01:00
Pavle Goloskokovic
ca3a4b9373 Renaming startTime property to playTime 2017-12-13 22:32:34 +01:00
Pavle Goloskokovic
e8617a87a3 Taking delay config setting into account when playing sound source 2017-12-13 22:29:55 +01:00
Pavle Goloskokovic
58da23987c Removing completed TODO 2017-12-13 22:26:54 +01:00
Pavle Goloskokovic
f7ab4ca402 Resetting delay value in resetConfig method 2017-12-13 22:26:32 +01:00
Pavle Goloskokovic
e87fdb71ec Added default delay value to initial sound marker config 2017-12-13 22:25:58 +01:00
Pavle Goloskokovic
7369f04b99 Added default delay value to initial sound config 2017-12-13 22:25:22 +01:00
Pavle Goloskokovic
a13f90b4a1 Removed completed TODO 2017-12-12 20:26:11 +01:00
Pavle Goloskokovic
dca07e84fb Setting loop value at the end of applyConfig method 2017-12-12 20:21:42 +01:00
Pavle Goloskokovic
0e5b2594c5 Removing unneeded logic from loop property setter 2017-12-12 20:20:45 +01:00
Pavle Goloskokovic
95abc59e3e Resetting config when looping sound in order to reset any non-zero seek value 2017-12-12 20:18:51 +01:00
Pavle Goloskokovic
bb281605c6 Checking if looping is enabled when sound ends and if it is creating and playing source sound again 2017-12-12 20:17:42 +01:00
Pavle Goloskokovic
1f5d4f2769 Removed createBufferSource method since its logic was used only in one place 2017-12-12 20:13:58 +01:00
Pavle Goloskokovic
67477708b2 Ditching loopSource approach as logic would be too complicated when taking playback rate into account 2017-12-12 20:11:46 +01:00
Pavle Goloskokovic
47522af035 Reordering setting loop value in applyConfig before rate and detune to enable rate and detune to update loop source as well 2017-12-12 20:02:17 +01:00
Pavle Goloskokovic
c06a2bc78c Setting loop source rate in setRate method if looping is enables 2017-12-12 20:00:49 +01:00
Pavle Goloskokovic
dbc4b8b6f2 Renamed createLoopBufferSource to createAndStartLoopBufferSource and added some logic for starting loop source 2017-12-12 20:00:04 +01:00
Pavle Goloskokovic
d13bdfde62 Added createBufferSource to reuse buffer source creation logic 2017-12-12 19:58:44 +01:00
Pavle Goloskokovic
648187295e Added method for creating loop buffer source 2017-12-12 19:56:18 +01:00
Pavle Goloskokovic
d788ed3a44 Stop and remove loopSource in stopAndRemoveBufferSource 2017-12-12 19:52:24 +01:00
Pavle Goloskokovic
bca40391fe If value set to loop property is the same as config value skip any further commands 2017-12-12 19:47:57 +01:00
Pavle Goloskokovic
c8f43e7a5a Added a bit of logic and couple of TODOs to handle loop source when setting loop property value 2017-12-12 19:46:08 +01:00
Pavle Goloskokovic
bcda86c566 Setting config value when setting loop property 2017-12-12 19:44:41 +01:00
Pavle Goloskokovic
48f86abb65 Returning config value when getting loop property 2017-12-12 19:43:21 +01:00
Pavle Goloskokovic
02962f316e Defined loop property for WebAudioSound class 2017-12-12 19:42:21 +01:00
Pavle Goloskokovic
121672d442 Added loopSource field for timed loop sound source 2017-12-12 19:40:36 +01:00
Pavle Goloskokovic
429d86ba31 Added TODO for handling removed or destroyed sounds 2017-12-10 13:18:03 +01:00
Pavle Goloskokovic
c9868d5408 Implemented destroy method for WebAudioSound class 2017-12-10 13:17:39 +01:00
Pavle Goloskokovic
594d1512aa Implemented destroy method for BaseSound class 2017-12-10 13:17:17 +01:00
Pavle Goloskokovic
b5e8a60530 Saving seek value only when sound is playing or paused, for consistency 2017-12-07 20:58:54 +01:00
Pavle Goloskokovic
8d161ac06d Returning config value when paused and 0 when stopped when getting seek value 2017-12-07 20:58:07 +01:00
Pavle Goloskokovic
e4ca4d4b75 Updated description for mute property 2017-12-07 20:57:05 +01:00
Pavle Goloskokovic
361ff7ff94 Updated description for volume property 2017-12-07 20:56:51 +01:00
Pavle Goloskokovic
42003ca74c Updated description for seek property 2017-12-07 20:56:34 +01:00
Pavle Goloskokovic
d856a97e98 Reverting to resetting config on every play method call 2017-12-07 20:55:47 +01:00
Pavle Goloskokovic
11d9d5455d Resetting config on stop call 2017-12-07 20:17:38 +01:00
Pavle Goloskokovic
1973781052 Resetting config when calling play method only if current call plays different marker than previous (to enable setting seek before replaying same sound) 2017-12-07 20:17:00 +01:00
Pavle Goloskokovic
75d480ffba Added protected access modifier to overridden applyConfig method 2017-12-07 20:14:58 +01:00
Pavle Goloskokovic
c3107ca629 Setting paused time (seek) before calling stopAndRemoveBufferSource since getCurrentTime depends on startTime value and it gets reset in stopAndRemoveBufferSource method 2017-12-07 20:13:52 +01:00
Pavle Goloskokovic
039ed52cf2 Resetting startTime value inside of stopAndRemoveBufferSource method to have more consistent sound state 2017-12-07 20:11:09 +01:00
Pavle Goloskokovic
0a5e8de376 Using subclass values for duration properties if available 2017-12-06 18:07:43 +01:00
Pavle Goloskokovic
58d0be5279 Setting duration properties before calling super method 2017-12-06 18:06:39 +01:00
Pavle Goloskokovic
0338d6f7c0 Initializing duration properties before config because some config options' setters use those values (seek) 2017-12-06 18:06:05 +01:00
Pavle Goloskokovic
b01859eb06 Moved config initialization right before config options initializations 2017-12-06 18:04:18 +01:00
Pavle Goloskokovic
260d519a7e Resetting config before merging it with config provided to play method 2017-12-05 20:25:31 +01:00
Pavle Goloskokovic
99aa2b22c4 Resetting sound playback at seek time if sound is playing 2017-12-05 20:22:49 +01:00
Pavle Goloskokovic
06b7ad91fd Updated a TODO to add delay config setting 2017-12-05 20:21:14 +01:00