src/app/services/player.service.ts
Properties |
Methods |
constructor(effectServ: EffectsService, eqServ: EQService)
|
|||||||||
Defined in src/app/services/player.service.ts:36
|
|||||||||
Parameters :
|
activateEffect | ||||||
activateEffect(deck: , i: )
|
||||||
Defined in src/app/services/player.service.ts:96
|
||||||
Parameters :
Returns :
void
|
adjustHeight | ||||||
adjustHeight(deck: , height: )
|
||||||
Defined in src/app/services/player.service.ts:115
|
||||||
Parameters :
Returns :
void
|
applyEffects |
applyEffects()
|
Defined in src/app/services/player.service.ts:70
|
Returns :
void
|
createLoop | ||||||||
createLoop(deck: , start: , end: )
|
||||||||
Defined in src/app/services/player.service.ts:112
|
||||||||
Parameters :
Returns :
any
|
equalizer |
equalizer()
|
Defined in src/app/services/player.service.ts:77
|
Returns :
any
|
getCurrentTime | ||||
getCurrentTime(deck: )
|
||||
Defined in src/app/services/player.service.ts:103
|
||||
Parameters :
Returns :
any
|
getDuration | ||||
getDuration(deck: )
|
||||
Defined in src/app/services/player.service.ts:106
|
||||
Parameters :
Returns :
any
|
getInstance | ||||
getInstance(deck: )
|
||||
Defined in src/app/services/player.service.ts:49
|
||||
Parameters :
Returns :
any
|
isPlaying | ||||
isPlaying(deck: )
|
||||
Defined in src/app/services/player.service.ts:67
|
||||
Parameters :
Returns :
any
|
load | ||||||
load(deck: , song: )
|
||||||
Defined in src/app/services/player.service.ts:61
|
||||||
Parameters :
Returns :
void
|
on | ||||||||
on(deck: , event: , callback: )
|
||||||||
Defined in src/app/services/player.service.ts:58
|
||||||||
Parameters :
Returns :
void
|
playFromPosition | ||||||
playFromPosition(deck: , start: )
|
||||||
Defined in src/app/services/player.service.ts:109
|
||||||
Parameters :
Returns :
void
|
playPause | ||||
playPause(deck: )
|
||||
Defined in src/app/services/player.service.ts:64
|
||||
Parameters :
Returns :
void
|
save | ||||||
save(deck: , wavesurfer: )
|
||||||
Defined in src/app/services/player.service.ts:43
|
||||||
Parameters :
Returns :
void
|
saveEffects | ||||||||
saveEffects(deck: , i: , effect: )
|
||||||||
Defined in src/app/services/player.service.ts:89
|
||||||||
Parameters :
Returns :
void
|
saveEQ | ||||||||||
saveEQ(bass: , mid: , trebble: , deck: )
|
||||||||||
Defined in src/app/services/player.service.ts:83
|
||||||||||
Parameters :
Returns :
void
|
setPitch | ||||||
setPitch(deck: , playback: )
|
||||||
Defined in src/app/services/player.service.ts:55
|
||||||
Parameters :
Returns :
void
|
setVolume | ||||||
setVolume(deck: , volume: )
|
||||||
Defined in src/app/services/player.service.ts:52
|
||||||
Parameters :
Returns :
void
|
activeEffects |
activeEffects:
|
Type : []
|
Default value : [[], []]
|
Defined in src/app/services/player.service.ts:36
|
deck |
deck:
|
Type : any[]
|
Default value : [null, null]
|
Defined in src/app/services/player.service.ts:30
|
deck$ |
deck$:
|
Type : []
|
Default value : [this.deckLoader[0].asObservable(), this.deckLoader[1].asObservable()]
|
Defined in src/app/services/player.service.ts:27
|
deckLoader |
deckLoader:
|
Type : []
|
Default value : [new Subject(), new Subject()]
|
Defined in src/app/services/player.service.ts:26
|
deckNum |
deckNum:
|
Type : number
|
Default value : 2
|
Defined in src/app/services/player.service.ts:34
|
effectLoader |
effectLoader:
|
Type : []
|
Default value : [new Subject(), new Subject()]
|
Defined in src/app/services/player.service.ts:28
|
effects |
effects:
|
Type : []
|
Default value : [[null, null, null, null, null, null], [null, null, null, null, null, null]]
|
Defined in src/app/services/player.service.ts:35
|
effects$ |
effects$:
|
Type : []
|
Default value : [this.effectLoader[0].asObservable(), this.effectLoader[1].asObservable()]
|
Defined in src/app/services/player.service.ts:29
|
effectsNum |
effectsNum:
|
Type : number
|
Default value : 6
|
Defined in src/app/services/player.service.ts:33
|
eq |
eq:
|
Type : []
|
Default value : [null, null]
|
Defined in src/app/services/player.service.ts:31
|
eqEffect |
eqEffect:
|
Type : any
|
Defined in src/app/services/player.service.ts:32
|
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import { EffectsService } from './effects.service';
import { EQService } from './eq.service';
@Injectable({
providedIn: 'root'
})
export class PlayerService {
deckLoader = [new Subject(), new Subject()];
deck$ = [this.deckLoader[0].asObservable(), this.deckLoader[1].asObservable()];
effectLoader = [new Subject(), new Subject()];
effects$ = [this.effectLoader[0].asObservable(), this.effectLoader[1].asObservable()];
deck: any[] = [null, null];
eq = [null, null];
eqEffect: any;
effectsNum = 6;
deckNum = 2;
effects = [[null, null, null, null, null, null], [null, null, null, null, null, null]];
activeEffects = [[], []];
constructor(private effectServ: EffectsService, private eqServ: EQService) {
for (let i = 0; i < this.effectsNum; i++) {
this.saveEffects(0, i, this.effectServ.getEffects()[i]);
this.saveEffects(1, i, this.effectServ.getEffects()[i]);
}
}
save(deck, wavesurfer) {
this.deck[deck] = wavesurfer;
this.deckLoader[deck].next(this.deck[deck]);
this.eqEffect = this.equalizer();
this.applyEffects();
}
getInstance(deck) {
return this.deck[deck];
}
setVolume(deck, volume) {
this.deck[deck].setVolume(volume);
}
setPitch(deck, playback) {
this.deck[deck].setPlaybackRate(playback);
}
on(deck, event, callback) {
this.deck[deck].on(event, callback);
}
load(deck, song) {
this.deck[deck].load(song);
}
playPause(deck) {
this.deck[deck].playPause();
}
isPlaying(deck) {
return this.deck[deck].isPlaying();
}
applyEffects() {
if (this.eqEffect) {
this.deck[0].backend.setFilters(this.eqEffect[0].concat(this.activeEffects[0]));
this.deck[1].backend.setFilters(this.eqEffect[1].concat(this.activeEffects[1]));
}
}
equalizer() {
if (this.deck[0] && this.deck[1] && this.eq[0] && this.eq[1]) {
return this.eqServ.createEQEffect(this.deck, this.eq);
}
}
saveEQ(bass, mid, trebble, deck) {
const eq = this.eqServ.createEQ(bass, mid, trebble);
this.eq[deck] = eq;
this.eqEffect = this.equalizer();
this.applyEffects();
}
saveEffects(deck, i, effect) {
if (this.effects[deck][i] && this.effects[deck][i].active) {
this.activateEffect(deck, i);
}
this.effects[deck][i] = effect;
this.effectLoader[deck].next(this.effects[deck]);
}
activateEffect(deck, i) {
this.effects[deck][i].active = !this.effects[deck][i].active;
const effects = this.effects[deck].filter(a => a.active);
this.activeEffects[deck] = this.effectServ.createEffects(this.deck[deck].backend.ac, effects);
this.applyEffects();
this.effectLoader[deck].next(this.effects[deck]);
}
getCurrentTime(deck) {
return this.deck[deck].getCurrentTime();
}
getDuration(deck) {
return this.deck[deck].getDuration();
}
playFromPosition(deck, start) {
this.deck[deck].seekAndCenter(start);
}
createLoop(deck, start, end) {
return this.deck[deck].addRegion({ start: start, end: end, loop: true, drag: false, resize: false });
}
adjustHeight(deck, height) {
this.deck[deck].setHeight(height);
}
}