Skip to content

Commit dbd523f

Browse files
committed
Add generic filter function
1 parent 4c982f4 commit dbd523f

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/Filters/Base/GenericFilter.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { NativeFilter, FilterNamedArguments } from './Filter';
2+
import { Stream } from '../../Stream';
3+
4+
export class GenericFilter extends NativeFilter {
5+
constructor ( inputs : Stream[] | NativeFilter, name : string, parameters : FilterNamedArguments, outputs : number = 1 ) {
6+
super( parameters );
7+
8+
this.name = name;
9+
10+
this.outputsCount = outputs;
11+
12+
this.from( inputs as any );
13+
}
14+
}
15+
16+
export function filter ( inputs : Stream[] | NativeFilter, name : string, parameters : FilterNamedArguments ) : Stream;
17+
export function filter ( inputs : Stream[] | NativeFilter, name : string, parameters : FilterNamedArguments, outputs : number ) : Stream[];
18+
export function filter ( inputs : Stream[] | NativeFilter, name : string, parameters : FilterNamedArguments, outputs ?: number ) : Stream | Stream[] {
19+
const filterInstance = new GenericFilter( inputs, name, parameters, outputs );
20+
21+
if ( outputs == void 0 ) {
22+
return filterInstance.outputs[ 0 ];
23+
}
24+
25+
return filterInstance.outputs;
26+
}

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export { Stream, DynamicStream, DyanamicInputStream, OutputStream, SelectionStre
1111

1212
export { IFilter } from './Filters/Base/IFilter';
1313
export { NativeFilter, FilterArgument, FilterNamedArguments } from './Filters/Base/Filter';
14+
export { GenericFilter, filter } from './Filters/Base/GenericFilter';
1415

1516
export { crossfade } from './Filters/CrossfadeFilter';
1617
export { concat, separator } from './Filters/ConcatFilter';

0 commit comments

Comments
 (0)