You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(25) |
Jul
(288) |
Aug
(119) |
Sep
(31) |
Oct
(59) |
Nov
(458) |
Dec
(359) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(268) |
Feb
(26) |
Mar
(36) |
Apr
(48) |
May
(119) |
Jun
(37) |
Jul
(173) |
Aug
(429) |
Sep
(137) |
Oct
(156) |
Nov
(59) |
Dec
(45) |
| 2011 |
Jan
(398) |
Feb
(257) |
Mar
(49) |
Apr
(5) |
May
(34) |
Jun
(11) |
Jul
(38) |
Aug
(12) |
Sep
(1) |
Oct
(49) |
Nov
(5) |
Dec
(10) |
| 2012 |
Jan
(21) |
Feb
(32) |
Mar
(20) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(173) |
Aug
|
Sep
(25) |
Oct
(6) |
Nov
(44) |
Dec
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-06 22:33:55
|
Module: performous
Branch: master
Commit: 561360d5cbc89e4f46790cadeb72648ca7354ff6
Author: Lasse Karkkainen <tro...@tr...>
Date: Thu Jan 7 00:02:19 2010 +0200
Further fixes, remove seeking in 30 second steps
---
game/screen_sing.cc | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 35cf880..2110581 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -255,18 +255,16 @@ void ScreenSing::manageEvent(SDL_Event event) {
if (key == SDLK_F6) ++config["audio/controller_delay"];
if (m_song->track_map.empty()) { // Seeking is currently only permitted for karaoke songs
bool seekback = false;
- if (key == SDLK_HOME) m_audio.seekPos(0.0);
+ if (key == SDLK_HOME) { m_audio.seekPos(0.0); seekback = true; }
if (key == SDLK_LEFT) { m_audio.seek(-5.0); seekback = true; }
if (key == SDLK_RIGHT) m_audio.seek(5.0);
- if (key == SDLK_UP) m_audio.seek(30.0);
- if (key == SDLK_DOWN) { m_audio.seek(-30.0); seekback = true; }
// Some things must be reset after seeking backwards
if (seekback) m_layout_singer->reset();
}
// Reload current song
if (key == SDLK_r) {
exit(); m_song->reload(); enter();
- // m_audio.seek(time); FIXME: enable after seeking is enabled
+ m_audio.seek(time);
}
if (key == SDLK_s) m_audio.toggleSynth(m_song->notes);
} else {
|
|
From: Stefano A. <xa...@us...> - 2010-01-06 21:53:17
|
Module: performous Branch: master Commit: ff59226419669efcd98526d80b594083c6269950 Author: Xaldyz <xa...@us...> Date: Wed Jan 6 22:52:54 2010 +0100 Merge branch 'master' of ssh://performous.git.sourceforge.net/gitroot/performous/performous --- |
|
From: Stefano A. <xa...@us...> - 2010-01-06 21:53:15
|
Module: performous
Branch: master
Commit: 3484982e6016521ab2a5b7a67901248a3764607a
Author: Xaldyz <xa...@us...>
Date: Wed Jan 6 22:52:27 2010 +0100
Fixed the fix for language under Windows: need to be revisited (have to check under Mac too)
---
CMakeLists.txt | 1 +
lang/CMakeLists.txt | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0515d33..e9303c0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,6 +38,7 @@ if(Gettext_FOUND)
if(NOT LOCALE_DIR)
if(WIN32)
SET(LOCALE_DIR "locale")
+ SET(LOCALE_DIR_WIN32_PREFIX "bin/")
elseif(APPLE)
SET(LOCALE_DIR "share/locale")
else()#other os
diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt
index 34046a0..a4ee12e 100644
--- a/lang/CMakeLists.txt
+++ b/lang/CMakeLists.txt
@@ -4,5 +4,5 @@ foreach(language ${LANGUAGES})
string(REGEX REPLACE "(.+(\\\\|/))+" "" language ${language})
string(REGEX REPLACE "\\.po$" "" language ${language})
execute_process(COMMAND ${Msgfmt_BIN} -v ${CMAKE_CURRENT_SOURCE_DIR}/${language}.po -o ${CMAKE_CURRENT_BINARY_DIR}/${language}.mo)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${language}.mo DESTINATION ${LOCALE_DIR}/${language}/LC_MESSAGES RENAME ${CMAKE_PROJECT_NAME}.mo)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${language}.mo DESTINATION ${LOCALE_DIR_WIN32_PREFIX}${LOCALE_DIR}/${language}/LC_MESSAGES RENAME ${CMAKE_PROJECT_NAME}.mo)
endforeach(language)
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-06 21:26:04
|
Module: performous
Branch: master
Commit: 19fcbd1aa2a095cb8fe9efdf69c2a5c734d8bd04
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jan 6 23:25:22 2010 +0200
Fixes to seeking (was broken in my previous commit)
---
game/screen_sing.cc | 24 +++++++++++++-----------
1 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 2a663d8..35cf880 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -212,6 +212,7 @@ void ScreenSing::manageEvent(SDL_Event event) {
// A kludge to allow using space for navigation
if (event.type == SDL_KEYDOWN && key == SDLK_SPACE) nav = m_score_window.get() ? input::START : input::PAUSE;
if (nav != input::NONE) {
+ m_quitTimer.setValue(QUIT_TIMEOUT);
if (nav == input::CANCEL) {
// In ScoreWindow cancel goes to Players, otherwise insta-quit to Songs
if (m_score_window.get()) activateNextScreen();
@@ -239,7 +240,8 @@ void ScreenSing::manageEvent(SDL_Event event) {
// Volume control
if (nav == input::CTRL_UP) ++config["audio/music_volume"];
if (nav == input::CTRL_DOWN) --config["audio/music_volume"];
- } else if (event.type == SDL_KEYDOWN) {
+ }
+ if (event.type == SDL_KEYDOWN) {
m_quitTimer.setValue(QUIT_TIMEOUT);
if (m_score_window.get()) return; // The rest are only available when score window is not displayed
// Control combinations
@@ -251,6 +253,16 @@ void ScreenSing::manageEvent(SDL_Event event) {
if (key == SDLK_F4) ++config["audio/video_delay"];
if (key == SDLK_F5) --config["audio/controller_delay"];
if (key == SDLK_F6) ++config["audio/controller_delay"];
+ if (m_song->track_map.empty()) { // Seeking is currently only permitted for karaoke songs
+ bool seekback = false;
+ if (key == SDLK_HOME) m_audio.seekPos(0.0);
+ if (key == SDLK_LEFT) { m_audio.seek(-5.0); seekback = true; }
+ if (key == SDLK_RIGHT) m_audio.seek(5.0);
+ if (key == SDLK_UP) m_audio.seek(30.0);
+ if (key == SDLK_DOWN) { m_audio.seek(-30.0); seekback = true; }
+ // Some things must be reset after seeking backwards
+ if (seekback) m_layout_singer->reset();
+ }
// Reload current song
if (key == SDLK_r) {
exit(); m_song->reload(); enter();
@@ -262,16 +274,6 @@ void ScreenSing::manageEvent(SDL_Event event) {
if (key == SDLK_v) { m_audio.streamFade("vocals", event.key.keysym.mod & KMOD_SHIFT ? 1.0 : 0.0); }
if (key == SDLK_k) ++config["game/karaoke_mode"]; // Toggle karaoke mode
if (key == SDLK_w) ++config["game/pitch"]; // Toggle pitch wave
- if (m_song->track_map.empty()) { // Seeking is currently only permitted for karaoke songs
- bool seekback = false;
- if (key == SDLK_HOME) m_audio.seekPos(0.0);
- if (key == SDLK_LEFT) { m_audio.seek(-5.0); seekback = true; }
- if (key == SDLK_RIGHT) m_audio.seek(5.0);
- if (key == SDLK_UP) m_audio.seek(30.0);
- if (key == SDLK_DOWN) { m_audio.seek(-30.0); seekback = true; }
- // Some things must be reset after seeking backwards
- if (seekback) m_layout_singer->reset();
- }
}
}
}
|
|
From: Stefano A. <xa...@us...> - 2010-01-06 20:51:20
|
Module: performous Branch: master Commit: ee370414716c2393180abad83dbc822e8f7e3031 Author: Xaldyz <xa...@us...> Date: Wed Jan 6 21:50:35 2010 +0100 Merge branch 'master' of ssh://performous.git.sourceforge.net/gitroot/performous/performous --- |
|
From: Stefano A. <xa...@us...> - 2010-01-06 20:51:15
|
Module: performous Branch: master Commit: 00d40eb2b54917eeb55ddd6db0d67c70d6174392 Author: Xaldyz <xa...@us...> Date: Wed Jan 6 21:49:57 2010 +0100 Fixed path of locale dir under Windows --- CMakeLists.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f177ec..0515d33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ find_package(Gettext) if(Gettext_FOUND) if(NOT LOCALE_DIR) if(WIN32) - SET(LOCALE_DIR "../locale") + SET(LOCALE_DIR "locale") elseif(APPLE) SET(LOCALE_DIR "share/locale") else()#other os |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-06 20:24:13
|
Module: performous
Branch: master
Commit: 1f6fc9cf0806efe32f71670253a5186b773e918c
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jan 6 22:21:43 2010 +0200
Remove an old hack used to ignore repeated escape keypress events (needs another fix).
Forward events to screens even when handled as game controllers (to allow in-song navigation to work).
(Q) no longer works as quit.
Singing (performing) screen event handling completely rewritten:
- Uses nav system, so that controllers can be used instead of keyboard for basic functionality
- Latency settings are now Ctrl+F1/F2/F3/F4/F5/F6
- (V)ocals, (K)araoke mode and pitch (W)ave switch now use letters instead of function keys
- Other changes (some intentional, others not)
---
game/joystick.cc | 2 +-
game/main.cc | 16 ++-----
game/screen_sing.cc | 115 +++++++++++++++++++++++++++-----------------------
3 files changed, 68 insertions(+), 65 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 90f4c2e..207d6fa 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -80,7 +80,7 @@ input::NavButton input::getNav(SDL_Event const &e) {
else if (k == SDLK_LEFT) return input::LEFT;
else if (k == SDLK_RIGHT) return input::RIGHT;
else if (k == SDLK_RETURN) return input::START;
- else if (k == SDLK_ESCAPE || k == SDLK_q) return input::CANCEL;
+ else if (k == SDLK_ESCAPE) return input::CANCEL;
else if (k == SDLK_PAGEUP) return input::MOREUP;
else if (k == SDLK_PAGEDOWN) return input::MOREDOWN;
else if (k == SDLK_PAUSE || (k == SDLK_p && mod & KMOD_CTRL)) return input::PAUSE;
diff --git a/game/main.cc b/game/main.cc
index 30059bf..05b36cd 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -46,7 +46,6 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
std::cout << "Terminating, please wait... (or kill the process)" << std::endl;
throw QuitNow();
}
- static bool esc = false;
SDL_Event event;
while(SDL_PollEvent(&event) == 1) {
switch(event.type) {
@@ -56,23 +55,16 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
case SDL_VIDEORESIZE:
window.resize(event.resize.w, event.resize.h);
break;
- case SDL_KEYUP:
- if (event.key.keysym.sym == SDLK_ESCAPE) esc = false;
- break;
case SDL_KEYDOWN:
int keypressed = event.key.keysym.sym;
SDLMod modifier = event.key.keysym.mod;
- // Workaround for key repeat on escape
- if (keypressed == SDLK_ESCAPE) {
- if (esc) return;
- esc = true;
- }
if ((keypressed == SDLK_RETURN && modifier & KMOD_ALT) || keypressed == SDLK_F11) {
config["graphic/fullscreen"].b() = !config["graphic/fullscreen"].b();
continue; // Already handled here...
}
if (keypressed == SDLK_PRINT || keypressed == SDLK_F12) {
g_take_screenshot = true;
+ continue;
}
if (keypressed == SDLK_F4 && modifier & KMOD_ALT) {
sm.finished();
@@ -80,8 +72,10 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
}
break;
}
- // Forward to screen if the input system doesn't eat the event first
- if(!input::SDL::pushEvent(event)) sm.getCurrentScreen()->manageEvent(event);
+ // Forward to screen even if the input system takes it (ignoring pushEvent return value)
+ // This is needed to allow navigation (quiting the song) to function even then
+ input::SDL::pushEvent(event);
+ sm.getCurrentScreen()->manageEvent(event);
switch(glGetError()) {
case GL_INVALID_ENUM: std::cerr << "OpenGL error: invalid enum" << std::endl; break;
case GL_INVALID_VALUE: std::cerr << "OpenGL error: invalid value" << std::endl; break;
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 36ebb0c..2a663d8 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -205,65 +205,74 @@ void ScreenSing::activateNextScreen()
}
void ScreenSing::manageEvent(SDL_Event event) {
- if (event.type == SDL_KEYDOWN) {
- double time = m_audio.getPosition();
- Song::Status status = m_song->status(time);
- m_quitTimer.setValue(QUIT_TIMEOUT);
- bool seekback = false;
- int key = event.key.keysym.sym;
- if (key == SDLK_ESCAPE || key == SDLK_q) {
- // In ScoreWindow ESC goes to Players, otherwise insta-quit to Songs
- if (m_score_window.get() && key == SDLK_ESCAPE) { activateNextScreen(); return; }
- ScreenManager* sm = ScreenManager::getSingletonPtr();
- sm->activateScreen("Songs");
+ double time = m_audio.getPosition();
+ Song::Status status = m_song->status(time);
+ input::NavButton nav(input::getNav(event));
+ int key = event.key.keysym.sym;
+ // A kludge to allow using space for navigation
+ if (event.type == SDL_KEYDOWN && key == SDLK_SPACE) nav = m_score_window.get() ? input::START : input::PAUSE;
+ if (nav != input::NONE) {
+ if (nav == input::CANCEL) {
+ // In ScoreWindow cancel goes to Players, otherwise insta-quit to Songs
+ if (m_score_window.get()) activateNextScreen();
+ else ScreenManager::getSingletonPtr()->activateScreen("Songs");
return;
}
- else if (key == SDLK_RETURN) {
- if (m_score_window.get()) { activateNextScreen(); return; } // Score window visible -> Enter quits
- else if (status == Song::FINISHED && m_song->track_map.empty()) {
- m_engine->kill(); // kill the engine thread (to avoid consuming memory)
+ if (nav == input::PAUSE) m_audio.togglePause();
+ if (m_score_window.get()) {
+ if (nav == input::START) activateNextScreen(); // Score window visible -> Start quits
+ return; // The rest are only available when score window is not displayed
+ }
+ // Start button has special functions for skipping things (only in singing for now)
+ if (nav == input::START && m_song->track_map.empty()) {
+ // Open score dialog early
+ if (status == Song::FINISHED) {
+ m_engine->kill(); // kill the engine thread
m_score_window.reset(new ScoreWindow(m_instruments, m_database, m_dancers)); // Song finished, but no score window -> show it
}
+ // Skip instrumental breaks (not supported with instruments yet)
+ else if (status == Song::INSTRUMENTAL_BREAK) {
+ double diff = m_layout_singer->lyrics_begin() - 3.0 - time;
+ if (diff > 0.0) m_audio.seek(diff);
+ }
}
- else if (key == SDLK_SPACE && m_score_window.get()) { activateNextScreen(); return; } // Score window visible -> Space quits
- else if (key == SDLK_SPACE || key == SDLK_PAUSE) m_audio.togglePause();
- if (m_score_window.get()) return;
- // The rest are only available when score window is not displayed and when there are no instruments
- if (key == SDLK_RETURN && status == Song::INSTRUMENTAL_BREAK && m_song->track_map.empty()) {
- double diff = m_layout_singer->lyrics_begin() - 3.0 - time;
- if (diff > 0.0) m_audio.seek(diff);
- }
- else if (key == SDLK_F4) m_audio.toggleSynth(m_song->notes);
- else if (key == SDLK_F5) --config["audio/video_delay"];
- else if (key == SDLK_F6) ++config["audio/video_delay"];
- else if (key == SDLK_F7) --config["audio/round-trip"];
- else if (key == SDLK_F8) ++config["audio/round-trip"];
- else if (key == SDLK_F9) ++config["game/karaoke_mode"];
- else if (key == SDLK_F10) ++config["game/pitch"];
- else if (key == SDLK_HOME) m_audio.seekPos(0.0);
- else if (key == SDLK_LEFT) { m_audio.seek(-5.0); seekback = true; }
- else if (key == SDLK_RIGHT) m_audio.seek(5.0);
- else if (key == SDLK_UP && !(event.key.keysym.mod & KMOD_CTRL)) m_audio.seek(30.0);
- else if (key == SDLK_DOWN && !(event.key.keysym.mod & KMOD_CTRL)) { m_audio.seek(-30.0); seekback = true; }
- else if (key == SDLK_UP && (event.key.keysym.mod & KMOD_CTRL)) ++config["audio/music_volume"];
- else if (key == SDLK_DOWN && (event.key.keysym.mod & KMOD_CTRL)) --config["audio/music_volume"];
- else if (key == SDLK_k && event.key.keysym.mod & KMOD_SHIFT) { m_audio.streamFade("vocals", 1.0); }
- else if (key == SDLK_k && !(event.key.keysym.mod & KMOD_SHIFT)) { m_audio.streamFade("vocals", 0.0); }
- else if (key == SDLK_r && event.key.keysym.mod & KMOD_CTRL) {
- exit(); m_song->reload(); enter();
- m_audio.seek(time);
- }
- // Some things must be reset after seeking backwards
- if (seekback) {
- m_layout_singer->reset();
+ // Volume control
+ if (nav == input::CTRL_UP) ++config["audio/music_volume"];
+ if (nav == input::CTRL_DOWN) --config["audio/music_volume"];
+ } else if (event.type == SDL_KEYDOWN) {
+ m_quitTimer.setValue(QUIT_TIMEOUT);
+ if (m_score_window.get()) return; // The rest are only available when score window is not displayed
+ // Control combinations
+ if (event.key.keysym.mod & KMOD_CTRL) {
+ // Latency settings
+ if (key == SDLK_F1) --config["audio/round-trip"];
+ if (key == SDLK_F2) ++config["audio/round-trip"];
+ if (key == SDLK_F3) --config["audio/video_delay"];
+ if (key == SDLK_F4) ++config["audio/video_delay"];
+ if (key == SDLK_F5) --config["audio/controller_delay"];
+ if (key == SDLK_F6) ++config["audio/controller_delay"];
+ // Reload current song
+ if (key == SDLK_r) {
+ exit(); m_song->reload(); enter();
+ // m_audio.seek(time); FIXME: enable after seeking is enabled
+ }
+ if (key == SDLK_s) m_audio.toggleSynth(m_song->notes);
+ } else {
+ // Toggle vocals (in songs with a separate vocals track)
+ if (key == SDLK_v) { m_audio.streamFade("vocals", event.key.keysym.mod & KMOD_SHIFT ? 1.0 : 0.0); }
+ if (key == SDLK_k) ++config["game/karaoke_mode"]; // Toggle karaoke mode
+ if (key == SDLK_w) ++config["game/pitch"]; // Toggle pitch wave
+ if (m_song->track_map.empty()) { // Seeking is currently only permitted for karaoke songs
+ bool seekback = false;
+ if (key == SDLK_HOME) m_audio.seekPos(0.0);
+ if (key == SDLK_LEFT) { m_audio.seek(-5.0); seekback = true; }
+ if (key == SDLK_RIGHT) m_audio.seek(5.0);
+ if (key == SDLK_UP) m_audio.seek(30.0);
+ if (key == SDLK_DOWN) { m_audio.seek(-30.0); seekback = true; }
+ // Some things must be reset after seeking backwards
+ if (seekback) m_layout_singer->reset();
+ }
}
- //} else if (event.type == SDL_JOYBUTTONDOWN) {
- //int button = event.jbutton.button;
- //if (button == 9 /* START */) m_audio.togglePause();
- //if (button == 8 /* SELECT */) {
- //ScreenManager::getSingletonPtr()->activateScreen("Songs");
- //return;
- //}
}
}
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-06 20:24:12
|
Module: performous
Branch: master
Commit: b5a0f17493555cd16db8c4c4c8c36a6e651ebdfe
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jan 6 21:51:14 2010 +0200
Make Esc/Select only move to quit option, not actually quit.
---
game/screen_intro.cc | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/game/screen_intro.cc b/game/screen_intro.cc
index ad4998f..0230c23 100755
--- a/game/screen_intro.cc
+++ b/game/screen_intro.cc
@@ -37,10 +37,7 @@ void ScreenIntro::manageEvent(SDL_Event event) {
input::NavButton nav(input::getNav(event));
if (nav != input::NONE) {
if (m_dialog) { m_dialog.reset(); return; }
- if (nav == input::CANCEL) {
- if (selected == m_menuOptions.size()-1) sm->finished();
- else selected = m_menuOptions.size()-1;
- }
+ if (nav == input::CANCEL) selected = m_menuOptions.size() - 1; // Move cursor to quit
else if (nav == input::DOWN || nav == input::RIGHT || nav == input::MOREDOWN) ++selected;
else if (nav == input::UP || nav == input::LEFT || nav == input::MOREUP) --selected;
else if (nav == input::CTRL_DOWN) --config["audio/preview_volume"];
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-06 20:24:11
|
Module: performous Branch: master Commit: 71eecedffbf1203464e800d0f559c90225b5d120 Author: Lasse Karkkainen <tro...@tr...> Date: Wed Jan 6 21:49:08 2010 +0200 Better (more natural) fi translations --- lang/fi.po | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/fi.po b/lang/fi.po index b38392f..0fd65c0 100644 --- a/lang/fi.po +++ b/lang/fi.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-03 22:06+0200\n" "PO-Revision-Date: \n" -"Last-Translator: Tapio Vierros <tap...@gm...>\n" +"Last-Translator: Lasse Kärkkäinen <tro...@tr...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -59,7 +59,7 @@ msgid "" "Please configure some before playing." msgstr "" "\n" -"Säädä laitteet ennen pelaamista." +"Säädä ääniasetuksia ennen pelaamista." #: ../game/songs.cc:204 msgid "random order" @@ -98,8 +98,8 @@ msgid "" "Visit performous.org\n" "for free songs" msgstr "" -"Vieraile osoitteessa performous.org\n" -"ladataksesi ilmaista musiikkia." +"Hae ilmaista musiikkia\n" +"osoitteesta performous.org" #: ../game/screen_songs.cc:181 msgid "no songs match search" @@ -143,7 +143,7 @@ msgstr "Nimi:" #: ../game/screen_players.cc:126 msgid "Type text to filter or create a new player." -msgstr "Syötä nimi etsiäksesi tai luodaksesi uuden pelaajan." +msgstr "Kirjoita etsiäksesi tai luodaksesi uuden pelaajan." #: ../game/screen_players.cc:126 msgid "Search Text:" |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-06 00:52:09
|
Module: performous Branch: master Commit: 1a6ce5a79096c0bbab408dac7c6f0b4b5a83f5d7 Author: Lasse Karkkainen <tro...@tr...> Date: Wed Jan 6 02:51:22 2010 +0200 Merge branch 'master' of ssh://tronic@performous.git.sf.net/gitroot/performous/performous --- |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-06 00:52:07
|
Module: performous Branch: master Commit: ba8e1b10bd9b0ed62b0d36e7188a0bcc0d97ff27 Author: Lasse Karkkainen <tro...@tr...> Date: Mon Jan 4 18:11:36 2010 +0200 Better defaults for latency settings and finer adjustment precision. --- data/schema.xml | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/data/schema.xml b/data/schema.xml index e3099df..b20dfe8 100644 --- a/data/schema.xml +++ b/data/schema.xml @@ -148,25 +148,25 @@ to save the current settings to XML. </entry> <!-- Audio preferences --> - <entry name="audio/video_delay" type="float" value="0.00"> + <entry name="audio/video_delay" type="float" value="0.06"> <ui unit=" ms" multiplier="1000" /> - <limits min="-0.5" max="0.5" step="0.02" /> + <limits min="-0.5" max="0.5" step="0.01" /> <locale name="C"> <short>Audio/video latency</short> <long>Use negative value if your display input lag is greater than the sound card output latency, positive values in the opposite case and zero if they are equal. F5/F6 to adjust this in singing screen.</long> </locale> </entry> - <entry name="audio/controller_delay" type="float" value="0.00"> + <entry name="audio/controller_delay" type="float" value="0.08"> <ui unit=" ms" multiplier="1000" /> - <limits min="0.0" max="0.5" step="0.02" /> + <limits min="0.0" max="0.5" step="0.01" /> <locale name="C"> <short>Audio/controller latency</short> <long>The total of USB (guitar or dance pad) latency combined with audio output latency.</long> </locale> </entry> - <entry name="audio/round-trip" type="float" value="0.08"> + <entry name="audio/round-trip" type="float" value="0.09"> <ui unit=" ms" multiplier="1000" /> - <limits min="0.0" max="0.5" step="0.02" /> + <limits min="0.0" max="0.5" step="0.01" /> <locale name="C"> <short>Audio round-trip latency</short> <long>The time it takes for Performous playback to reach your speakers, fly to the microphone and all the way back until Performous captures and analyzes it. Use F4 debug mode in singing screen and adjust with F7/F8.</long> |
|
From: Peque <ms...@us...> - 2010-01-05 23:07:02
|
Module: performous
Branch: master
Commit: 3b5205b0ae3062d146f86161dbc38c2ee600f4f0
Author: Miguel Sánchez de León Peque <peq...@ho...>
Date: Wed Jan 6 00:04:40 2010 +0100
Fixed bug in screen_players. Now you can save highscores with no time limit.
---
game/screen_players.cc | 4 ----
lang/es.po | 2 +-
2 files changed, 1 insertions(+), 5 deletions(-)
diff --git a/game/screen_players.cc b/game/screen_players.cc
index 6842dec..80bb318 100644
--- a/game/screen_players.cc
+++ b/game/screen_players.cc
@@ -14,8 +14,6 @@
#include <iostream>
#include <sstream>
-static const double IDLE_TIMEOUT = 45.0; // seconds
-
ScreenPlayers::ScreenPlayers(std::string const& name, Audio& audio, Database& database):
Screen(name), m_audio(audio), m_database(database), m_players(database.m_players), m_covers(20)
{
@@ -169,8 +167,6 @@ void ScreenPlayers::draw() {
if (!songbg.empty()) try { m_songbg.reset(new Surface(songbg)); } catch (std::exception const&) {}
if (!video.empty() && config["graphic/video"].b()) m_video.reset(new Video(video, videoGap));
m_playing = music;
- } else if (!m_audio.isPaused() && m_playTimer.get() > IDLE_TIMEOUT) { // Switch if song hasn't changed for IDLE_TIMEOUT seconds
- if (!m_search.text.empty()) { m_search.text.clear(); m_players.setFilter(m_search.text); }
}
m_layout_singer->drawScore(LayoutSinger::MIDDLE);
}
diff --git a/lang/es.po b/lang/es.po
index 178430b..920df95 100644
--- a/lang/es.po
+++ b/lang/es.po
@@ -99,7 +99,7 @@ msgstr "Nombre:"
#: ../game/screen_players.cc:126
msgid "Type text to filter or create a new player."
-msgstr "Introduce el nombre del jugador (si no existe ya, se creará uno nuevo)."
+msgstr "Introduce texto para filtrar o crear un nuevo jugador."
#: ../game/screen_players.cc:126
msgid "Search Text:"
|
|
From: Peque <ms...@us...> - 2010-01-04 05:02:07
|
Module: performous Branch: master Commit: 25346203cc081d89dcb3b750b4f07e707dfaedfd Author: Miguel Sánchez de León Peque <peq...@ho...> Date: Mon Jan 4 05:48:20 2010 +0100 Little changes on star.svg and flame_godmode.svg --- data/performous.xpm | 1585 ++++++++++++++++++++++++++++++++++---- themes/default/flame_godmode.svg | 26 +- themes/default/star.svg | 34 +- 3 files changed, 1445 insertions(+), 200 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-01-03 20:53:35
|
Module: performous
Branch: master
Commit: e7bd15bab970f7dc5bc51f4d53b63288446a875e
Author: Tapio Vierros <tap...@gm...>
Date: Sun Jan 3 22:48:56 2010 +0200
Handle keys with modifiers (e.g. CTRL) outside joystick.
This allows e.g. volume control in dancing.
---
game/joystick.cc | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 77accb4..90f4c2e 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -290,6 +290,7 @@ bool input::SDL::pushEvent(SDL_Event _e) {
case SDL_KEYDOWN: {
if(!config["game/keyboard_guitar"].b() && !config["game/keyboard_dancepad"].b())
return false;
+ if (_e.key.keysym.mod & (KMOD_CTRL|KMOD_SHIFT|KMOD_ALT|KMOD_META)) return false;
int button = 0;
event.type = input::Event::PRESS;
if(config["game/keyboard_guitar"].b() && devices[input::Private::KEYBOARD_ID].assigned()) {
@@ -368,6 +369,7 @@ bool input::SDL::pushEvent(SDL_Event _e) {
case SDL_KEYUP: {
if(!config["game/keyboard_guitar"].b() && !config["game/keyboard_dancepad"].b())
return false;
+ if (_e.key.keysym.mod & (KMOD_CTRL|KMOD_SHIFT|KMOD_ALT|KMOD_META)) return false;
int button = 0;
event.type = input::Event::RELEASE;
if(config["game/keyboard_guitar"].b() && devices[input::Private::KEYBOARD_ID].assigned()) {
|
|
From: Tapio V. <aa...@us...> - 2010-01-03 20:32:52
|
Module: performous Branch: master Commit: 72b1eeccedbdfb0009ab8be907134788a1d2c028 Author: Tapio Vierros <tap...@gm...> Date: Sun Jan 3 22:25:14 2010 +0200 Avoid texturing bug in hold arrows. --- themes/default/arrows_hold.svg | 66 ++++++++++++++++++++-------------------- 1 files changed, 33 insertions(+), 33 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-01-03 20:09:12
|
Module: performous
Branch: master
Commit: 7e5a67fbb02cbbd34db4cf5d09a5c351106b52f6
Author: Tapio Vierros <tap...@gm...>
Date: Sun Jan 3 22:03:55 2010 +0200
Remove flame from end of holds.
(May cause confusion if followed immediately by another note).
---
game/guitargraph.cc | 7 +------
1 files changed, 1 insertions(+), 6 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 98b516a..ea464ad 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -576,13 +576,8 @@ void GuitarGraph::draw(double time) {
c.r += glow;
c.g += glow;
c.b += glow;
- if (glow > 0.5f && tEnd < 0.1f && it->hitAnim[fret].get() == 0.0) {
+ if (glow > 0.5f && tEnd < 0.1f && it->hitAnim[fret].get() == 0.0)
it->hitAnim[fret].setTarget(1.0);
- if (it->end - it->begin > 2 * maxTolerance) {
- m_flames[fret].push_back(AnimValue(0.0, flameSpd));
- m_flames[fret].back().setTarget(1.0);
- }
- }
// Call the actual note drawing function
drawNote(fret, c, tBeg, tEnd, whammy, it->tappable, glow > 0.5f, it->hitAnim[fret].get(),
it->releaseTimes[fret] > 0.0 ? it->releaseTimes[fret] - time : 0.0);
|
|
From: Tapio V. <aa...@us...> - 2010-01-03 20:09:10
|
Module: performous Branch: master Commit: f0032be66ee77d8f69958f3fca8535fd933598d1 Author: Tapio Vierros <tap...@gm...> Date: Sun Jan 3 22:07:58 2010 +0200 Fix typo in Finnish translation. --- lang/fi.po | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/fi.po b/lang/fi.po index 1af417b..b38392f 100644 --- a/lang/fi.po +++ b/lang/fi.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 23:29+0200\n" +"POT-Creation-Date: 2010-01-03 22:06+0200\n" "PO-Revision-Date: \n" "Last-Translator: Tapio Vierros <tap...@gm...>\n" "Language-Team: \n" @@ -107,7 +107,7 @@ msgstr "yksikään kappale ei vastannut hakuasi" #: ../game/screen_songs.cc:188 msgid "filter: " -msgstr "soudatin: " +msgstr "suodatin: " #: ../game/screen_songs.cc:188 msgid "none" |
|
From: Tapio V. <aa...@us...> - 2010-01-03 20:09:07
|
Module: performous
Branch: master
Commit: fae58e4f5a1ace8f3a7a4042e1549291e15886d5
Author: Tapio Vierros <tap...@gm...>
Date: Sun Jan 3 22:01:07 2010 +0200
Fix flames, streak counter, starmeter being incremented twice when picking a tapped note.
---
game/guitargraph.cc | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index ff6245d..98b516a 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -392,13 +392,15 @@ void GuitarGraph::guitarPlay(double time, input::Event const& ev) {
int& score = m_chordIt->score;
std::cout << "HIT, error = " << int(1000.0 * (best->begin - time)) << " ms" << std::endl;
m_score -= score;
+ m_starmeter -= score;
+ bool first_time = (score == 0 ? true : false);
+ if (first_time) m_streak++;
+ if (m_streak > m_longestStreak) m_longestStreak = m_streak;
score = points(tolerance);
score *= m_chordIt->polyphony;
m_chordIt->status = 1 + picked;
m_score += score;
m_starmeter += score;
- m_streak += 1;
- if (m_streak > m_longestStreak) m_longestStreak = m_streak;
m_correctness.setTarget(1.0, true); // Instantly go to one
for (int fret = 0; fret < 5; ++fret) {
if (!m_chordIt->fret[fret]) continue;
@@ -406,8 +408,10 @@ void GuitarGraph::guitarPlay(double time, input::Event const& ev) {
m_events.push_back(Event(time, 1 + picked, fret, dur));
m_notes[dur] = m_events.size();
m_holds[fret] = m_events.size();
- m_flames[fret].push_back(AnimValue(0.0, flameSpd));
- m_flames[fret].back().setTarget(1.0);
+ if (first_time) {
+ m_flames[fret].push_back(AnimValue(0.0, flameSpd));
+ m_flames[fret].back().setTarget(1.0);
+ }
}
}
}
|
|
From: Tapio V. <aa...@us...> - 2010-01-03 18:25:23
|
Module: performous Branch: master Commit: ce8a85ff0c268e46b94e67c5039dfad60d63821b Author: Tapio Vierros <tap...@gm...> Date: Sun Jan 3 20:24:30 2010 +0200 Added different flame for GodMode. --- game/guitargraph.cc | 5 +- game/guitargraph.hh | 1 + themes/default/flame_godmode.svg | 149 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 154 insertions(+), 1 deletions(-) |
|
From: Peque <ms...@us...> - 2010-01-03 17:27:49
|
Module: performous
Branch: master
Commit: 99d8d41eed84139615c509bb7ab52c6ff1dc0f86
Author: Miguel Sánchez de León Peque <peq...@ho...>
Date: Sun Jan 3 18:25:55 2010 +0100
Volume control: CTRL+UP or CTRL+DOWN. Fullscreen mode can be changed with F11 too.
---
game/joystick.cc | 9 +++++----
game/joystick.hh | 2 +-
game/main.cc | 2 +-
game/screen_configuration.cc | 4 ++--
game/screen_intro.cc | 6 ++----
game/screen_practice.cc | 8 +++-----
game/screen_sing.cc | 8 ++++----
game/screen_songs.cc | 4 ++--
8 files changed, 20 insertions(+), 23 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 139d18a..77accb4 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -75,16 +75,17 @@ input::NavButton input::getNav(SDL_Event const &e) {
// Keyboard
int k = e.key.keysym.sym;
SDLMod mod = e.key.keysym.mod;
- if (k == SDLK_UP) return input::UP;
- else if (k == SDLK_DOWN) return input::DOWN;
+ if (k == SDLK_UP && !(mod & KMOD_CTRL)) return input::UP;
+ else if (k == SDLK_DOWN && !(mod & KMOD_CTRL)) return input::DOWN;
else if (k == SDLK_LEFT) return input::LEFT;
else if (k == SDLK_RIGHT) return input::RIGHT;
else if (k == SDLK_RETURN) return input::START;
else if (k == SDLK_ESCAPE || k == SDLK_q) return input::CANCEL;
else if (k == SDLK_PAGEUP) return input::MOREUP;
else if (k == SDLK_PAGEDOWN) return input::MOREDOWN;
- else if (k == SDLK_PAUSE || (k == SDLK_p && mod & KMOD_CTRL))
- return input::PAUSE;
+ else if (k == SDLK_PAUSE || (k == SDLK_p && mod & KMOD_CTRL)) return input::PAUSE;
+ else if (k == SDLK_UP && mod & KMOD_CTRL) return input::CTRL_UP;
+ else if (k == SDLK_DOWN && mod & KMOD_CTRL) return input::CTRL_DOWN;
} else if (e.type == SDL_JOYBUTTONDOWN) {
// Joystick buttons
unsigned int joy_id = e.jbutton.which;
diff --git a/game/joystick.hh b/game/joystick.hh
index f985981..70b8445 100644
--- a/game/joystick.hh
+++ b/game/joystick.hh
@@ -17,7 +17,7 @@
namespace input {
enum DevType { GUITAR, DRUMS, DANCEPAD };
- enum NavButton { NONE, UP, DOWN, LEFT, RIGHT, START, SELECT, CANCEL, PAUSE, MOREUP, MOREDOWN };
+ enum NavButton { NONE, UP, DOWN, LEFT, RIGHT, START, SELECT, CANCEL, PAUSE, MOREUP, MOREDOWN, CTRL_UP, CTRL_DOWN };
static const std::size_t BUTTONS = 10;
static const int STARPOWER_BUTTON = 5;
diff --git a/game/main.cc b/game/main.cc
index e58da6f..30059bf 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -67,7 +67,7 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
if (esc) return;
esc = true;
}
- if (keypressed == SDLK_RETURN && modifier & KMOD_ALT ) {
+ if ((keypressed == SDLK_RETURN && modifier & KMOD_ALT) || keypressed == SDLK_F11) {
config["graphic/fullscreen"].b() = !config["graphic/fullscreen"].b();
continue; // Already handled here...
}
diff --git a/game/screen_configuration.cc b/game/screen_configuration.cc
index 8be8b28..552faf7 100644
--- a/game/screen_configuration.cc
+++ b/game/screen_configuration.cc
@@ -32,14 +32,14 @@ void ScreenConfiguration::manageEvent(SDL_Event event) {
else if (nav == input::DOWN && selected + 1 < configuration.size()) ++selected;
else if (nav == input::LEFT) --*ci;
else if (nav == input::RIGHT) ++*ci;
+ else if (nav == input::CTRL_DOWN) --config["audio/preview_volume"];
+ else if (nav == input::CTRL_UP) ++config["audio/preview_volume"];
} else if (event.type == SDL_KEYDOWN) {
int key = event.key.keysym.sym;
SDLMod modifier = event.key.keysym.mod;
if (configuration.empty()) return; // The rest work if there are any config options
else if (key == SDLK_r && modifier & KMOD_CTRL) ci->reset(modifier & KMOD_ALT);
else if (key == SDLK_s && modifier & KMOD_CTRL) writeConfig(modifier & KMOD_ALT);
- else if (key == SDLK_F11) --config["audio/preview_volume"];
- else if (key == SDLK_F12) ++config["audio/preview_volume"];
}
}
diff --git a/game/screen_intro.cc b/game/screen_intro.cc
index 77ad140..ad4998f 100755
--- a/game/screen_intro.cc
+++ b/game/screen_intro.cc
@@ -43,16 +43,14 @@ void ScreenIntro::manageEvent(SDL_Event event) {
}
else if (nav == input::DOWN || nav == input::RIGHT || nav == input::MOREDOWN) ++selected;
else if (nav == input::UP || nav == input::LEFT || nav == input::MOREUP) --selected;
+ else if (nav == input::CTRL_DOWN) --config["audio/preview_volume"];
+ else if (nav == input::CTRL_UP) ++config["audio/preview_volume"];
else if (nav == input::START) {
std::string screen = m_menuOptions[selected].screen;
if (screen.empty()) sm->finished(); else sm->activateScreen(screen);
} else if (nav == input::PAUSE) m_audio.togglePause();
// Normalize selected to [0, size)
selected = (m_menuOptions.size() + selected) % m_menuOptions.size();
- } else if (event.type == SDL_KEYDOWN) {
- int key = event.key.keysym.sym;
- if (key == SDLK_F11) --config["audio/preview_volume"];
- else if (key == SDLK_F12) ++config["audio/preview_volume"];
}
}
diff --git a/game/screen_practice.cc b/game/screen_practice.cc
index b313d74..0b4e5a8 100644
--- a/game/screen_practice.cc
+++ b/game/screen_practice.cc
@@ -38,11 +38,9 @@ void ScreenPractice::manageEvent(SDL_Event event) {
input::NavButton nav(input::getNav(event));
if (nav == input::CANCEL || nav == input::START || nav == input::SELECT) sm->activateScreen("Intro");
else if (nav == input::PAUSE) m_audio.togglePause();
- else if (event.type == SDL_KEYDOWN) {
- int key = event.key.keysym.sym;
- if (key == SDLK_F11) --config["audio/music_volume"];
- else if (key == SDLK_F12) ++config["audio/music_volume"];
- } else if (event.type == SDL_JOYBUTTONDOWN // Play drum sounds here
+ else if (nav == input::CTRL_DOWN) --config["audio/music_volume"];
+ else if (nav == input::CTRL_UP) ++config["audio/music_volume"];
+ else if (event.type == SDL_JOYBUTTONDOWN // Play drum sounds here
&& input::Private::devices[event.jbutton.which].type_match(input::DRUMS)) {
int b = input::buttonFromSDL(input::Private::devices[event.jbutton.which].type(), event.jbutton.button);
if (b != -1) m_audio.play(m_samples[unsigned(b) % m_samples.size()], "audio/fail_volume");
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index fb36258..36ebb0c 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -240,13 +240,13 @@ void ScreenSing::manageEvent(SDL_Event event) {
else if (key == SDLK_F8) ++config["audio/round-trip"];
else if (key == SDLK_F9) ++config["game/karaoke_mode"];
else if (key == SDLK_F10) ++config["game/pitch"];
- else if (key == SDLK_F11) --config["audio/music_volume"];
- else if (key == SDLK_F12) ++config["audio/music_volume"];
else if (key == SDLK_HOME) m_audio.seekPos(0.0);
else if (key == SDLK_LEFT) { m_audio.seek(-5.0); seekback = true; }
else if (key == SDLK_RIGHT) m_audio.seek(5.0);
- else if (key == SDLK_UP) m_audio.seek(30.0);
- else if (key == SDLK_DOWN) { m_audio.seek(-30.0); seekback = true; }
+ else if (key == SDLK_UP && !(event.key.keysym.mod & KMOD_CTRL)) m_audio.seek(30.0);
+ else if (key == SDLK_DOWN && !(event.key.keysym.mod & KMOD_CTRL)) { m_audio.seek(-30.0); seekback = true; }
+ else if (key == SDLK_UP && (event.key.keysym.mod & KMOD_CTRL)) ++config["audio/music_volume"];
+ else if (key == SDLK_DOWN && (event.key.keysym.mod & KMOD_CTRL)) --config["audio/music_volume"];
else if (key == SDLK_k && event.key.keysym.mod & KMOD_SHIFT) { m_audio.streamFade("vocals", 1.0); }
else if (key == SDLK_k && !(event.key.keysym.mod & KMOD_SHIFT)) { m_audio.streamFade("vocals", 0.0); }
else if (key == SDLK_r && event.key.keysym.mod & KMOD_CTRL) {
diff --git a/game/screen_songs.cc b/game/screen_songs.cc
index e8a3adc..f5e3f78 100644
--- a/game/screen_songs.cc
+++ b/game/screen_songs.cc
@@ -83,6 +83,8 @@ void ScreenSongs::manageEvent(SDL_Event event) {
else if (nav == input::DOWN) m_songs.sortChange(1);
else if (nav == input::MOREUP) m_songs.advance(-10);
else if (nav == input::MOREDOWN) m_songs.advance(10);
+ else if (nav == input::CTRL_DOWN) --config["audio/preview_volume"];
+ else if (nav == input::CTRL_UP) ++config["audio/preview_volume"];
else manageSharedKey(nav);
// Handle less common, keyboard only keys
} else if (event.type == SDL_KEYDOWN) {
@@ -93,8 +95,6 @@ void ScreenSongs::manageEvent(SDL_Event event) {
if (!m_jukebox && m_search.process(keysym)) m_songs.setFilter(m_search.text);
// The rest are only available when there are songs available
else if (m_songs.empty()) return;
- else if (key == SDLK_F11) --config["audio/preview_volume"];
- else if (key == SDLK_F12) ++config["audio/preview_volume"];
else if (!m_jukebox && key == SDLK_F4) m_jukebox = true;
else if (key == SDLK_TAB && !(mod & KMOD_ALT)) m_songs.randomize();
else if (key == SDLK_END) {
|
|
From: Peque <ms...@us...> - 2010-01-03 16:01:01
|
Module: performous Branch: master Commit: 7a369a3f1ad6c43bce566489b94a2c2e78ba6a7b Author: Miguel Sánchez de León Peque <peq...@ho...> Date: Sun Jan 3 17:00:34 2010 +0100 Spanish translation updated. --- lang/es.po | 106 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 83 insertions(+), 23 deletions(-) diff --git a/lang/es.po b/lang/es.po index ab492cd..178430b 100644 --- a/lang/es.po +++ b/lang/es.po @@ -2,66 +2,66 @@ msgid "" msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-07 01:56+0100\n" +"POT-Creation-Date: 2010-01-03 16:50+0100\n" "PO-Revision-Date: \n" +"Last-Translator: Miguel Sánchez de León Peque <msd...@gm...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: _\n" "X-Poedit-Basepath: .\n" -"Last-Translator: Miguel Sánchez de León Peque <msd...@gm...>\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: SPAIN\n" "X-Poedit-SearchPath-0: ../game\n" #: ../game/screen_hiscore.cc:104 msgid "Hiscore for " -msgstr "Puntuaciones para" +msgstr "Mejores puntuaciones para " -#: ../game/screen_intro.cc:9 +#: ../game/screen_intro.cc:10 msgid "Perform" msgstr "Jugar" -#: ../game/screen_intro.cc:9 +#: ../game/screen_intro.cc:10 msgid "Start performing!" msgstr "¡Comienza una partida!" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:11 msgid "Practice" msgstr "Practicar" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:11 msgid "Check your skills or test the microphones" -msgstr "Revisa los micrófonos y comprueba tus habilidades" +msgstr "Comprueba tus habilidades o revisa los micrófonos" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:12 msgid "Configure" msgstr "Opciones" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:12 msgid "Configure game options" msgstr "Cambia las opciones de configuración del juego" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:13 msgid "Quit" msgstr "Salir" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:13 msgid "Leave the game" msgstr "Sal del juego" -#: ../game/screen_intro.cc:19 +#: ../game/screen_intro.cc:21 msgid "No playback devices could be used.\n" msgstr "" "No se pudo configurar ningún dispositivo\n" -"de reproducción.\n" +"de reproducción de audio.\n" -#: ../game/screen_intro.cc:20 +#: ../game/screen_intro.cc:22 msgid "No microphones found.\n" msgstr "No se ha encontrado ningún micrófono.\n" -#: ../game/screen_intro.cc:21 +#: ../game/screen_intro.cc:23 msgid "" "\n" "Please configure some before playing." @@ -69,23 +69,75 @@ msgstr "" "\n" "Por favor, configura alguno antes de jugar." -#: ../game/screen_players.cc:110 +#: ../game/screen_players.cc:111 msgid "No players found!" msgstr "¡No se han encontrado jugadores!" -#: ../game/screen_players.cc:111 +#: ../game/screen_players.cc:112 msgid "Enter a name to create a new player." msgstr "Introduce un nombre para crear un nuevo jugador." -#: ../game/screen_players.cc:113 +#: ../game/screen_players.cc:114 msgid "Press enter to create player!" msgstr "Presiona \"enter\" para crear el nuevo jugador:" -#: ../game/screen_songs.cc:209 +#: ../game/screen_players.cc:121 +msgid "You reached" +msgstr "¡Has conseguido" + +#: ../game/screen_players.cc:121 +msgid "points!" +msgstr "puntos!" + +#: ../game/screen_players.cc:122 +msgid "Change player with arrow keys." +msgstr "Cambia de jugador con las flechas del teclado" + +#: ../game/screen_players.cc:123 +msgid "Name:" +msgstr "Nombre:" + +#: ../game/screen_players.cc:126 +msgid "Type text to filter or create a new player." +msgstr "Introduce el nombre del jugador (si no existe ya, se creará uno nuevo)." + +#: ../game/screen_players.cc:126 +msgid "Search Text:" +msgstr "Buscar texto:" + +#: ../game/songs.cc:204 +msgid "random order" +msgstr "ordenadas aleatoriamente" + +#: ../game/songs.cc:205 +msgid "sorted by song" +msgstr "ordenadas por canción" + +#: ../game/songs.cc:206 +msgid "sorted by artist" +msgstr "ordenadas por artista" + +#: ../game/songs.cc:207 +msgid "sorted by edition" +msgstr "ordenadas por edición" + +#: ../game/songs.cc:208 +msgid "sorted by genre" +msgstr "ordenadas por género" + +#: ../game/songs.cc:209 +msgid "sorted by path" +msgstr "ordenadas por directorio" + +#: ../game/songs.cc:210 +msgid "sorted by language" +msgstr "ordenadas por idioma" + +#: ../game/screen_songs.cc:178 msgid "No songs found!" msgstr "¡No se encontraron canciones!" -#: ../game/screen_songs.cc:210 +#: ../game/screen_songs.cc:179 msgid "" "Visit performous.org\n" "for free songs" @@ -93,7 +145,15 @@ msgstr "" "Visita performous.org\n" "para descargar canciones gratuitas" -#: ../game/screen_songs.cc:212 +#: ../game/screen_songs.cc:181 msgid "no songs match search" msgstr "ninguna canción satisface el criterio de búsqueda" +#: ../game/screen_songs.cc:188 +msgid "filter: " +msgstr "filtro: " + +#: ../game/screen_songs.cc:188 +msgid "none" +msgstr "ninguno" + |
|
From: aperion <was...@us...> - 2010-01-02 16:58:15
|
Module: performous Branch: master Commit: 295289f1811dcbd094f49725ba6a1e55aa44cff8 Author: wasserth <was...@us...> Date: Sat Jan 2 17:57:27 2010 +0100 Incomplete dependency in 0.4.0 ebuild (parent_path() is in boost since 1.36.0) --- .../performous/performous-0.4.0.ebuild | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/portage-overlay/games-arcade/performous/performous-0.4.0.ebuild b/portage-overlay/games-arcade/performous/performous-0.4.0.ebuild index 3bab746..33a0f51 100644 --- a/portage-overlay/games-arcade/performous/performous-0.4.0.ebuild +++ b/portage-overlay/games-arcade/performous/performous-0.4.0.ebuild @@ -35,7 +35,7 @@ KEYWORDS="~x86 ~amd64 ~ppc ~ppc64" IUSE="debug alsa portaudio pulseaudio jack songs gstreamer tools editor" RDEPEND="gnome-base/librsvg - dev-libs/boost + >=dev-libs/boost-1.36.0 x11-libs/pango dev-cpp/libxmlpp media-libs/glew |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-02 08:12:12
|
Module: performous
Branch: master
Commit: fdd36d7ec4911970394a5dec6fc799ac9c1be65d
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Jan 2 10:11:52 2010 +0200
Remove debug printout
---
game/songparser-sm.cc | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index 9eac373..e7b8b76 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -68,9 +68,6 @@ void SongParser::smParse() {
// Convert stops to the format required in Song
s.stops.resize(m_stops.size());
for (std::size_t i = 0; i < m_stops.size(); ++i) s.stops[i] = stopConvert(m_stops[i]);
- for (unsigned ts = 0; ts < 16 * 260; ts += 16) {
- std::cout << ts / 16 + 1 << " " << tsTime(ts) + 0.030 << std::endl;
- }
}
bool SongParser::smParseField(std::string line) {
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-02 08:11:27
|
Module: performous Branch: master Commit: ab1b3f2d4ff9d4868af6f797a037330f7ca835a7 Author: Lasse Karkkainen <tro...@tr...> Date: Sat Jan 2 10:08:58 2010 +0200 Fix several sync issues, now the timing is precisely identical to ITG. Add support for stops. Code cleanup. --- game/dancegraph.cc | 12 ++++++- game/notes.hh | 4 -- game/song.hh | 2 + game/songparser-sm.cc | 91 +++++++++++++++++++++++-------------------------- game/songparser.hh | 9 ++++- 5 files changed, 64 insertions(+), 54 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-02 08:11:24
|
Module: performous
Branch: master
Commit: 6b6563dc41cce558d1468f10fb707c7996464141
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Jan 2 05:55:19 2010 +0200
Screenshot into PNG format. Key bindings changed: now F12 or Print takes a shot.
---
game/image.hh | 41 +++++++++++++++++++++++++++++-
game/main.cc | 4 +-
game/video_driver.cc | 69 +++++++------------------------------------------
3 files changed, 52 insertions(+), 62 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 8e4ad7b..2002e3a 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -1,16 +1,26 @@
#pragma once
+#include "configuration.hh"
#include "surface.hh"
#include "util.hh"
#include <jpeglib.h>
#include <librsvg/rsvg.h>
#include <librsvg/rsvg-cairo.h>
#include <png.h>
+#include <fstream>
+
+struct Image {
+ std::vector<unsigned char> data;
+ unsigned w, h;
+};
namespace {
void readPngHelper(png_structp pngPtr, png_bytep data, png_size_t length) {
static_cast<std::istream*>(png_get_io_ptr(pngPtr))->read((char*)data, length);
}
+ void writePngHelper(png_structp pngPtr, png_bytep data, png_size_t length) {
+ static_cast<std::ostream*>(png_get_io_ptr(pngPtr))->write((char*)data, length);
+ }
}
template <typename T> void loadSVG(T& target, std::string const& filename) {
@@ -72,7 +82,7 @@ template <typename T> void loadPNG(T& target, std::string const& filename) {
rows.resize(h);
unsigned pos = 0;
for (unsigned y = 0; y < h; ++y) {
- rows[y] = (png_bytep)&image[pos];
+ rows[y] = reinterpret_cast<png_bytep>(&image[pos]);
pos += (w * channels + 3) & ~3; // Rows need to be word aligned
}
png_read_image(pngPtr, &rows[0]);
@@ -93,6 +103,7 @@ template <typename T> void loadJPEG(T& target, std::string const& filename) {
unsigned w = cinfo.output_width;
unsigned h = cinfo.output_height;
image.resize(w * h * 4);
+ unsigned stride = (w * 3 + 3) & ~3; // Number of bytes per row (word-aligned)
unsigned char* ptr = &image[0];
while (cinfo.output_scanline < h) {
jpeg_read_scanlines(&cinfo, &ptr, 1);
@@ -103,3 +114,31 @@ template <typename T> void loadJPEG(T& target, std::string const& filename) {
target.load(w, h, pix::RGB, &image[0], float(w)/h);
}
+static inline void writePNG(std::string const& filename, Image const& img) {
+ std::ofstream file(filename.c_str(), std::ios::binary);
+ png_structp pngPtr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if (!pngPtr) throw std::runtime_error("png_create_read_struct failed");
+ png_infop infoPtr = NULL;
+ struct Cleanup {
+ png_structpp pngPP;
+ png_infopp infoPP;
+ Cleanup(png_structp& pngP, png_infop& infoP): pngPP(&pngP), infoPP(&infoP) {}
+ ~Cleanup() { png_destroy_write_struct(pngPP, infoPP); }
+ } cleanup(pngPtr, infoPtr);
+ infoPtr = png_create_info_struct(pngPtr);
+ if (!infoPtr) throw std::runtime_error("png_create_info_struct failed");
+ std::vector<png_bytep> rows(img.h);
+ // There must be no C++ objects after the setjmp line! (they won't get properly destructed)
+ if (setjmp(png_jmpbuf(pngPtr))) throw std::runtime_error("Writing PNG failed");
+ png_set_write_fn(pngPtr, &file, writePngHelper, NULL);
+ png_set_IHDR(pngPtr, infoPtr, img.w, img.h, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+ png_write_info(pngPtr, infoPtr);
+ unsigned stride = (img.w * 3 + 3) & ~3; // Number of bytes per row (word-aligned)
+ unsigned pos = img.h * stride;
+ for (unsigned y = 0; y < img.h; ++y) {
+ pos -= stride;
+ rows[y] = (png_bytep)(&img.data[pos]);
+ }
+ png_write_image(pngPtr, &rows[0]);
+}
+
diff --git a/game/main.cc b/game/main.cc
index d34d9e6..e58da6f 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -71,7 +71,7 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
config["graphic/fullscreen"].b() = !config["graphic/fullscreen"].b();
continue; // Already handled here...
}
- if (keypressed == SDLK_PRINT || keypressed == SDLK_WORLD_7) { // WORLD_7 = section sign (next to 1)
+ if (keypressed == SDLK_PRINT || keypressed == SDLK_F12) {
g_take_screenshot = true;
}
if (keypressed == SDLK_F4 && modifier & KMOD_ALT) {
@@ -163,9 +163,9 @@ void mainLoop(std::string const& songlist) {
unsigned frames = 0;
while (!sm.isFinished()) {
if( g_take_screenshot ) {
+ fs::path filename;
try {
window.screenshot();
- std::cout << ">>> Screenshot taken" << std::endl;
} catch (std::exception& e) {
std::cerr << "ERROR: " << e.what() << std::endl;
}
diff --git a/game/video_driver.cc b/game/video_driver.cc
index 19b6b90..5f6cc2d 100644
--- a/game/video_driver.cc
+++ b/game/video_driver.cc
@@ -3,16 +3,13 @@
#include "config.hh"
#include "glutil.hh"
#include "fs.hh"
+#include "image.hh"
#include "util.hh"
#include "joystick.hh"
+#include <boost/date_time.hpp>
#include <fstream>
#include <SDL.h>
-#ifdef _WIN32
-// for GetTempPathA
-#include <windows.h>
-#endif
-
namespace {
unsigned s_width;
unsigned s_height;
@@ -61,60 +58,14 @@ bool Window::getFullscreen() {
}
void Window::screenshot() {
- static unsigned int count = 0;
- unsigned width = m_fullscreen ? m_fsW : m_windowW;
- unsigned height = m_fullscreen ? m_fsH : m_windowH;
-
- std::vector<char> buffer(width*height*3);
- glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, &buffer[0]);
- std::ostringstream fnstr;
-#ifdef _WIN32
- char tmppath[256];
- GetTempPathA(256, tmppath); /* this includes a backslash at the end */
- fnstr << tmppath;
-#else
- fnstr << "/tmp/";
-#endif
- fnstr << "performous_screenshot_" << count;
-#if 1 // TODO: implement with libpng?
-//#ifdef USE_SDL_IMAGE
- /* Write the image out as an uncompressed tga. */
- fnstr << ".tga";
- std::ofstream tgaout(fnstr.str().c_str(), std::ios::binary);
- char tga_hdr_part1[] = {
- 0x00, /* no identification field */
- 0x00, /* no palette */
- 0x02, /* 24-bit RGB */
- 0x00, 0x00, 0x00, 0x00, 0x00, /* palette info (ignored) */
- 0x00, 0x00, /* x-origin */
- 0x00, 0x00, /* y-origin */
- };
- tgaout.write(tga_hdr_part1, sizeof(tga_hdr_part1));
- /* two 16-bit little endian words for width and height */
- tgaout << static_cast<char>(width & 0xff);
- tgaout << static_cast<char>(width >> 8);
- tgaout << static_cast<char>(height & 0xff);
- tgaout << static_cast<char>(height >> 8);
- tgaout << static_cast<char>(24); /* bits per pixel */
- tgaout << static_cast<char>(0x00); /* no special flags */
- for (unsigned i = 0; i < width*height*3; i += 3)
- std::swap(buffer[i], buffer[i+2]); /* fix the channel order */
- tgaout.write(&buffer[0], width*height*3); /* dump the image data */
- tgaout.close();
-#else
- fnstr << ".png";
- Magick::Blob blob( &buffer[0], width*height*3);
- Magick::Image image;
- char geometry[16];
- sprintf(geometry,"%dx%d",width,height);
- image.size(geometry);
- image.depth(8);
- image.magick( "RGB" );
- image.read(blob);
- image.flip();
- image.write(fnstr.str().c_str());
-#endif
- count++;
+ Image img;
+ img.w = m_fullscreen ? m_fsW : m_windowW;
+ img.h = m_fullscreen ? m_fsH : m_windowH;
+ img.data.resize(((img.w + 3) & ~3) * img.h * 3);
+ glReadPixels(0, 0, img.w, img.h, GL_RGB, GL_UNSIGNED_BYTE, &img.data[0]);
+ fs::path filename = getHomeDir() / ("Performous_" + to_iso_string(boost::posix_time::second_clock::local_time()) + ".png");
+ writePNG(filename.string(), img);
+ std::cout << ">>> Screenshot taken: " << filename << " (" << img.w << "x" << img.h << ")" << std::endl;
}
|