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...> - 2009-11-29 08:21:53
|
Module: performous
Branch: dance
Commit: 20e1891ced34a83b3c57154b299b3a135eaa5a14
Author: Lasse Karkkainen <tro...@tr...>
Date: Fri Nov 20 05:40:35 2009 +0200
LIB_SUFFIX improvements
---
CMakeLists.txt | 2 ++
libs/plugin++/CMakeLists.txt | 2 ++
libs/plugin++/src/loader.cc | 6 +++++-
3 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e48ac49..d2b391d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,6 +38,8 @@ add_subdirectory(data)
add_subdirectory(game)
add_subdirectory(docs)
+set(LIB_SUFFIX "" CACHE STRING "Optional suffix to use on lib folders (e.g. 64 for lib64)")
+
option(ENABLE_EDITOR "Enable experimental song editor (doesn't work)" OFF)
if (ENABLE_EDITOR)
diff --git a/libs/plugin++/CMakeLists.txt b/libs/plugin++/CMakeLists.txt
index b92b983..4817fae 100644
--- a/libs/plugin++/CMakeLists.txt
+++ b/libs/plugin++/CMakeLists.txt
@@ -4,6 +4,8 @@ cmake_policy(VERSION 2.6)
include_directories(include)
+set(LIB_SUFFIX "" CACHE STRING "Optional suffix to use on lib folders (e.g. 64 for lib64)")
+
if(CMAKE_COMPILER_IS_GNUCXX)
message(STATUS "GCC detected, adding compile flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98 -Wall -Wextra")
diff --git a/libs/plugin++/src/loader.cc b/libs/plugin++/src/loader.cc
index b39c8eb..c7bdb4c 100644
--- a/libs/plugin++/src/loader.cc
+++ b/libs/plugin++/src/loader.cc
@@ -15,6 +15,10 @@ namespace fs = boost::filesystem;
#define PATHSEP ';'
#else
#define PATHSEP ':'
+#ifndef LIB_SUFFIX
+#define LIB_SUFFIX ""
+#endif
+#define UNIX_LIBPATH "/usr/lib" LIB_SUFFIX ":/usr/local/lib" LIB_SUFFIX
#endif
/// Break var (a delimited path string) into paths (appends folder if supplied).
@@ -56,7 +60,7 @@ loader::loader(fs::path const& folder) {
#ifndef _WIN32
// Try UNIX library paths
parse(paths, std::getenv("LD_LIBRARY_PATH"), folder);
- parse(paths, "/usr/lib" LIB_SUFFIX ":/usr/local/lib" LIB_SUFFIX, folder);
+ parse(paths, UNIX_LIBPATH, folder);
#endif
}
// Load the contents of each folder
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:50
|
Module: performous
Branch: dance
Commit: abd07672ce3718a01f68cdd59744e1c92b792a26
Author: Lasse Karkkainen <tro...@tr...>
Date: Thu Nov 19 03:45:09 2009 +0200
Make execname return fs::path + other fixes to it
---
game/fs.cc | 2 +-
libs/plugin++/include/plugin++/execname.hpp | 4 +-
libs/plugin++/src/execname.cc | 38 +++++++++++++++-----------
3 files changed, 25 insertions(+), 19 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index 0bd60b0..852529a 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -89,7 +89,7 @@ std::string getPath(fs::path const& filename) {
}
#endif
// Adding relative path from executable
- dirs.push_back(fs::path(plugin::execname()).parent_path().parent_path() / shareDir);
+ dirs.push_back(plugin::execname().parent_path().parent_path() / shareDir);
#ifndef _WIN32
// Adding XDG_DATA_DIRS
{
diff --git a/libs/plugin++/include/plugin++/execname.hpp b/libs/plugin++/include/plugin++/execname.hpp
index 03b7fe0..4c53315 100644
--- a/libs/plugin++/include/plugin++/execname.hpp
+++ b/libs/plugin++/include/plugin++/execname.hpp
@@ -1,9 +1,9 @@
#pragma once
-#include <string>
+#include <boost/filesystem.hpp>
namespace plugin {
/// Get the current executable name with path. Returns empty path if the name
/// cannot be found. May return absolute or relative paths.
- std::string execname();
+ boost::filesystem::path execname();
}
diff --git a/libs/plugin++/src/execname.cc b/libs/plugin++/src/execname.cc
index d647f26..6844d74 100644
--- a/libs/plugin++/src/execname.cc
+++ b/libs/plugin++/src/execname.cc
@@ -1,52 +1,58 @@
#include <plugin++/execname.hpp>
+namespace fs = boost::filesystem;
+
#if defined(_WIN32)
#include <windows.h>
-std::string plugin::execname() {
+fs::path plugin::execname() {
char buf[1024];
DWORD ret = GetModuleFileName(NULL, buf, sizeof(buf));
if (ret == 0 || ret == sizeof(buf)) return std::string();
return buf;
}
-#elif defined(__APPLE__) // Not tested
+#elif defined(__APPLE__)
#include <mach-o/dyld.h>
-std::string plugin::execname() {
+fs::path plugin::execname() {
char buf[1024];
uint32_t size = sizeof(buf);
int ret = _NSGetExecutablePath(buf, &size);
- if (ret != 0) return std::string();
+ if (ret != 0) return fs::path();
return buf;
}
#elif defined(sun) || defined(__sun)
#include <stdlib.h>
-std::string plugin::execname() {
- return getplugin::execname();
+fs::path plugin::execname() {
+ return getexecname();
}
#elif defined(__FreeBSD__)
#include <sys/sysctl.h>
-std::string plugin::execname() {
+fs::path plugin::execname() {
int mib[4];
mib[0] = CTL_KERN;
mib[1] = KERN_PROC;
mib[2] = KERN_PROC_PATHNAME;
mib[3] = -1;
char buf[1024];
- size_t size = sizeof(buf);
+ size_t maxchars = sizeof(buf) - 1;
+ size_t size = maxchars;
sysctl(mib, 4, buf, &size, NULL, 0);
- if (size == 0 || size == sizeof(buf)) return std::string();
- return std::string(buf, size);
+ if (size == 0 || size >= maxchars) return fs::path();
+ buf[size] = '\0';
+ return buf;
}
#elif defined(__linux__)
#include <unistd.h>
-std::string plugin::execname() {
+fs::path plugin::execname() {
char buf[1024];
- ssize_t ret = readlink("/proc/self/exe", buf, sizeof(buf));
- if (ret == 0 || ret == sizeof(buf)) return std::string();
- return std::string(buf, ret);
+ ssize_t maxchars = sizeof(buf) - 1;
+ ssize_t size = readlink("/proc/self/exe", buf, sizeof(buf));
+ if (size <= 0 || size >= maxchars) return fs::path();
+ buf[size] = '\0';
+ return buf;
}
#else
-std::string plugin::execname() {
- return std::string();
+fs::path plugin::execname() {
+ return fs::path();
}
#endif
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:47
|
Module: performous
Branch: dance
Commit: 358bf49e58d6fafdd41db067663c9668535d3fb4
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Nov 18 16:02:06 2009 +0200
Add dll symbol loading to libplugin++
---
libs/plugin++/include/plugin++/dll.hpp | 25 +++++++++++++++++++++++--
libs/plugin++/src/dll.cc | 12 ++++++++++--
2 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/libs/plugin++/include/plugin++/dll.hpp b/libs/plugin++/include/plugin++/dll.hpp
index ed4a7b6..39aa091 100644
--- a/libs/plugin++/include/plugin++/dll.hpp
+++ b/libs/plugin++/include/plugin++/dll.hpp
@@ -1,16 +1,37 @@
+#pragma once
#ifndef DLL_HPP_INCLUDED
#define DLL_HPP_INCLUDED
#include "dllhelper.hpp"
+#include <stdexcept>
#include <string>
namespace plugin {
- /** @short RAII wrapper to load and unload dynamic library **/
+
+ /// \brief Exception class for signaling runtime errors from class dll
+ class dll_error: public std::runtime_error {
+ public:
+ dll_error(std::string const& msg): runtime_error(msg) {}
+ };
+
+ /// \brief Dynamic library loader
class DLL_PUBLIC dll {
void* lib;
- public:
+ public:
+ /// Open a dynamic library
+ /// \throws dll_error if the library cannot be loaded
dll(std::string const& filename);
~dll();
+ /// Get a symbol from DLL (symptr can be a data or a function pointer)
+ /// \throws dll_error if no symbol is found
+ template <typename SymPtr> void sym(std::string const& name, SymPtr& symptr) {
+ union { void* ptr; SymPtr symptr; } conv; // Data/function conversion without warnings
+ conv.ptr = sym(name.c_str());
+ if (!conv.ptr) throw dll_error("Symbol " + name + " not found");
+ symptr = conv.symptr;
+ }
+ /// Get a symbol from DLL (low level C style version)
+ void* sym(char const* name);
};
}
diff --git a/libs/plugin++/src/dll.cc b/libs/plugin++/src/dll.cc
index f684654..73662e6 100644
--- a/libs/plugin++/src/dll.cc
+++ b/libs/plugin++/src/dll.cc
@@ -11,19 +11,27 @@ using namespace plugin;
#include <windows.h>
dll::dll(std::string const& filename): lib(LoadLibrary(filename.c_str())) {
- if (!lib) throw std::runtime_error("Unable to open " + filename);
+ if (!lib) throw dll_error("Unable to open " + filename);
}
dll::~dll() { FreeLibrary(static_cast<HINSTANCE>(lib)); }
+void* dll::sym(char const* sym) {
+ return GetProcAddress(static_cast<HINSTANCE>(lib), sym);
+}
+
#else
#include <dlfcn.h>
dll::dll(std::string const& filename): lib(dlopen(filename.c_str(), RTLD_LAZY | RTLD_GLOBAL)) {
- if (!lib) throw std::runtime_error(dlerror());
+ if (!lib) throw dll_error(dlerror());
}
dll::~dll() { dlclose(lib); }
+void* dll::sym(char const* sym) {
+ return dlsym(lib, sym);
+}
+
#endif
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:43
|
Module: performous
Branch: dance
Commit: f570a1f77f22177f84709769a14f2ed024060b7d
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Nov 17 15:26:37 2009 +0100
Fixed shared data dir installation path
---
game/fs.cc | 3 ++-
.../games-arcade/performous/performous-9999.ebuild | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index 090e47e..0bd60b0 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -1,5 +1,6 @@
#include "fs.hh"
+#include "config.hh"
#include "configuration.hh"
#include <plugin++/execname.hpp>
#include <cstdlib>
@@ -72,7 +73,7 @@ std::string getPath(fs::path const& filename) {
if (!initialized) {
initialized = true;
fs::path shortDir = "performous";
- fs::path shareDir = "share/games" / shortDir;
+ fs::path shareDir = SHARED_DATA_DIR;
#ifdef _WIN32
// Add APPLIC~1 (user-specific application data) FIXME: Not tested
{
diff --git a/portage-overlay/games-arcade/performous/performous-9999.ebuild b/portage-overlay/games-arcade/performous/performous-9999.ebuild
index 8e0fcb7..c791a29 100644
--- a/portage-overlay/games-arcade/performous/performous-9999.ebuild
+++ b/portage-overlay/games-arcade/performous/performous-9999.ebuild
@@ -69,7 +69,7 @@ src_configure() {
$(cmake-utils_use_enable tools TOOLS)
$(cmake-utils_use_enable editor EDITOR)
-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}
- -DSHARE_INSTALL=share/
+ -DSHARE_INSTALL=share/performous
-DLIBDA_AUTODETECT_PLUGINS=false
-DLIBDA_PLUGIN_TESTING=false
-DCMAKE_BUILD_TYPE=Release"
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:40
|
Module: performous
Branch: dance
Commit: d2269716d7dd220c92b3948821bcc7a334b0e617
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Nov 17 15:04:54 2009 +0100
Fixed type in manpage dependencyÃ
---
docs/CMakeLists.txt | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index 0a4269d..a33cd78 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -12,7 +12,7 @@ if(UNIX)
OUTPUT ${MANFILE}
COMMAND ${HELP2MAN} ${PERFORMOUS_EXEC} -s 6 -i ${H2MFILE} -N | ${GZIP} > ${MANFILE}
MAIN_DEPENDENCY ${H2MFILE}
- DEPENDENCY ${PERFORMOUS_EXEC}
+ DEPENDS ${PERFORMOUS_EXEC}
COMMENT "Building Performous man page"
VERBATIM
)
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:38
|
Module: performous
Branch: dance
Commit: 3b4d9cb3ec6be92a90ebf35cc7c40e40674c705e
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Nov 17 14:07:44 2009 +0100
Made loader plugin aware of LIB_SUFFIX - this fix installation on non standard prefix with custom LIB_SUFFIX
---
libs/plugin++/CMakeLists.txt | 2 ++
libs/plugin++/src/loader.cc | 4 ++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/libs/plugin++/CMakeLists.txt b/libs/plugin++/CMakeLists.txt
index b85f1a3..b92b983 100644
--- a/libs/plugin++/CMakeLists.txt
+++ b/libs/plugin++/CMakeLists.txt
@@ -15,6 +15,8 @@ find_package(Boost 1.36 REQUIRED COMPONENTS filesystem)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(plugin++ ${Boost_LIBRARIES})
+add_definitions("-DLIB_SUFFIX=\"${LIB_SUFFIX}\"")
+
if(NOT WIN32)
target_link_libraries(plugin++ dl)
endif()
diff --git a/libs/plugin++/src/loader.cc b/libs/plugin++/src/loader.cc
index 199698c..b39c8eb 100644
--- a/libs/plugin++/src/loader.cc
+++ b/libs/plugin++/src/loader.cc
@@ -50,13 +50,13 @@ loader::loader(fs::path const& folder) {
fs::path p = execname();
p = p.parent_path().parent_path();
if (!p.empty()) {
- p /= "lib" / folder;
+ p /= "lib" LIB_SUFFIX / folder;
if (fs::is_directory(p)) paths.insert(p);
}
#ifndef _WIN32
// Try UNIX library paths
parse(paths, std::getenv("LD_LIBRARY_PATH"), folder);
- parse(paths, "/usr/lib:/usr/local/lib", folder);
+ parse(paths, "/usr/lib" LIB_SUFFIX ":/usr/local/lib" LIB_SUFFIX, folder);
#endif
}
// Load the contents of each folder
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:36
|
Module: performous
Branch: dance
Commit: 4536b9366cd590a018366df21db56acaf61c7aa4
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Nov 17 12:51:44 2009 +0100
Added LIB_SUFFIX to install rpath
---
game/CMakeLists.txt | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt
index 1ea641a..462e0ce 100644
--- a/game/CMakeLists.txt
+++ b/game/CMakeLists.txt
@@ -40,9 +40,9 @@ target_link_libraries(performous da ${LIBS})
# Store library paths in executable
if(APPLE)
- set_target_properties(performous PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE INSTALL_RPATH @loader_path/../lib)
+ set_target_properties(performous PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE INSTALL_RPATH @loader_path/../lib${LIB_SUFFIX})
else()
- set_target_properties(performous PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE INSTALL_RPATH \$ORIGIN/../lib)
+ set_target_properties(performous PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE INSTALL_RPATH \$ORIGIN/../lib${LIB_SUFFIX})
endif()
# Generate config.hh
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:34
|
Module: performous
Branch: dance
Commit: ccabd21fae85a7b0c9a337c3c5dd5640dfd770f9
Author: Tapio Vierros <tap...@gm...>
Date: Mon Nov 16 12:49:04 2009 +0200
Name of track is now displayed in players screen.
---
game/screen_players.cc | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/game/screen_players.cc b/game/screen_players.cc
index 7cd1ec3..8caa6ba 100644
--- a/game/screen_players.cc
+++ b/game/screen_players.cc
@@ -115,7 +115,8 @@ void ScreenPlayers::draw() {
}
} else {
// Format the player information text
- oss_song << "You reached " << m_database.scores.front().score << " points!\n";
+ oss_song << m_database.scores.front().track << "\n";
+ oss_song << "You reached " << m_database.scores.front().score << " points!";
oss_order << "Please enter your Name!\n"
<< "Name: " << m_players.current().name << '\n'
<< "Search Text: "
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:32
|
Module: performous
Branch: dance
Commit: 55072f940c006b7030ca24f2836fbc975a86abd5
Author: Tapio Vierros <tap...@gm...>
Date: Mon Nov 16 12:28:55 2009 +0200
Fixed a crash with ScoreWindow instrument erasing and removed some debug prints.
---
game/screen_sing.cc | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index a2ffde3..35595b5 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -146,9 +146,7 @@ void ScreenSing::activateNextScreen()
ScreenManager* sm = ScreenManager::getSingletonPtr();
m_database.addSong(m_song);
- if (m_database.scores.empty()
- || !m_database.reachedHiscore(m_song))
- {
+ if (m_database.scores.empty() || !m_database.reachedHiscore(m_song)) {
// if no highscore reached..
sm->activateScreen("Songs");
return;
@@ -325,7 +323,7 @@ ScoreWindow::ScoreWindow(Instruments& instruments, Database& database):
{
m_pos.setTarget(0.0);
m_database.scores.clear();
- for (std::list<Player>::iterator p = m_database.cur.begin(); p != m_database.cur.end(); ++p) {
+ for (std::list<Player>::iterator p = m_database.cur.begin(); p != m_database.cur.end();) {
ScoreItem item;
item.score = p->getScore();
item.track = "Vocals";
@@ -334,28 +332,29 @@ ScoreWindow::ScoreWindow(Instruments& instruments, Database& database):
if (item.score < 500) { p = m_database.cur.erase(p); continue; }
m_database.scores.push_back(item);
+ ++p;
}
- for (Instruments::iterator it = instruments.begin(); it != instruments.end(); ++it) {
+ for (Instruments::iterator it = instruments.begin(); it != instruments.end();) {
ScoreItem item;
item.score = it->getScore();
item.track_simple = it->getTrack();
item.track = it->getTrack() + " - " + it->getDifficultyString();
item.track[0] = toupper(item.track[0]);
- if (item.score < 100) { std::cout << "kick " << item.track << std::endl; it = instruments.erase(it); continue; }
+ if (item.score < 100) { it = instruments.erase(it); continue; }
if (item.track_simple == "drums") item.color = glutil::Color(0.1f, 0.1f, 0.1f);
else if (item.track_simple == "bass") item.color = glutil::Color(0.5f, 0.3f, 0.1f);
else item.color = glutil::Color(1.0f, 0.0f, 0.0f);
- std::cout << "insert " << item.track << " score: " << item.score << std::endl;
m_database.scores.push_back(item);
+ ++it;
}
- m_database.scores.sort();
- m_database.scores.reverse(); // top should be first
if (m_database.scores.empty())
m_rank = "No player!";
else {
+ m_database.scores.sort();
+ m_database.scores.reverse(); // top should be first
int topScore = m_database.scores.front().score;
if (m_database.scores.front().track_simple == "vocals") {
if (topScore > 8000) m_rank = "Hit singer";
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:30
|
Module: performous
Branch: dance
Commit: db25e4ffa8fa61fa1f0db911ca33d7031f60c2c1
Author: Tapio Vierros <tap...@gm...>
Date: Mon Nov 16 12:06:10 2009 +0200
Esc in ScoreWindow exits to players screen, not song browser.
---
game/screen_sing.cc | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index a1f5c15..a2ffde3 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -170,6 +170,8 @@ void ScreenSing::manageEvent(SDL_Event event) {
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");
return;
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:27
|
Module: performous
Branch: dance
Commit: 979574d4125cc94da96d129c8a5c22188c6f5aa3
Author: Tapio Vierros <tap...@gm...>
Date: Mon Nov 16 11:58:46 2009 +0200
Make inactive hammer notes darker (until someone comes up with something better).
---
game/guitargraph.cc | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index ed011d3..f0a9916 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -496,7 +496,9 @@ void GuitarGraph::drawNote(int fret, glutil::Color c, float tBeg, float tEnd, fl
float y = yBeg + fretWid;
if (m_use3d) {
y -= fretWid;
- c.a = clamp(time2a(tBeg)*2.0f,0.0f,1.0f); glColor4fv(c);
+ c.a = clamp(time2a(tBeg)*2.0f,0.0f,1.0f);
+ if (tappable && m_correctness.get() < .99) { c.r *= 0.5f; c.g *= 0.5f; c.b *= 0.5f; }
+ glColor4fv(c);
obj->draw(x, y, 0.0f);
y -= fretWid;
} else {
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:25
|
Module: performous
Branch: dance
Commit: ea4eaa933b78c9d80b560e24c0264532fc2c8880
Author: Tapio Vierros <tap...@gm...>
Date: Mon Nov 16 11:48:56 2009 +0200
ScoreWindow layout tweak.
---
game/screen_sing.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index a6c383b..a1f5c15 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -383,7 +383,7 @@ void ScoreWindow::draw() {
for (Database::cur_scores_t::const_iterator p = m_database.scores.begin(); p != m_database.scores.end(); ++p, ++i) {
int score = p->score;
glColor4fv(p->color);
- double x = -0.12 + spacing * (0.5 + i - 0.5 * m_database.cur.size());
+ double x = -0.12 + spacing * (0.5 + i - 0.5 * m_database.scores.size());
m_scoreBar.dimensions.middle(x).bottom(0.20);
m_scoreBar.draw(score / 10000.0);
m_score_text.render(boost::lexical_cast<std::string>(score));
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:23
|
Module: performous Branch: dance Commit: 4f71b68658a598ff5d3a7ec36b5b7065d26dab18 Author: Lasse Karkkainen <tro...@tr...> Date: Mon Nov 16 01:26:58 2009 +0200 Original Silky Strings code is no longer used --- docs/Authors.txt | 19 +++++++++---------- 1 files changed, 9 insertions(+), 10 deletions(-) diff --git a/docs/Authors.txt b/docs/Authors.txt index 3aa99a9..492e44a 100644 --- a/docs/Authors.txt +++ b/docs/Authors.txt @@ -48,16 +48,6 @@ jEsuSdA <info at jesusda.com> Tobias Gehrig <tgehrig at users.sourceforge.net> * Pre-calculate FFT window patch -Olli Salli <osalli at cc.hut.fi> - * Silky Strings glfw window management, input and graphics - -Ville Virkkala <vvirkkal at cc.hut.fi> - * Silky Strings original MIDI parser - * Silky Strings game logic - -Tuomas Perälä <tuomas.perala at hut.fi> - * Silky Strings Qt-based launcher - GUEST DEVELOPERS ---------------- @@ -98,4 +88,13 @@ Ignacio Casal Quinteiro <nacho.resa at gmail.com> Sylvain Henry <hsyl20 at yahoo.fr> * Long sentence display patch +Olli Salli <osalli at cc.hut.fi> + * Silky Strings glfw window management, input and graphics + +Ville Virkkala <vvirkkal at cc.hut.fi> + * Silky Strings original MIDI parser + * Silky Strings game logic + +Tuomas Perälä <tuomas.perala at hut.fi> + * Silky Strings Qt-based launcher |
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:23
|
Module: performous
Branch: dance
Commit: a1b99b889607c049a6e59faaa5b513fd9e083306
Author: Lasse Karkkainen <tro...@tr...>
Date: Mon Nov 16 01:25:29 2009 +0200
Add a new bug to TODO.txt
---
docs/TODO.txt | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/docs/TODO.txt b/docs/TODO.txt
index 496eb21..5b57e52 100644
--- a/docs/TODO.txt
+++ b/docs/TODO.txt
@@ -79,3 +79,29 @@ performous(main+0x1d30)[0x4d42c0]
- Random segfault on program exit (very hard to reproduce)
* Don't even need to enter songs screen, start and exit is enough.
+- Hang on program exit (deadlock in mixer):
+(gdb) thread 1
+[Switching to thread 1 (Thread 0x7f6f4f1aa8a0 (LWP 13792))]#0 0x00007f6f4949e5a9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
+(gdb) bt
+#0 0x00007f6f4949e5a9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
+#1 0x00007f6f4ecc7669 in boost::thread::join() () from /usr/lib/libboost_thread.so.1.40.0 // Waiting for audio thread (thread 3) to terminate
+#2 0x00007f6f3d980f09 in ~alsa_playback (this=0x218e770, __in_chrg=<value optimized out>) at /home/tronic/performous/libs/libda/plugins/audio_dev_alsa.cpp:194
+#3 0x000000000048e68d in da::mixer::~mixer() ()
+#4 0x00000000004ffad8 in Audio::~Audio() ()
+#5 0x00000000004f7e73 in mainLoop (songlist=<value optimized out>) at /home/tronic/performous/game/main.cc:179
+#6 0x00000000004f9a9d in main (argc=<value optimized out>, argv=<value optimized out>) at /home/tronic/performous/game/main.cc:290
+(gdb) thread 3
+[Switching to thread 3 (Thread 0x7f6f3c65d910 (LWP 13794))]#0 0x00007f6f494a0c34 in __lll_lock_wait () from /lib/libpthread.so.0
+(gdb) bt
+#0 0x00007f6f494a0c34 in __lll_lock_wait () from /lib/libpthread.so.0
+#1 0x00007f6f4949c2b0 in _L_lock_1022 () from /lib/libpthread.so.0
+#2 0x00007f6f4949c111 in pthread_mutex_lock () from /lib/libpthread.so.0
+#3 0x000000000048c253 in boost::unique_lock<boost::recursive_mutex>::unique_lock(boost::recursive_mutex&) () // Mixer lock?
+#4 0x000000000048cad5 in boost::detail::function::function_ref_invoker1<da::mutex_stream, bool, da::pcm_data&>::invoke(boost::detail::function::function_buffer&, da::pcm_data&) ()
+#5 0x000000000048bd3e in boost::function1<bool, da::pcm_data&>::operator()(da::pcm_data&) const ()
+#6 0x00007f6f3d97fddb in operator() (this=0x218e770) at /home/tronic/performous/libs/libda/plugins/audio_dev_alsa.cpp:205
+#7 0x00007f6f4ecc6db0 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
+#8 0x00007f6f49499a04 in start_thread () from /lib/libpthread.so.0
+#9 0x00007f6f492037bd in clone () from /lib/libc.so.6
+#10 0x0000000000000000 in ?? ()
+
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:19
|
Module: performous Branch: dance Commit: 3657b6d3546a3adae60d3015c796eabd6943630a Author: Tapio Vierros <tap...@gm...> Date: Sun Nov 15 12:15:46 2009 +0200 Added myself to Authors.txt --- docs/Authors.txt | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/Authors.txt b/docs/Authors.txt index e7309cd..3aa99a9 100644 --- a/docs/Authors.txt +++ b/docs/Authors.txt @@ -28,7 +28,10 @@ dex7 <dex7 at users.sourceforge.net> * Website layout Fabian Fingerle <fabian at datensalat.eu> - * dependency testing + * Dependency testing + +Tapio Vierros <aave000 at users.sourceforge.net> + * Various things and features INACTIVE DEVELOPERS @@ -66,7 +69,7 @@ Tryad <http://tryad.org/> * The menu song (CC-by-sa) Oxetti choir <http://www.oxetti.info/> - * Practice background vocalization (recorded for this project) + * Practice background vocalization (recorded for this project) Joonas Kerttula / Frets on Fire <http://fretsonfire.sourceforge.net/> * SVGs borrowed from FoF under GNU GPL :) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:21:17
|
Module: performous Branch: dance Commit: 985d158c19a64467357219c926787812f42a48d1 Author: Tapio Vierros <tap...@gm...> Date: Sun Nov 15 12:08:03 2009 +0200 Changed the default image for players. --- game/screen_players.cc | 2 +- themes/default/no_player_image.svg | 131 ++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+), 1 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 08:04:08
|
Module: performous Branch: master Commit: b36b781156e7a4ddca064cdb9a24403ba3a90532 Author: Lasse Karkkainen <tro...@tr...> Date: Sun Nov 29 10:03:47 2009 +0200 Record the image loading issue on TODO.txt --- docs/TODO.txt | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/docs/TODO.txt b/docs/TODO.txt index 5b57e52..2d8377e 100644 --- a/docs/TODO.txt +++ b/docs/TODO.txt @@ -105,3 +105,10 @@ performous(main+0x1d30)[0x4d42c0] #9 0x00007f6f492037bd in clone () from /lib/libc.so.6 #10 0x0000000000000000 in ?? () +- Bitmap surfaces are often loaded only partially, loading stops at a middle of a scanline. + * Affects at least PNG format, maybe not others + * The rest appears black or transparent (at least most of the time) + * Reloading often causes different results on the same image + * Different images may also stop at the exact same pixel + => out of memory condition or something? + |
|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-29 07:49:34
|
Module: web Branch: master Commit: 962df66d512037bfdce6f5f2dec89ad390f0e6bc Author: Lasse Karkkainen <tro...@tr...> Date: Sun Nov 29 09:49:11 2009 +0200 0.4.0 release updates --- htdocs-source/history.txt | 18 ++++++++++++++++ htdocs-source/index.txt | 49 +++++++++++++++++++++++++++----------------- htdocs-source/install.txt | 9 +++---- htdocs-source/songs.txt | 8 +++++++ 4 files changed, 60 insertions(+), 24 deletions(-) |
|
From: Peque <ms...@us...> - 2009-11-28 20:21:53
|
Module: performous Branch: menu Commit: 90d8df704986cf6ac278d7c73cd075dd4dd35479 Author: Miguel Sánchez de León Peque <msd...@gm...> Date: Sat Nov 28 21:20:21 2009 +0100 Starting a theme based on the original one; background color is provisional --- themes/default/configuration_bg.svg | 221 ++++++++++++-------------------- themes/default/icon.bmp | Bin 4150 -> 3126 bytes themes/default/icon.png | Bin 4897 -> 2630 bytes themes/default/icon.svg | 51 +++++--- themes/default/intro_bg.svg | 185 +++++---------------------- themes/default/intro_configure.svg | 6 +- themes/default/intro_practice.svg | 10 +- themes/default/intro_quit.svg | 15 ++- themes/default/intro_sing.svg | 61 +-------- themes/default/intro_top.svg | 24 ++-- themes/default/practice_bg.svg | 238 ++++++++++++++++------------------- themes/default/songs_bg.svg | 4 +- themes/default/songs_bg_default.svg | 146 ++++------------------ 13 files changed, 318 insertions(+), 643 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2009-11-28 16:46:52
|
Module: performous
Branch: master
Commit: 34f294fd5556b38499f24e65bdbcb3a7390e6fef
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Nov 28 17:46:34 2009 +0100
Bump version, Added screenshot by pressing F11 (need tweak)
---
CMakeLists.txt | 2 +-
game/main.cc | 14 ++++++++++++++
game/video_driver.cc | 26 ++++++++++++++++++++++++++
game/video_driver.hh | 2 ++
4 files changed, 43 insertions(+), 1 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6437a8e..a549d2a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,7 @@
project(Performous CXX)
cmake_minimum_required(VERSION 2.6)
cmake_policy(VERSION 2.6)
-set(PROJECT_VERSION "0.4.0")
+set(PROJECT_VERSION "0.4.0+")
# Avoid source tree pollution
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
diff --git a/game/main.cc b/game/main.cc
index dcfa16a..3d42c90 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -31,6 +31,8 @@
volatile bool g_quit = false;
+bool g_take_screenshot = false;
+
extern "C" void quit(int) {
g_quit = true;
}
@@ -68,6 +70,9 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
config["graphic/fullscreen"].b() = !config["graphic/fullscreen"].b();
continue; // Already handled here...
}
+ if (keypressed == SDLK_F11 ) {
+ g_take_screenshot = true;
+ }
if (keypressed == SDLK_F4 && modifier & KMOD_ALT) {
sm.finished();
continue; // Already handled here...
@@ -156,6 +161,15 @@ void mainLoop(std::string const& songlist) {
boost::xtime time = now();
unsigned frames = 0;
while (!sm.isFinished()) {
+ if( g_take_screenshot ) {
+ try {
+ window.screenshot();
+ std::cout << ">>> Screenshot taken" << std::endl;
+ } catch (std::exception& e) {
+ std::cerr << "ERROR: " << e.what() << std::endl;
+ }
+ g_take_screenshot = false;
+ }
try {
checkEvents_SDL(sm, window);
window.blank();
diff --git a/game/video_driver.cc b/game/video_driver.cc
index 0fb7ddb..ac6a69d 100644
--- a/game/video_driver.cc
+++ b/game/video_driver.cc
@@ -5,7 +5,9 @@
#include "fs.hh"
#include "util.hh"
#include "joystick.hh"
+
#include <SDL.h>
+#include <Magick++.h>
namespace {
unsigned s_width;
@@ -54,6 +56,30 @@ bool Window::getFullscreen() {
return m_fullscreen;
}
+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]);
+ 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();
+ char filename[256];
+ sprintf(filename,"/tmp/performous_screenshot_%u.png",count);
+ image.write(filename);
+ count++;
+}
+
+
void Window::resize() {
unsigned width = m_fullscreen ? m_fsW : m_windowW;
unsigned height = m_fullscreen ? m_fsH : m_windowH;
diff --git a/game/video_driver.hh b/game/video_driver.hh
index 38ac892..4ac703e 100644
--- a/game/video_driver.hh
+++ b/game/video_driver.hh
@@ -33,6 +33,8 @@ class Window {
void setFullscreen(bool _fs);
/// gets fullscreen state
bool getFullscreen();
+ /// take a screenshot
+ void screenshot();
private:
SDL_Surface* screen;
|
|
From: Peque <ms...@us...> - 2009-11-28 15:57:49
|
Module: performous Branch: menu Commit: 32ba21fcf94df36dab99d3ab2ea287263a128405 Author: Miguel Sánchez de León Peque <msd...@gm...> Date: Sat Nov 28 16:57:02 2009 +0100 New (just modified) SGV images for the main menu. --- themes/default/intro_bg.svg | 71 +----------- themes/default/intro_configure.svg | 224 ++++++++++++++++++++++++++--------- themes/default/intro_practice.svg | 184 ++++++++++++++++++++--------- themes/default/intro_quit.svg | 206 ++++++++++++++++++++++++--------- themes/default/intro_sing.svg | 132 +++++++++++++++------- themes/default/intro_top.svg | 106 ++++++++++-------- 6 files changed, 597 insertions(+), 326 deletions(-) |
|
From: Peque <ms...@us...> - 2009-11-28 13:40:26
|
Module: performous Branch: menu Commit: 097658f71149c001aebc2a584efd14feb53eda44 Author: Miguel Sánchez de León Peque <msd...@gm...> Date: Sat Nov 28 14:30:22 2009 +0100 Little changes on code and images organization --- game/screen_intro.cc | 63 ++------ game/theme.cc | 3 +- game/theme.hh | 10 +- themes/default/intro_configure.svg | 80 +---------- themes/default/intro_practice.svg | 76 --------- themes/default/intro_quit.svg | 76 --------- themes/default/intro_sing.svg | 76 --------- themes/default/intro_top.svg | 296 ++++++++++++++++++++++++++++++++++++ 8 files changed, 323 insertions(+), 357 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2009-11-28 13:33:15
|
Module: performous
Branch: master
Commit: 5de31abdd2ef21474dbbe8e3828a9685c1cb5b26
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Nov 28 14:27:05 2009 +0100
Fixed ubuntu karmic depends list
---
cmake/performous-packaging.cmake | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/cmake/performous-packaging.cmake b/cmake/performous-packaging.cmake
index d987ed5..d88f286 100644
--- a/cmake/performous-packaging.cmake
+++ b/cmake/performous-packaging.cmake
@@ -60,7 +60,7 @@ if(UNIX)
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.35.0, libboost-program-options1.35.0, libboost-regex1.35.0, libboost-filesystem1.35.0, libboost-date-time1.35.0, libavcodec52, libavformat52, libswscale0, libmagick++1, libxml++2.6-2, libglew1.5")
endif("${LSB_DISTRIB}" MATCHES "Ubuntu9.04")
if("${LSB_DISTRIB}" MATCHES "Ubuntu9.10")
- set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.38.0, libboost-program-options1.38.0, libboost-regex1.38.0, libboost-filesystem1.38.0, libboost-date-time1.38.0, libavcodec52, libavformat52, libswscale0, libmagick++1, libxml++2.6-2, libglew1.5")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.38.0, libboost-program-options1.38.0, libboost-regex1.38.0, libboost-filesystem1.38.0, libboost-date-time1.38.0, libavcodec52, libavformat52, libswscale0, libmagick++2, libxml++2.6-2, libglew1.5")
endif("${LSB_DISTRIB}" MATCHES "Ubuntu9.10")
if("${LSB_DISTRIB}" MATCHES "Debian5.*")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-dev, libavcodec51, libavformat52, libswscale0, libmagick++10, libxml++2.6-2, libglew1.5")
|
|
From: Yoda-JM <yo...@us...> - 2009-11-28 13:27:38
|
Module: performous
Branch: menu
Commit: c5a5afa51997ce5d76ae3ab7c96485b697267975
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Nov 28 14:27:05 2009 +0100
Fixed ubuntu karmic depends list
---
cmake/performous-packaging.cmake | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/cmake/performous-packaging.cmake b/cmake/performous-packaging.cmake
index 8fe3e9f..97c703d 100644
--- a/cmake/performous-packaging.cmake
+++ b/cmake/performous-packaging.cmake
@@ -61,7 +61,7 @@ if(UNIX)
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.35.0, libboost-program-options1.35.0, libboost-regex1.35.0, libboost-filesystem1.35.0, libboost-date-time1.35.0, libavcodec52, libavformat52, libswscale0, libmagick++1, libxml++2.6-2, libglew1.5")
endif("${LSB_DISTRIB}" MATCHES "Ubuntu9.04")
if("${LSB_DISTRIB}" MATCHES "Ubuntu9.10")
- set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.38.0, libboost-program-options1.38.0, libboost-regex1.38.0, libboost-filesystem1.38.0, libboost-date-time1.38.0, libavcodec52, libavformat52, libswscale0, libmagick++1, libxml++2.6-2, libglew1.5")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.38.0, libboost-program-options1.38.0, libboost-regex1.38.0, libboost-filesystem1.38.0, libboost-date-time1.38.0, libavcodec52, libavformat52, libswscale0, libmagick++2, libxml++2.6-2, libglew1.5")
endif("${LSB_DISTRIB}" MATCHES "Ubuntu9.10")
if("${LSB_DISTRIB}" MATCHES "Debian5.*")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-dev, libavcodec51, libavformat52, libswscale0, libmagick++10, libxml++2.6-2, libglew1.5")
|
|
From: Tapio V. <aa...@us...> - 2009-11-28 12:05:45
|
Module: performous
Branch: master
Commit: d542e2ec073acde323985b1f7259a644be8df1d4
Author: Tapio Vierros <tap...@gm...>
Date: Sat Nov 28 14:04:58 2009 +0200
Make 3d tappable note state a bit clearer.
---
game/guitargraph.cc | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 1499eab..9f19f97 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -517,12 +517,11 @@ void GuitarGraph::drawNote(int fret, glutil::Color c, float tBeg, float tEnd, fl
}
}
if (tappable) {
- float l = std::max(0.5, m_correctness.get());
+ float l = std::max(0.3, m_correctness.get());
if (m_use3d) {
glColor3f(l, l, l);
m_tappableObj.draw(x, yBeg, 0.0f);
} else {
- l = l * 2.0 - 1.0; // Full black to white range to overcome ambient lighting or something
glColor3f(l, l, l);
m_tap.dimensions.center(yBeg).middle(x);
m_tap.draw();
|