mirror of
https://github.com/brmlab/ledbar.git
synced 2025-06-09 05:14:03 +02:00
4 new programs: green vs blue (a) and crossfades (s,d,f)
This commit is contained in:
parent
1bba88fe52
commit
abeb492beb
1 changed files with 63 additions and 0 deletions
|
@ -236,6 +236,65 @@ void programP(int i, int t, double *r, double *g, double *b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// green vs blue
|
||||||
|
void programA(int i, int t, double *r, double *g, double *b)
|
||||||
|
{
|
||||||
|
static float pos = BOXES/2;
|
||||||
|
static float dir = 0.05;
|
||||||
|
*r = 0;
|
||||||
|
*g = max(1 - fabsl((pos-i)/BOXES)*4, 0);
|
||||||
|
*b = max(1 - fabsl(((BOXES-pos)-i)/BOXES)*4, 0);
|
||||||
|
pos += dir;
|
||||||
|
if (pos < 0 || pos > BOXES) dir = -dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
// crossfade rg
|
||||||
|
void programS(int i, int t, double *r, double *g, double *b)
|
||||||
|
{
|
||||||
|
if (i%2==0) {
|
||||||
|
*r = (sin(((double)(t-100)/200)*(2*M_PI))+1)/2;
|
||||||
|
*g = (sin(((double)t/200)*(2*M_PI))+1)/2;
|
||||||
|
*b = 0;
|
||||||
|
} else {
|
||||||
|
*r = (sin(((double)t/400)*(2*M_PI))+1)/2;
|
||||||
|
*g = (sin(((double)(t-200)/400)*(2*M_PI))+1)/2;
|
||||||
|
*b = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// crossfade gb
|
||||||
|
void programD(int i, int t, double *r, double *g, double *b)
|
||||||
|
{
|
||||||
|
if (i%2==0) {
|
||||||
|
*r = 0;
|
||||||
|
*g = (sin(((double)t/200)*(2*M_PI))+1)/2;
|
||||||
|
*b = (sin(((double)(t-100)/200)*(2*M_PI))+1)/2;
|
||||||
|
} else {
|
||||||
|
*r = 0;
|
||||||
|
*g = (sin(((double)(t-200)/400)*(2*M_PI))+1)/2;
|
||||||
|
*b = (sin(((double)t/400)*(2*M_PI))+1)/2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// crossfade rb
|
||||||
|
void programF(int i, int t, double *r, double *g, double *b)
|
||||||
|
{
|
||||||
|
if (i%2==0) {
|
||||||
|
*r = (sin(((double)t/200)*(2*M_PI))+1)/2;
|
||||||
|
*g =0;
|
||||||
|
*b = (sin(((double)(t-100)/200)*(2*M_PI))+1)/2;
|
||||||
|
} else {
|
||||||
|
*r = (sin(((double)(t-200)/400)*(2*M_PI))+1)/2;
|
||||||
|
*g = 0;
|
||||||
|
*b = (sin(((double)t/400)*(2*M_PI))+1)/2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void drawScreen(SDL_Surface* screen, int t, FILE* fp)
|
void drawScreen(SDL_Surface* screen, int t, FILE* fp)
|
||||||
{
|
{
|
||||||
|
@ -325,6 +384,10 @@ int main(int argc, char* argv[])
|
||||||
case SDLK_i: program = programI; break;
|
case SDLK_i: program = programI; break;
|
||||||
case SDLK_o: program = programO; break;
|
case SDLK_o: program = programO; break;
|
||||||
case SDLK_p: program = programP; break;
|
case SDLK_p: program = programP; break;
|
||||||
|
case SDLK_a: program = programA; break;
|
||||||
|
case SDLK_s: program = programS; break;
|
||||||
|
case SDLK_d: program = programD; break;
|
||||||
|
case SDLK_f: program = programF; break;
|
||||||
case SDLK_ESCAPE: quit = 1; break;
|
case SDLK_ESCAPE: quit = 1; break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue