Home
Information
Classes
Download
Usage
Mail List
Requirements
Links
FAQ
Tutorial
include
Effect.h
1
#ifndef STK_EFFECT_H
2
#define STK_EFFECT_H
3
4
#include "Stk.h"
5
#include <cmath>
6
7
namespace
stk {
8
9
/***************************************************/
19
/***************************************************/
20
21
class
Effect
:
public
Stk
22
{
23
public
:
25
Effect
(
void
) { lastFrame_.
resize
( 1, 1, 0.0 ); };
26
28
unsigned
int
channelsOut
(
void
)
const
{
return
lastFrame_.
channels
(); };
29
31
const
StkFrames
&
lastFrame
(
void
)
const
{
return
lastFrame_; };
32
34
virtual
void
clear
() = 0;
35
37
virtual
void
setEffectMix
( StkFloat mix );
38
39
protected
:
40
41
// Returns true if argument value is prime.
42
bool
isPrime(
unsigned
int
number );
43
44
StkFrames
lastFrame_;
45
StkFloat effectMix_;
46
47
};
48
49
inline
void
Effect :: setEffectMix
( StkFloat mix )
50
{
51
if
( mix < 0.0 ) {
52
oStream_ <<
"Effect::setEffectMix: mix parameter is less than zero ... setting to zero!"
;
53
handleError
( StkError::WARNING );
54
effectMix_ = 0.0;
55
}
56
else
if
( mix > 1.0 ) {
57
oStream_ <<
"Effect::setEffectMix: mix parameter is greater than 1.0 ... setting to one!"
;
58
handleError
( StkError::WARNING );
59
effectMix_ = 1.0;
60
}
61
else
62
effectMix_ = mix;
63
}
64
65
inline
bool
Effect :: isPrime(
unsigned
int
number )
66
{
67
if
( number == 2 )
return
true
;
68
if
( number & 1 ) {
69
for
(
int
i=3; i<(int)sqrt((
double
)number)+1; i+=2 )
70
if
( (number % i) == 0 )
return
false
;
71
return
true
;
// prime
72
}
73
else
return
false
;
// even
74
}
75
76
}
// stk namespace
77
78
#endif
79
The Synthesis ToolKit in C++ (STK)
©1995--2014 Perry R. Cook and Gary P. Scavone. All Rights Reserved.