1
#include <screen_practice.h>
3
CScreenPractice::CScreenPractice(char * name)
8
CScreenPractice::~CScreenPractice()
12
void CScreenPractice::enter( void )
14
CScreenManager * sm = CScreenManager::getSingletonPtr();
16
char * theme_path = new char[1024];
17
float resFactorX = sm->getWidth()/800.;
18
float resFactorY = sm->getHeight()/600.;
21
sm->getThemePathFile(theme_path,"practice_note.svg");
22
cairo_svg_note = new CairoSVG(theme_path,(int)(40.*resFactorX),(int)(25.*resFactorY));
23
texture_note = sm->getVideoDriver()->initSurface(cairo_svg_note->getSDLSurface());
25
sm->getThemePathFile(theme_path,"practice_sharp.svg");
26
cairo_svg_sharp = new CairoSVG(theme_path,(int)(25.*resFactorX),(int)(75.*resFactorY));
27
texture_sharp = sm->getVideoDriver()->initSurface(cairo_svg_sharp->getSDLSurface());
31
theme = new CThemePractice();
32
bg_texture = sm->getVideoDriver()->initSurface(theme->bg->getSDLSurface());
35
void CScreenPractice::exit( void )
38
delete cairo_svg_note;
39
delete cairo_svg_sharp;
42
void CScreenPractice::manageEvent( SDL_Event event )
45
CScreenManager * sm = CScreenManager::getSingletonPtr();
48
keypressed = event.key.keysym.sym;
49
if( keypressed == SDLK_ESCAPE || keypressed == SDLK_q ) {
50
sm->activateScreen("Intro");
55
void CScreenPractice::draw( void )
57
CScreenManager * sm = CScreenManager::getSingletonPtr();
58
float resFactorX = sm->getWidth()/800.;
59
float resFactorY = sm->getHeight()/600.;
61
CRecord * record = sm->getRecord();
62
float freq = record->getFreq();
63
int note = record->getNoteId();
65
theme->theme->clear();
66
sm->getVideoDriver()->drawSurface(bg_texture);
75
unsigned char noteOffset=0;
126
theme->notetxt.text = record->getNoteStr(note);
127
theme->theme->PrintText(&theme->notetxt);
129
noteOffset += octave*7;
131
posXnote = (int) ((sm->getWidth()-40.*resFactorX)/2.);
132
posYnote = (int) ((340.-noteOffset*12.5)*resFactorY);
133
sm->getVideoDriver()->drawSurface(texture_note,posXnote,posYnote);
135
posXsharp = (int) ((sm->getWidth()-100.*resFactorX)/2.);
136
posYsharp = (int) ((315.-noteOffset*12.5)*resFactorY);
137
sm->getVideoDriver()->drawSurface(texture_sharp,posXsharp,posYsharp);
140
sm->getVideoDriver()->drawSurface(theme->theme->getCurrent());