Commit graph

411 commits

Author SHA1 Message Date
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
Pavle Goloskokovic
b3f5b03e6f Calling getCurrentTime directly when setting seek as paused time since we don't want to self-assign it 2017-12-05 20:20:33 +01:00
Pavle Goloskokovic
4e0c274ca4 No need to reset config seek value since it is reset in resetConfig method 2017-12-05 20:19:02 +01:00
Pavle Goloskokovic
44ce0edd82 Moved the same logic for calculating offset duration and startTime into createAndStartBufferSource method 2017-12-05 20:17:14 +01:00
Pavle Goloskokovic
25a11687c2 Replaced pausedTime field with config seek value 2017-12-05 20:01:06 +01:00
Pavle Goloskokovic
f347bcc45a Limiting seek value to be between 0 and current duration in seek property setter 2017-12-05 19:57:07 +01:00
Pavle Goloskokovic
7920ad3b6d Setting config seek value to value provided to seek property setter 2017-12-05 19:55:48 +01:00
Pavle Goloskokovic
d7f65cc003 Added comments to make it easier to figure out isPaused and isPlaying current values at any time 2017-12-05 19:51:15 +01:00
Pavle Goloskokovic
1590ab2dda Returning config seek value in seek property getter if is not playing 2017-12-05 19:48:52 +01:00
Pavle Goloskokovic
5a5444e936 Returning value from getCurrentTime in seek property getter only if sound is currently playing 2017-12-05 19:47:41 +01:00
Pavle Goloskokovic
6c7f7ae732 Setting pausedTime to current seek value 2017-12-05 19:45:33 +01:00
Pavle Goloskokovic
aa503131a4 Returning value from getCurrentTime in seek property getter 2017-12-05 19:44:37 +01:00
Pavle Goloskokovic
a27f32b3a3 Added getCurrentTime method to WebAudioSound class to precisely calculate current sound time 2017-12-05 19:43:08 +01:00
Pavle Goloskokovic
0543b8d5ef Calling resetConfig after starting buffer sound 2017-12-05 19:41:07 +01:00
Pavle Goloskokovic
344aec2b86 Added resetConfig method where seek config, and later delay config, are reset 2017-12-05 19:40:25 +01:00
Pavle Goloskokovic
b2950775a1 Applying config right before calling start on buffer source 2017-12-05 19:36:59 +01:00
Pavle Goloskokovic
7bde818fa5 Override applyConfig method and moved rateUpdates resetting logic there 2017-12-05 19:35:26 +01:00
Pavle Goloskokovic
dc4bb51b93 Updated few members access modifiers from private to protected 2017-12-05 19:31:58 +01:00
Pavle Goloskokovic
00c2fd3189 Moved totalRate initialisation above setting config options since it is used in some of the config options' setters (detune, rate) 2017-12-05 19:28:08 +01:00
Pavle Goloskokovic
fd96a329de Moved isPlaying and isPaused flags initialisation above setting config options since they are used in some of the config options' setters (detune, rate) 2017-12-05 19:24:17 +01:00
Pavle Goloskokovic
97441f3bc8 Adding initial rate update to help calculate seek 2017-12-05 19:21:23 +01:00
Pavle Goloskokovic
ad687016ad Included config seek into calculation when playing sound 2017-12-05 19:19:19 +01:00
Pavle Goloskokovic
3176293f53 Resetting rateUpdates before playing sound source 2017-12-05 19:14:53 +01:00
Pavle Goloskokovic
fb9bc44685 Save rate updates only when sound is playing 2017-12-05 19:13:09 +01:00
Pavle Goloskokovic
7dd0a877ec Save sound current time instead of context current time 2017-12-05 19:12:18 +01:00
Pavle Goloskokovic
54f5e6141d Adding an item to rateUpdates every time setRate method is called 2017-12-05 19:11:30 +01:00
Pavle Goloskokovic
bc486daaa3 Adding rateUpdates field to WebAudioSound class to keep track of all rate changes 2017-12-05 19:09:34 +01:00
Pavle Goloskokovic
6e85e6a419 Adding seek property to WebAudioSound class 2017-12-05 19:07:40 +01:00
Pavle Goloskokovic
de1657de01 Updated comments with private and readonly descriptors 2017-12-04 22:09:41 +01:00
Pavle Goloskokovic
fe36e80f24 Removing detune range limitation 2017-12-04 22:05:29 +01:00
Pavle Goloskokovic
66d216af19 Reading total rate value directly from totalRate property in setRate 2017-12-01 15:41:24 +01:00
Pavle Goloskokovic
a3dbb51d3e Removed return value for setRate method as it is not needed because that value is now stored in totalRate property 2017-12-01 15:40:35 +01:00
Pavle Goloskokovic
411fdd48b2 Setting totalRate value in setRate method 2017-12-01 15:33:02 +01:00
Pavle Goloskokovic
fe9c9c0819 Added totalRate property to BaseSound class 2017-12-01 15:32:03 +01:00