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: Johnny O. <js...@us...> - 2010-10-28 20:46:21
|
Module: performous
Branch: opengl2
Commit: b843f79c379c3b2278442c2b2c1bbc80a9020946
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 10:54:52 2010 +0300
CPack dependencies for Ubuntu 10.04 and 10.10.
---
cmake/performous-packaging.cmake | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/cmake/performous-packaging.cmake b/cmake/performous-packaging.cmake
index b712693..5d5f8dc 100644
--- a/cmake/performous-packaging.cmake
+++ b/cmake/performous-packaging.cmake
@@ -42,7 +42,7 @@ if(UNIX)
set(CPACK_GENERATOR "DEB")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "extra")
set(CPACK_DEBIAN_PACKAGE_SECTION "universe/games")
- set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "ultrastar-songs, ultrastar-songs-restricted, msttcorefonts")
+ set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "ultrastar-songs, ultrastar-songs-restricted, ttf-mscorefonts-installer")
# We need to alter the architecture names as per distro rules
if("${CPACK_PACKAGE_ARCHITECTURE}" MATCHES "i[3-6]86")
set(CPACK_PACKAGE_ARCHITECTURE i386)
@@ -50,16 +50,31 @@ if(UNIX)
if("${CPACK_PACKAGE_ARCHITECTURE}" MATCHES "x86_64")
set(CPACK_PACKAGE_ARCHITECTURE amd64)
endif("${CPACK_PACKAGE_ARCHITECTURE}" MATCHES "x86_64")
+
# Set the dependencies based on the distro version
+
+ # Ubuntu
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++2, libxml++2.6-2, libglew1.5, libpng12-0, libjpeg62")
endif("${LSB_DISTRIB}" MATCHES "Ubuntu9.10")
+
+ if("${LSB_DISTRIB}" MATCHES "Ubuntu10.04")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.40.0, libboost-program-options1.40.0, libboost-regex1.40.0, libboost-filesystem1.40.0, libboost-date-time1.40.0, libavcodec52|libavcodec-extra-52, libavformat52|libavformat-extra-52, libswscale0, libmagick++2, libxml++2.6-2, libglew1.5, libpng12-0, libjpeg62, libportmidi0, libcv4, libhighgui4")
+ endif("${LSB_DISTRIB}" MATCHES "Ubuntu10.04")
+
+ if("${LSB_DISTRIB}" MATCHES "Ubuntu10.10")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.42.0, libboost-program-options1.42.0, libboost-regex1.42.0, libboost-filesystem1.42.0, libboost-date-time1.42.0, libavcodec52|libavcodec-extra-52, libavformat52|libavformat-extra-52, libswscale0, libmagick++2, libxml++2.6-2, libglew1.5, libpng12-0, libjpeg62, libportmidi0, libcv2.1, libhighgui2.1")
+ endif("${LSB_DISTRIB}" MATCHES "Ubuntu10.10")
+
+ # Debian
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")
endif("${LSB_DISTRIB}" MATCHES "Debian5.*")
+
if("${LSB_DISTRIB}" MATCHES "Debiantesting")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-dev, libavcodec52, libavformat52, libswscale0, libmagick++3, libxml++2.6-2, libglew1.5")
endif("${LSB_DISTRIB}" MATCHES "Debiantesting")
+
if(NOT CPACK_DEBIAN_PACKAGE_DEPENDS)
message("WARNING: ${LSB_DISTRIB} not supported yet.\nPlease set deps in cmake/performous-packaging.cmake before packaging.")
endif(NOT CPACK_DEBIAN_PACKAGE_DEPENDS)
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:18
|
Module: performous
Branch: opengl2
Commit: 33b3ba7f4a751c52554b3288f7cbb6e9e86d498e
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Oct 24 09:35:18 2010 +0200
Fixed git ebuild and added 0.6.0 ebuild
---
.../performous/performous-0.6.0.ebuild | 111 ++++++++++++++++++++
.../games-arcade/performous/performous-9999.ebuild | 2 +
2 files changed, 113 insertions(+), 0 deletions(-)
diff --git a/portage-overlay/games-arcade/performous/performous-0.6.0.ebuild b/portage-overlay/games-arcade/performous/performous-0.6.0.ebuild
new file mode 100644
index 0000000..7eb426c
--- /dev/null
+++ b/portage-overlay/games-arcade/performous/performous-0.6.0.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /cvsroot/ultrastar-ng/UltraStar-ng/portage-overlay/games-arcade/performous/performous-9999.ebuild,v 1.10 2007/09/29 13:04:19 yoda-jm Exp $
+
+[[ ${PV} = 9999 ]] && GIT="git"
+EAPI=2
+
+inherit cmake-utils ${GIT} games
+
+SONGS_PN=ultrastar-songs
+
+DESCRIPTION="Party game similar to Singstar, RockBand, Guitar Hero and Stepmania"
+HOMEPAGE="http://performous.org"
+SRC_URI="songs? (
+ mirror://sourceforge/${PN}/${SONGS_PN}-jc-1.zip
+ mirror://sourceforge/${PN}/${SONGS_PN}-libre-3.zip
+ mirror://sourceforge/${PN}/${SONGS_PN}-restricted-3.zip
+ mirror://sourceforge/${PN}/${SONGS_PN}-shearer-1.zip
+ )"
+
+if [ "$PV" != "9999" ]; then
+ MY_PN=Performous
+ MY_P=${MY_PN}-${PV}-Source
+ SRC_URI=" mirror://sourceforge/${PN}/${MY_P}.tar.bz2
+ $SRC_URI"
+else
+ EGIT_REPO_URI="git://performous.git.sourceforge.net/gitroot/performous/performous"
+ EGIT_BRANCH="master"
+fi
+
+LICENSE="GPL-2
+ songs? (
+ CCPL-Attribution-ShareAlike-NonCommercial-2.5
+ CCPL-Attribution-NonCommercial-NoDerivs-2.5
+ )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="debug midi songs tools webcam"
+
+RDEPEND="gnome-base/librsvg
+ >=dev-libs/boost-1.39.0
+ x11-libs/pango
+ dev-cpp/libxmlpp
+ media-libs/glew
+ media-libs/libsdl[joystick,opengl]
+ media-libs/libpng
+ media-libs/jpeg
+ tools? ( media-gfx/imagemagick[png] )
+ webcam? ( media-libs/opencv[v4l] )
+ >=media-video/ffmpeg-0.4.9_p20070616-r20
+ media-libs/portaudio
+ sys-apps/help2man
+ !games-arcade/ultrastar-ng"
+# Waiting for portmidi to enter portage (#90614)
+#RDEPEND="${RDEPEND}
+# midi? ( media-libs/portmidi )"
+DEPEND="${RDEPEND}
+ >=dev-util/cmake-2.6.0"
+
+S=${WORKDIR}/${MY_P}
+
+src_unpack() {
+ if [ "${PV}" != "9999" ]; then
+ unpack "${MY_P}.tar.bz2"
+ else
+ git_src_unpack
+ fi
+ cd "${S}"
+ if use songs; then
+ unpack "${SONGS_PN}-jc-1.zip" "${SONGS_PN}-libre-3.zip" "${SONGS_PN}-restricted-3.zip" "${SONGS_PN}-shearer-1.zip"
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-gentoopaths.patch
+}
+
+src_configure() {
+ local mycmakeargs="
+ $(cmake-utils_use_enable tools TOOLS)
+ $(cmake-utils_use_no webcam WEBCAM)
+ -DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}
+ -DGENTOO_DATA_DIR=${GAMES_DATADIR}/${PN}
+ -DLOCALE_DIR=/usr/share
+ -DCMAKE_BUILD_TYPE=Release"
+# local mycmakeargs="
+# $(cmake-utils_use_no midi MIDI)
+# ${mycmakeargs}"
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+}
+
+src_install() {
+ DOCS="docs/*.txt" cmake-utils_src_install
+ mv -f "${D}/${GAMES_PREFIX}/share/man" "${D}/usr/share/"
+ mkdir -p "${D}/${GAMES_DATADIR}/${PN}"
+ mv -f "${D}/${GAMES_PREFIX}/share/games/performous" "${D}/${GAMES_DATADIR}/"
+
+ if use songs; then
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r "${S}/songs" || die "doins songs failed"
+ fi
+ doicon "${S}/data/${PN}.xpm"
+ domenu "${S}/data/${PN}.desktop"
+ prepgamesdirs
+}
diff --git a/portage-overlay/games-arcade/performous/performous-9999.ebuild b/portage-overlay/games-arcade/performous/performous-9999.ebuild
index bb9baa1..7eb426c 100644
--- a/portage-overlay/games-arcade/performous/performous-9999.ebuild
+++ b/portage-overlay/games-arcade/performous/performous-9999.ebuild
@@ -19,6 +19,8 @@ SRC_URI="songs? (
)"
if [ "$PV" != "9999" ]; then
+ MY_PN=Performous
+ MY_P=${MY_PN}-${PV}-Source
SRC_URI=" mirror://sourceforge/${PN}/${MY_P}.tar.bz2
$SRC_URI"
else
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:16
|
Module: performous
Branch: opengl2
Commit: 6f714bb9f1df970e56429454c7d38459f1f8e01e
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 01:21:33 2010 +0300
Update TODO (regarding config menu).
---
docs/TODO.txt | 8 +-------
1 files changed, 1 insertions(+), 7 deletions(-)
diff --git a/docs/TODO.txt b/docs/TODO.txt
index 2eb7331..aca4375 100644
--- a/docs/TODO.txt
+++ b/docs/TODO.txt
@@ -22,6 +22,7 @@ Big features:
Features:
+- Paths config GUI
- Latency calibration
* Audio roundtrip by analyzing the sound captured by the microphone
* Controller/audio latency by playing blindly (listening to the beat only)
@@ -44,13 +45,6 @@ Text rendering bugs:
- Lyric hilighted should be rendered in front of the others
-New config menu:
-
-- Multiple items visible at once
-- Modifying strings and stringlist items
-- Predefined options from config schema and libda device enumeration
-
-
SS Ripper:
- Compress into Vorbis Ogg and H.264 MKV
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:14
|
Module: performous
Branch: opengl2
Commit: 1446553a71dd9d7a2124abe6f9bcd078b7cf38d3
Author: Tapio Vierros <tap...@gm...>
Date: Sat Oct 23 19:21:45 2010 +0300
Fix a wrong image used with a menu item.
---
game/screen_intro.cc | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/game/screen_intro.cc b/game/screen_intro.cc
index 1da49db..84e9a7a 100644
--- a/game/screen_intro.cc
+++ b/game/screen_intro.cc
@@ -153,7 +153,6 @@ void ScreenIntro::populateMenu() {
configmain.push_back(MenuOption(_("Graphics"), _("Configure rendering and video settings"), gfxmenu, "intro_configure.svg"));
configmain.push_back(MenuOption(_("Game"), _("Gameplay related options"), gamemenu, "intro_configure.svg"));
configmain.push_back(MenuOption(_("Paths"), _("Setup song and data paths"), "Paths", "intro_configure.svg"));
- configmain.back().image.reset(new Surface(getThemePath("intro_quit.svg")));
// Add to root menu
m_menu.add(MenuOption(_("Configure"), _("Configure audio and game options"), configmain, "intro_configure.svg"));
}
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:11
|
Module: performous
Branch: opengl2
Commit: e5f84f909950df964ac1a492b018960effe17f91
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Oct 23 18:11:51 2010 +0200
Further audio init/hang tuning.
---
game/libda/portaudio.hpp | 9 +--------
game/main.cc | 9 ++++-----
2 files changed, 5 insertions(+), 13 deletions(-)
diff --git a/game/libda/portaudio.hpp b/game/libda/portaudio.hpp
index fb8f9d2..6172e69 100644
--- a/game/libda/portaudio.hpp
+++ b/game/libda/portaudio.hpp
@@ -70,14 +70,7 @@ namespace portaudio {
struct Init {
Init() { PORTAUDIO_CHECKED(Pa_Initialize, ()); }
- ~Init() {
- // Give audio a little time to shutdown but then just quit
- boost::thread audiokiller(Pa_Terminate);
- if (!audiokiller.timed_join(boost::posix_time::milliseconds(5000))) {
- std::cout << "PortAudio BUG: Pa_Terminate hung for more than five seconds. Exiting program." << std::endl;
- exit(1);
- }
- }
+ ~Init() { Pa_Terminate(); }
};
struct Params {
diff --git a/game/main.cc b/game/main.cc
index 8596583..1ce92ff 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -115,18 +115,17 @@ static void checkEvents_SDL(ScreenManager& sm) {
}
void mainLoop(std::string const& songlist) {
- Window window(config["graphic/window_width"].i(), config["graphic/window_height"].i(), config["graphic/fullscreen"].b());
Audio audio;
{ // Print the devices
portaudio::AudioDevices ads;
std::clog << "audio/info:\n" << ads.dump();
}
+ Window window(config["graphic/window_width"].i(), config["graphic/window_height"].i(), config["graphic/fullscreen"].b());
+ Backgrounds backgrounds;
+ Database database(getConfigDir() / "database.xml");
+ Songs songs(database, songlist);
ScreenManager sm(window);
try {
- sm.loading(_("Launching background loaders..."), 0.4);
- Backgrounds backgrounds;
- Database database(getConfigDir() / "database.xml");
- Songs songs(database, songlist);
boost::scoped_ptr<input::MidiDrums> midiDrums;
// TODO: Proper error handling...
try { midiDrums.reset(new input::MidiDrums); } catch (std::runtime_error&) {}
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:09
|
Module: performous
Branch: opengl2
Commit: 5be9ea201fd5cac029bec1ed50fd47e57ef24963
Author: Tapio Vierros <tap...@gm...>
Date: Sat Oct 23 19:09:40 2010 +0300
Tweak audiokiller delays to get message in screen_audiodevices.
---
game/libda/portaudio.hpp | 8 ++++----
game/screen_audiodevices.cc | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/game/libda/portaudio.hpp b/game/libda/portaudio.hpp
index b4d512d..fb8f9d2 100644
--- a/game/libda/portaudio.hpp
+++ b/game/libda/portaudio.hpp
@@ -73,8 +73,8 @@ namespace portaudio {
~Init() {
// Give audio a little time to shutdown but then just quit
boost::thread audiokiller(Pa_Terminate);
- if (!audiokiller.timed_join(boost::posix_time::milliseconds(2000))) {
- std::cout << "PortAudio BUG: Pa_Terminate hung for more than two seconds. Exiting program." << std::endl;
+ if (!audiokiller.timed_join(boost::posix_time::milliseconds(5000))) {
+ std::cout << "PortAudio BUG: Pa_Terminate hung for more than five seconds. Exiting program." << std::endl;
exit(1);
}
}
@@ -125,8 +125,8 @@ namespace portaudio {
~Stream() {
// Give audio a little time to shutdown but then just quit
boost::thread audiokiller(Pa_CloseStream, m_handle);
- if (!audiokiller.timed_join(boost::posix_time::milliseconds(2000))) {
- std::cout << "PortAudio BUG: Pa_CloseStream hung for more than two seconds. Exiting program." << std::endl;
+ if (!audiokiller.timed_join(boost::posix_time::milliseconds(5000))) {
+ std::cout << "PortAudio BUG: Pa_CloseStream hung for more than five seconds. Exiting program." << std::endl;
exit(1);
}
}
diff --git a/game/screen_audiodevices.cc b/game/screen_audiodevices.cc
index 7208117..4bf0afd 100644
--- a/game/screen_audiodevices.cc
+++ b/game/screen_audiodevices.cc
@@ -177,7 +177,7 @@ bool ScreenAudioDevices::save(bool skip_ui_config) {
size_t unassigned_id = m_devs.size();
// Give audio a little time to shutdown but then just quit
boost::thread audiokiller(boost::bind(&Audio::close, boost::ref(m_audio)));
- if (!audiokiller.timed_join(boost::posix_time::milliseconds(4000)))
+ if (!audiokiller.timed_join(boost::posix_time::milliseconds(2500)))
ScreenManager::getSingletonPtr()->fatalError("Audio hung for some reason.\nPlease restart Performous.");
m_audio.restart(); // Reload audio to take the new settings into use
m_audio.playMusic(getThemePath("menu.ogg"), true); // Start music again
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:06
|
Module: performous
Branch: opengl2
Commit: 942715a09afc515d89f86f46c25a1f938fc14fe7
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Oct 23 17:31:02 2010 +0200
Fix engine deinit position in ScreenSing::exit. We really should get rid of enter/exit functions to avoid these bugs.
---
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 7cba35c..a0c634a 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -238,12 +238,12 @@ void ScreenSing::danceLayout(double time) {
}
void ScreenSing::exit() {
+ m_engine.reset();
m_score_window.reset();
m_menu.clear();
m_instruments.clear();
m_dancers.clear();
m_layout_singer.reset();
- m_engine.reset();
m_help.reset();
m_pause_icon.reset();
m_cam.reset();
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:01
|
Module: performous
Branch: opengl2
Commit: 9bb429e19e8e7f4b5680e90b91aa7ac7083a0b16
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Oct 23 17:29:54 2010 +0200
Remove audiokiller from main.cc. Fix Audio/ScreenManager init order (SM needs to be destroyed before audio).
---
game/main.cc | 9 +--------
1 files changed, 1 insertions(+), 8 deletions(-)
diff --git a/game/main.cc b/game/main.cc
index a694de5..8596583 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -116,13 +116,12 @@ static void checkEvents_SDL(ScreenManager& sm) {
void mainLoop(std::string const& songlist) {
Window window(config["graphic/window_width"].i(), config["graphic/window_height"].i(), config["graphic/fullscreen"].b());
- ScreenManager sm(window);
- sm.loading(_("Audio..."), 0.1);
Audio audio;
{ // Print the devices
portaudio::AudioDevices ads;
std::clog << "audio/info:\n" << ads.dump();
}
+ ScreenManager sm(window);
try {
sm.loading(_("Launching background loaders..."), 0.4);
Backgrounds backgrounds;
@@ -214,12 +213,6 @@ void mainLoop(std::string const& songlist) {
} catch (QuitNow&) {
std::cout << "Terminated." << std::endl;
}
- // Give audio a little time to shutdown but then just quit
- boost::thread audiokiller(boost::bind(&Audio::close, boost::ref(audio)));
- if (!audiokiller.timed_join(boost::posix_time::milliseconds(2000))) {
- std::cout << "Audio hung." << std::endl;
- exit(EXIT_SUCCESS);
- }
}
/// Simple test utility to make mapping of joystick buttons/axes easier
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:45:58
|
Module: performous
Branch: opengl2
Commit: 92d9832b10425a7914d764fe2fd92842ad653864
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Oct 23 17:27:33 2010 +0200
Add hang protection/handling in portaudio.hpp.
---
game/libda/portaudio.hpp | 19 +++++++++++++++++--
1 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/game/libda/portaudio.hpp b/game/libda/portaudio.hpp
index a298173..b4d512d 100644
--- a/game/libda/portaudio.hpp
+++ b/game/libda/portaudio.hpp
@@ -4,6 +4,7 @@
* @file portaudio.hpp OOP / RAII wrappers & utilities for PortAudio library.
*/
+#include <boost/thread.hpp>
#include <portaudio.h>
#include <cstdlib>
#include <stdexcept>
@@ -69,7 +70,14 @@ namespace portaudio {
struct Init {
Init() { PORTAUDIO_CHECKED(Pa_Initialize, ()); }
- ~Init() { std::cout << "Pa_Terminate..."; std::cout.flush(); Pa_Terminate(); std::cout << "ok" << std::endl; }
+ ~Init() {
+ // Give audio a little time to shutdown but then just quit
+ boost::thread audiokiller(Pa_Terminate);
+ if (!audiokiller.timed_join(boost::posix_time::milliseconds(2000))) {
+ std::cout << "PortAudio BUG: Pa_Terminate hung for more than two seconds. Exiting program." << std::endl;
+ exit(1);
+ }
+ }
};
struct Params {
@@ -114,7 +122,14 @@ namespace portaudio {
{
PORTAUDIO_CHECKED(Pa_OpenStream, (&m_handle, input, output, sampleRate, framesPerBuffer, flags, functorCallback<Functor>, &functor));
}
- ~Stream() { Pa_CloseStream(m_handle); }
+ ~Stream() {
+ // Give audio a little time to shutdown but then just quit
+ boost::thread audiokiller(Pa_CloseStream, m_handle);
+ if (!audiokiller.timed_join(boost::posix_time::milliseconds(2000))) {
+ std::cout << "PortAudio BUG: Pa_CloseStream hung for more than two seconds. Exiting program." << std::endl;
+ exit(1);
+ }
+ }
operator PaStream*() { return m_handle; }
};
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:45:55
|
Module: performous Branch: opengl2 Commit: 18791fa3d379a17161ccaa8f96e4af4e6e29cc3c Author: Lasse Karkkainen <tro...@tr...> Date: Sat Oct 23 14:51:21 2010 +0200 Update URL in Compiling.txt to point to wiki --- docs/Compiling.txt | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/docs/Compiling.txt b/docs/Compiling.txt index 19cecdc..f3e8bb0 100644 --- a/docs/Compiling.txt +++ b/docs/Compiling.txt @@ -39,7 +39,9 @@ Dependencies: - OpenCV (optional) for webcam support - Please refer to http://performous.org/develop.html for packages to install. + http://wiki.performous.org/index.php/Building_and_installing_from_source + for package names on various systems (or just performous.org if the above no + longer works). You can find songs online by Google or at your favorite Torrent sites. We |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:45:53
|
Module: performous
Branch: opengl2
Commit: c7b3fc0f93604f3a3eea98b9219e9298cfe153b2
Author: Tapio Vierros <tap...@gm...>
Date: Sat Oct 23 18:32:05 2010 +0300
Fix neck coloring.
---
game/guitargraph.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 16d89d0..e45da6b 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -822,7 +822,7 @@ void GuitarGraph::draw(double time) {
texCoord -= texCoordStep * (tEnd - future) / (tEnd - tBeg);
tEnd = future;
}
- glutil::Color(colorize(Color(1.0f, 1.0f, 1.0f, time2a(tEnd)), time + tBeg));
+ glutil::Color c(colorize(Color(1.0f, 1.0f, 1.0f, time2a(tEnd)), time + tBeg));
glNormal3f(0.0f, 1.0f, 0.0f);
glTexCoord2f(0.0f, texCoord); glVertex2f(-w, time2y(tEnd));
glNormal3f(0.0f, 1.0f, 0.0f);
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:45:50
|
Module: performous
Branch: opengl2
Commit: 108014f409bd149d310f0e743c3bc6d28c275c4c
Author: Tapio Vierros <tap...@gm...>
Date: Sat Oct 23 17:32:12 2010 +0300
Fix fatal exception from vocal track chooser code.
---
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 59f800c..7cba35c 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -304,7 +304,7 @@ void ScreenSing::manageEvent(SDL_Event event) {
m_menu.action();
if (!m_menu.isOpen() && m_audio.isPaused()) m_audio.togglePause();
// Handle updates
- if (m_selectedTrack != m_vocalTrackOpts.so()) {
+ if (m_vocalTrackOpts.ol().size() && m_selectedTrack != m_vocalTrackOpts.so()) {
m_selectedTrack = m_vocalTrackOpts.so();
m_selectedTrackLocalized = _(m_selectedTrack.c_str());
}
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:45:48
|
Module: performous Branch: opengl2 Commit: 7c001d300069e27b5d9089fa69fc9e4b91d2e8ff Author: Fredrik Klasson <sci...@gm...> Date: Sat Oct 23 16:30:10 2010 +0200 [ ] Updating swedish translation --- lang/sv.po | 163 +++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 100 insertions(+), 63 deletions(-) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:45:45
|
Module: performous
Branch: opengl2
Commit: 7064185e88d4894a0a8da74eac0aefabaead4828
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Oct 23 16:17:45 2010 +0200
Fixed finilizing song not done for all vocal tracks
---
game/songparser.cc | 27 +++++++++++++++------------
1 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/game/songparser.cc b/game/songparser.cc
index 3728d8e..8a20d98 100644
--- a/game/songparser.cc
+++ b/game/songparser.cc
@@ -116,20 +116,23 @@ SongParser::SongParser(Song& s):
void SongParser::finalize() {
- // Adjust negative notes
- VocalTrack& vocal = m_song.getVocalTrack();
- if (vocal.noteMin <= 0) {
- unsigned int shift = (1 - vocal.noteMin / 12) * 12;
- vocal.noteMin += shift;
- vocal.noteMax += shift;
- for (Notes::iterator it = vocal.notes.begin(); it != vocal.notes.end(); ++it) {
- it->note += shift;
- it->notePrev += shift;
+ std::vector<std::string> tracks = m_song.getVocalTrackNames();
+ for(std::vector<std::string>::const_iterator it = tracks.begin() ; it != tracks.end() ; ++it) {
+ // Adjust negative notes
+ VocalTrack& vocal = m_song.getVocalTrack(*it);
+ if (vocal.noteMin <= 0) {
+ unsigned int shift = (1 - vocal.noteMin / 12) * 12;
+ vocal.noteMin += shift;
+ vocal.noteMax += shift;
+ for (Notes::iterator it = vocal.notes.begin(); it != vocal.notes.end(); ++it) {
+ it->note += shift;
+ it->notePrev += shift;
+ }
}
+ // Set begin/end times
+ if (!vocal.notes.empty()) vocal.beginTime = vocal.notes.front().begin, vocal.endTime = vocal.notes.back().end;
+ vocal.m_scoreFactor = 1.0 / m_maxScore;
}
- // Set begin/end times
- if (!vocal.notes.empty()) vocal.beginTime = vocal.notes.front().begin, vocal.endTime = vocal.notes.back().end;
- vocal.m_scoreFactor = 1.0 / m_maxScore;
if (m_tsPerBeat) {
// Add song beat markers
for (unsigned ts = 0; ts < m_tsEnd; ts += m_tsPerBeat) m_song.beats.push_back(tsTime(ts));
|
|
From: Tapio V. <aa...@us...> - 2010-10-28 15:15:49
|
Module: performous
Branch: master
Commit: 65c4e3a911817f9b76fa2d3b1f0a39cbce54f81c
Author: Tapio Vierros <tap...@gm...>
Date: Thu Oct 28 18:14:38 2010 +0300
Use Cachemap for join and pause menu option texts.
---
game/instrumentgraph.cc | 51 ++++++++++++++++++++++++++++++----------------
game/screen_sing.cc | 10 ++++----
game/theme.cc | 7 +++++-
game/theme.hh | 6 +++-
4 files changed, 48 insertions(+), 26 deletions(-)
diff --git a/game/instrumentgraph.cc b/game/instrumentgraph.cc
index 8044c2e..c657636 100644
--- a/game/instrumentgraph.cc
+++ b/game/instrumentgraph.cc
@@ -83,7 +83,7 @@ void InstrumentGraph::drawMenu() {
// We need to multiply offset by inverse scale factor to keep it always constant
// All these vars are ultimately affected by the scaling matrix
const double offsetX = 0.5f * (dimensions.x1() + dimensions.x2()) / s;
- const float txth = th.option.h();
+ const float txth = th.option_selected.h();
const float button_margin = m_arrow_up.dimensions.w()
* (m_input.isKeyboard() && getGraphType() != input::DANCEPAD ? 2.0f : 1.0f);
const float step = txth * 0.7f;
@@ -98,9 +98,14 @@ void InstrumentGraph::drawMenu() {
w = 0;
unsigned i = 0;
for (MenuOptions::const_iterator it = m_menu.begin(); it != m_menu.end(); ++it, ++i) {
- SvgTxtTheme* txt = &th.option;
- // Selected item?
- if (cur == it) {
+ std::string menutext = it->getName();
+ SvgTxtTheme* txt = &th.option_selected; // Default: font for selected menu item
+
+ if (cur != it) { // Unselected menuoption
+ txt = &(th.getCachedOption(menutext));
+
+ // Selected item
+ } else {
// Left/right Icons
if (getGraphType() == input::DRUMS) {
// Drum colors are mirrored
@@ -129,27 +134,37 @@ void InstrumentGraph::drawMenu() {
if (m_input.isKeyboard() && getGraphType() != input::DANCEPAD) {
float leftx = x - button_margin*0.75f;
float rightx = xx + button_margin*0.25f;
- txt->dimensions.left(leftx).center(y);
- txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "Z" : "1") : "U");
- txt->dimensions.right(rightx).center(y);
- txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "X" : "2") : "P");
+ {
+ std::string hintletter = (getGraphType() == input::GUITAR ? (m_leftymode.b() ? "Z" : "1") : "U");
+ SvgTxtTheme& hintfont = th.getCachedOption(hintletter);
+ hintfont.dimensions.left(leftx).center(y);
+ hintfont.draw(hintletter);
+ }{
+ std::string hintletter = (getGraphType() == input::GUITAR ? (m_leftymode.b() ? "X" : "2") : "P");
+ SvgTxtTheme& hintfont = th.getCachedOption(hintletter);
+ hintfont.dimensions.right(rightx).center(y);
+ hintfont.draw(hintletter);
+ }
// Only drums has up/down
if (getGraphType() == input::DRUMS) {
- txt->dimensions.left(leftx).center(y - step);
- if (i > 0) txt->draw("I"); // Up
- txt->dimensions.left(leftx).center(y + step);
- if (m_menu.getOptions().size()-1) txt->draw("O"); // Down
+ if (i > 0) { // Up
+ SvgTxtTheme& hintfont = th.getCachedOption("I");
+ hintfont.dimensions.left(leftx).center(y - step);
+ hintfont.draw("I");
+ }
+ if (m_menu.getOptions().size()-1) { // Down
+ SvgTxtTheme& hintfont = th.getCachedOption("O");
+ hintfont.dimensions.left(leftx).center(y + step);
+ hintfont.draw("O");
+ }
}
}
- //th.back_h.dimensions.middle(0.05 + offsetX).center(y);
- //th.back_h.draw();
- // Switch to the "selected" font
- txt = &th.option_selected;
}
+ // Finally we are at the actual menu item text drawing
txt->dimensions.middle(x).center(y);
- txt->draw(it->getName(), it->isActive() ? 1.0f : 0.5f);
+ txt->draw(menutext, it->isActive() ? 1.0f : 0.5f);
w = std::max(w, txt->w() + 2 * step + button_margin * 2); // Calculate the widest entry
- y += step;
+ y += step; // Move draw position down for the next option
}
// Draw comment text
if (cur->getComment() != "") {
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 6b8c35c..525f035 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -532,7 +532,7 @@ void ScreenSing::drawMenu() {
ThemeInstrumentMenu& th = *m_menuTheme;
MenuOptions::const_iterator cur = static_cast<MenuOptions::const_iterator>(&m_menu.current());
double w = m_menu.dimensions.w();
- const float txth = th.option.h();
+ const float txth = th.option_selected.h();
const float step = txth * 0.85f;
const float h = m_menu.getOptions().size() * step + step;
float y = -h * .5f + step;
@@ -543,10 +543,10 @@ void ScreenSing::drawMenu() {
// Loop through menu items
w = 0;
for (MenuOptions::const_iterator it = m_menu.begin(); it != m_menu.end(); ++it) {
- SvgTxtTheme* txt = &th.option;
- if (cur == it) {
- txt = &th.option_selected;
- }
+ // Pick the font object
+ SvgTxtTheme* txt = &th.option_selected;
+ if (cur != it) txt = &(th.getCachedOption(it->getName()));
+ // Set dimensions and draw
txt->dimensions.middle(x).center(y);
txt->draw(it->getName());
w = std::max(w, txt->w() + 2 * step); // Calculate the widest entry
diff --git a/game/theme.cc b/game/theme.cc
index ef02ae1..dbaab57 100644
--- a/game/theme.cc
+++ b/game/theme.cc
@@ -60,7 +60,7 @@ ThemeIntro::ThemeIntro():
ThemeInstrumentMenu::ThemeInstrumentMenu():
Theme(getThemePath("instrumentmenu_bg.svg")),
back_h(getThemePath("instrumentmenu_back_highlight.svg")),
- option(getThemePath("instrumentmenu_option.svg"), config["graphic/text_lod"].f()),
+ options(30),
option_selected(getThemePath("instrumentmenu_option_selected.svg"), config["graphic/text_lod"].f()),
comment(getThemePath("instrumentmenu_comment.svg"), config["graphic/text_lod"].f())
//comment_bg(getThemePath("menu_comment_bg.svg"))
@@ -68,3 +68,8 @@ ThemeInstrumentMenu::ThemeInstrumentMenu():
back_h.dimensions.fixedHeight(0.08f);
comment.setAlign(SvgTxtTheme::CENTER);
}
+
+SvgTxtTheme& ThemeInstrumentMenu::getCachedOption(const std::string& text) {
+ if (options.contains(text)) return options[text];
+ return *options.insert(text, new SvgTxtTheme(getThemePath("instrumentmenu_option.svg"), config["graphic/text_lod"].f()))->second;
+}
diff --git a/game/theme.hh b/game/theme.hh
index 285b023..8b77f32 100644
--- a/game/theme.hh
+++ b/game/theme.hh
@@ -97,12 +97,14 @@ struct ThemeInstrumentMenu: Theme {
ThemeInstrumentMenu();
/// back highlight for selected option
Surface back_h;
- /// menu option text
- SvgTxtTheme option;
+ /// menu option texts
+ Cachemap<std::string, SvgTxtTheme> options;
/// menu selected option text
SvgTxtTheme option_selected;
/// menu comment text
SvgTxtTheme comment;
/// menu comment background
//Surface comment_bg;
+ /// get a cached option test
+ SvgTxtTheme& getCachedOption(const std::string& text);
};
|
|
From: Yoda-JM <yo...@us...> - 2010-10-28 09:15:17
|
Module: performous
Branch: master
Commit: 9a007703791d23c4ce5fd74d26671f13424a0a06
Author: Vincent Le Ligeour <yo...@us...>
Date: Thu Oct 28 11:14:54 2010 +0200
Updated TODO
---
docs/TODO.txt | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/docs/TODO.txt b/docs/TODO.txt
index aca4375..a04a9e1 100644
--- a/docs/TODO.txt
+++ b/docs/TODO.txt
@@ -29,6 +29,7 @@ Features:
* Audio/video by playing visually without audio? (needs controller/audio calibrated)
- Allow playing a single song given as commandline argument (no menus)
- Kiosk/arcade mode (disable exiting game and limit other functions)
+- Expert+ track, drum pro mode (using tom switch in midi)
Dance features:
@@ -54,7 +55,3 @@ SS Ripper:
Bugs:
- Segfault when browsing songs in song browser while loading (segfaults before loading finishes), quite rare
-- sample are not always played when a user fail (for example drums). it could
- be nice that playing a sample reset the privious fail sample (test case :
- drums rolling)
-
|
|
From: Tapio V. <aa...@us...> - 2010-10-27 17:42:30
|
Module: performous Branch: master Commit: dbe148c737e63084e324d9b56e9e529ba75aa84c Author: Tapio Vierros <tap...@gm...> Date: Wed Oct 27 20:39:41 2010 +0300 Update ppa script. --- tools/ppa/ppa.sh | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/ppa/ppa.sh b/tools/ppa/ppa.sh index 0f322e2..21d2c4d 100755 --- a/tools/ppa/ppa.sh +++ b/tools/ppa/ppa.sh @@ -16,7 +16,7 @@ export DEBEMAIL="`gpg --list-keys | grep uid | sed 's/ *(.*)//; s/>.*//; s/.*[:< # Config PKG="performous" -VERSIONCOMMON="0.5.1-9+git"`date '+%Y%m%d'`"~ppa1" +VERSIONCOMMON="0.6.0-99+git"`date '+%Y%m%d'`"~ppa1" SUITES="lucid maverick" GITURL="git://git.performous.org/gitroot/performous/performous" DESTINATIONPPA="ppa:performous-team/ppa" @@ -33,12 +33,12 @@ PPAPATCHDIR="`pwd`" $COPYCMD "$1/cmake" "$2" $COPYCMD "$1/data" "$2" $COPYCMD "$1/docs" "$2" - $COPYCMD "$1/editor" "$2" $COPYCMD "$1/game" "$2" $COPYCMD "$1/lang" "$2" $COPYCMD "$1/themes" "$2" $COPYCMD "$1/tools" "$2" rm -rf "$2"/libs # Old libs dir not used anymore + rm -rf "$2/editor" # Editor removed } cd "$TEMPDIR" @@ -81,6 +81,10 @@ for suite in $SUITES ; do patch -p0 < *.patch rm *.patch + # Hack hack + echo "// Dummy" > game/screen_configuration.hh + echo "// Dummy" > game/screen_configuration.cc + # Do changelog # Dch complains about unknown suites yes '' | dch -b -v $newversion -D $suite "Upload development version from Git $headcommit to Ubuntu PPA for $suite." |
|
From: Tapio V. <aa...@us...> - 2010-10-27 17:28:37
|
Module: performous
Branch: master
Commit: 477b575fdb0acf645f7b8eed33846f38c42e5f5e
Author: Tapio Vierros <tap...@gm...>
Date: Wed Oct 27 20:27:49 2010 +0300
Use an SVG for the device selection indicator.
---
game/screen_audiodevices.cc | 14 +++++++++-----
game/screen_audiodevices.hh | 1 +
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/game/screen_audiodevices.cc b/game/screen_audiodevices.cc
index 4bf0afd..74055e3 100644
--- a/game/screen_audiodevices.cc
+++ b/game/screen_audiodevices.cc
@@ -20,6 +20,7 @@ namespace {
}
ScreenAudioDevices::ScreenAudioDevices(std::string const& name, Audio& audio): Screen(name), m_audio(audio) {
+ m_selector.reset(new Surface(getThemePath("device_selector.svg")));
m_mic_icon.reset(new Surface(getThemePath("sing_pbox.svg")));
m_pdev_icon.reset(new Surface(getThemePath("icon_pdev.svg")));
m_colorMap["blue"] = Color(0.2, 0.5, 0.7);
@@ -96,6 +97,7 @@ void ScreenAudioDevices::draw() {
const float ystep = yoff*2 / m_devs.size();
// Device text & bg
m_theme->device_bg.dimensions.stretch(std::abs(xoff*2), m_mic_icon->dimensions.h()*0.9).middle();
+ m_selector->dimensions.stretch(m_mic_icon->dimensions.w() * 1.75, m_mic_icon->dimensions.h() * 1.75);
for (size_t i = 0; i <= m_devs.size(); ++i) {
const float y = -yoff + i*ystep;
float alpha = 1.0f;
@@ -110,14 +112,16 @@ void ScreenAudioDevices::draw() {
// Icons
for (size_t i = 0; i < m_mics.size(); ++i) {
Surface& srf = (i < m_mics.size()-1) ? *m_mic_icon : *m_pdev_icon;
- glutil::Color c(m_colorMap[m_mics[i].name]);
- srf.dimensions.middle(-xoff + xstep*0.5 + i*xstep).center(-yoff+m_mics[i].dev*ystep);
- srf.draw();
+ {
+ glutil::Color c(m_colorMap[m_mics[i].name]);
+ srf.dimensions.middle(-xoff + xstep*0.5 + i*xstep).center(-yoff+m_mics[i].dev*ystep);
+ srf.draw();
+ }
// Selection indicator
- // TODO: Some nice arrow icons would be nice, in any case, current square is temporary
if (m_selected_column == i)
- glutil::Square sq(srf.dimensions.xc(), srf.dimensions.yc(), m_mic_icon->dimensions.w()*0.75);
+ m_selector->dimensions.middle(srf.dimensions.xc()).center(srf.dimensions.yc());
}
+ m_selector->draw(); // Position already set in the loop
}
// Key help
m_theme->comment_bg.dimensions.stretch(1.0, 0.025).middle().screenBottom(-0.054);
diff --git a/game/screen_audiodevices.hh b/game/screen_audiodevices.hh
index d833252..10509d0 100644
--- a/game/screen_audiodevices.hh
+++ b/game/screen_audiodevices.hh
@@ -35,6 +35,7 @@ class ScreenAudioDevices: public Screen {
portaudio::DeviceInfos m_devs;
std::vector<Mic> m_mics;
std::map<std::string, Color> m_colorMap;
+ boost::scoped_ptr<Surface> m_selector;
boost::scoped_ptr<Surface> m_mic_icon;
boost::scoped_ptr<Surface> m_pdev_icon;
};
|
|
From: Tapio V. <aa...@us...> - 2010-10-27 15:44:10
|
Module: performous Branch: master Commit: 3875fafd26248ee7babcca1c110f23191ed778f0 Author: Tapio Vierros <tap...@gm...> Date: Wed Oct 27 18:42:32 2010 +0300 Dance arrow colors are now consistent with joinmenu icons + a tiny bugfix. --- game/instrumentgraph.cc | 3 +- themes/default/arrows.svg | 133 +++++--------------------------------- themes/default/arrows_cursor.svg | 26 ++++---- themes/default/arrows_hold.svg | 20 +++--- 4 files changed, 41 insertions(+), 141 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-10-27 15:44:08
|
Module: performous Branch: master Commit: 34e38fcb168ef3cda6b7428ad6599d991d42dd5b Author: Tapio Vierros <tap...@gm...> Date: Wed Oct 27 18:29:25 2010 +0300 Add forgotten new theme files for joinmenu arrow icons. --- themes/default/arrow_button_down.svg | 910 ++++++++++++++++++++++++++++++++ themes/default/arrow_button_left.svg | 911 +++++++++++++++++++++++++++++++++ themes/default/arrow_button_right.svg | 909 ++++++++++++++++++++++++++++++++ themes/default/arrow_button_up.svg | 910 ++++++++++++++++++++++++++++++++ 4 files changed, 3640 insertions(+), 0 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-10-27 15:44:05
|
Module: performous
Branch: master
Commit: 084fdf475cb1cab535c24d938a766dd02b7b093b
Author: Tapio Vierros <tap...@gm...>
Date: Wed Oct 27 18:28:24 2010 +0300
Joinmenu icons are now also visible with keyboard instruments.
---
game/instrumentgraph.cc | 64 ++++++++++++++++++++++++----------------------
1 files changed, 33 insertions(+), 31 deletions(-)
diff --git a/game/instrumentgraph.cc b/game/instrumentgraph.cc
index b608b08..18061eb 100644
--- a/game/instrumentgraph.cc
+++ b/game/instrumentgraph.cc
@@ -84,7 +84,7 @@ void InstrumentGraph::drawMenu() {
// All these vars are ultimately affected by the scaling matrix
const double offsetX = 0.5f * (dimensions.x1() + dimensions.x2()) / s;
const float txth = th.option.h();
- const float button_margin = m_arrow_up.dimensions.w();
+ const float button_margin = m_arrow_up.dimensions.w() * (m_input.isKeyboard() ? 2.0f : 1.0f);
const float step = txth * 0.7f;
const float h = m_menu.getOptions().size() * step + step;
float y = -h * .5f + step;
@@ -100,44 +100,46 @@ void InstrumentGraph::drawMenu() {
SvgTxtTheme* txt = &th.option;
// Selected item?
if (cur == it) {
- // Draw the key hints
- if (m_input.isKeyboard() && getGraphType() != input::DANCEPAD) { // Key letters for keyboard
- txt->dimensions.middle(x - button_margin - button_margin*0.5f).center(y);
- txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "Z" : "1") : "U");
- txt->dimensions.middle(xx + button_margin - button_margin*0.5f).center(y);
- txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "X" : "2") : "P");
- } else { // Colored icons for real instruments
- if (getGraphType() == input::DRUMS) {
- // Drum colors are mirrored
- m_arrow_left.dimensions.middle(xx + button_margin).center(y);
- m_arrow_right.dimensions.middle(x - button_margin).center(y);
- } else {
- m_arrow_left.dimensions.middle(x - button_margin).center(y);
- m_arrow_right.dimensions.middle(xx + button_margin).center(y);
- }
- m_arrow_left.draw();
- m_arrow_right.draw();
+ // Left/right Icons
+ if (getGraphType() == input::DRUMS) {
+ // Drum colors are mirrored
+ m_arrow_left.dimensions.middle(xx + button_margin).center(y);
+ m_arrow_right.dimensions.middle(x - button_margin).center(y);
+ } else {
+ m_arrow_left.dimensions.middle(x - button_margin).center(y);
+ m_arrow_right.dimensions.middle(xx + button_margin).center(y);
}
- // Up hint
- if (getGraphType() != input::GUITAR && i > 0) {
- if (m_input.isKeyboard() && getGraphType() == input::DRUMS) { // Key letters for keyboard drums
- txt->dimensions.middle(x - button_margin - button_margin*0.5f).center(y - step);
- txt->draw("I");
- } else { // Colored icons for real instruments
+ m_arrow_left.draw();
+ m_arrow_right.draw();
+
+ // Up/down icons
+ if (getGraphType() != input::GUITAR) {
+ if (i > 0) { // Up
m_arrow_up.dimensions.middle(x - button_margin).center(y - step);
m_arrow_up.draw();
}
- }
- // Drum down hint
- if (getGraphType() != input::GUITAR && i < m_menu.getOptions().size()-1) {
- if (m_input.isKeyboard() && getGraphType() == input::DRUMS) { // Key letters for keyboard drums
- txt->dimensions.middle(x - button_margin - button_margin*0.5f).center(y + step);
- txt->draw("O");
- } else { // Colored icons for real instruments
+ if (i < m_menu.getOptions().size()-1) { // Down
m_arrow_down.dimensions.middle(x - button_margin).center(y + step);
m_arrow_down.draw();
}
}
+
+ // Draw the key letters for keyboard (not for dancepad)
+ if (m_input.isKeyboard() && getGraphType() != input::DANCEPAD) {
+ float leftx = x - button_margin*0.75f;
+ float rightx = xx + button_margin*0.25f;
+ txt->dimensions.left(leftx).center(y);
+ txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "Z" : "1") : "U");
+ txt->dimensions.right(rightx).center(y);
+ txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "X" : "2") : "P");
+ // Only drums has up/down
+ if (getGraphType() == input::DRUMS) {
+ txt->dimensions.left(leftx).center(y - step);
+ if (i > 0) txt->draw("I"); // Up
+ txt->dimensions.left(leftx).center(y + step);
+ if (m_menu.getOptions().size()-1) txt->draw("O"); // Down
+ }
+ }
//th.back_h.dimensions.middle(0.05 + offsetX).center(y);
//th.back_h.draw();
// Switch to the "selected" font
|
|
From: Tapio V. <aa...@us...> - 2010-10-27 15:44:00
|
Module: performous
Branch: master
Commit: 12622095c6ff10d7d13bbe8feb72fca3a7cec1e8
Author: Tapio Vierros <tap...@gm...>
Date: Wed Oct 27 17:59:10 2010 +0300
Arrow icon hints for instrument & dance joinmenu.
---
game/instrumentgraph.cc | 71 ++++++++++++++++++++++++-----------------------
game/instrumentgraph.hh | 4 ++
2 files changed, 40 insertions(+), 35 deletions(-)
diff --git a/game/instrumentgraph.cc b/game/instrumentgraph.cc
index 607843a..b608b08 100644
--- a/game/instrumentgraph.cc
+++ b/game/instrumentgraph.cc
@@ -12,6 +12,10 @@ InstrumentGraph::InstrumentGraph(Audio& audio, Song const& song, input::DevType
m_cx(0.0, 0.2), m_width(0.5, 0.4),
m_menu(),
m_button(getThemePath("button.svg")),
+ m_arrow_up(getThemePath("arrow_button_up.svg")),
+ m_arrow_down(getThemePath("arrow_button_down.svg")),
+ m_arrow_left(getThemePath("arrow_button_left.svg")),
+ m_arrow_right(getThemePath("arrow_button_right.svg")),
m_text(getThemePath("sing_timetxt.svg"), config["graphic/text_lod"].f()),
m_selectedTrack(""),
m_selectedDifficulty(0),
@@ -33,6 +37,10 @@ InstrumentGraph::InstrumentGraph(Audio& audio, Song const& song, input::DevType
m_popupText.reset(new SvgTxtThemeSimple(getThemePath("sing_popup_text.svg"), config["graphic/text_lod"].f()));
m_menuTheme.reset(new ThemeInstrumentMenu());
for (size_t i = 0; i < max_panels; ++i) m_pressed[i] = false;
+ m_arrow_up.dimensions.stretch(0.05, 0.05);
+ m_arrow_down.dimensions.stretch(0.05, 0.05);
+ m_arrow_left.dimensions.stretch(0.05, 0.05);
+ m_arrow_right.dimensions.stretch(0.05, 0.05);
}
@@ -76,7 +84,7 @@ void InstrumentGraph::drawMenu() {
// All these vars are ultimately affected by the scaling matrix
const double offsetX = 0.5f * (dimensions.x1() + dimensions.x2()) / s;
const float txth = th.option.h();
- const float button_margin = (getGraphType() == input::DANCEPAD ? 0.0f : 0.05f);
+ const float button_margin = m_arrow_up.dimensions.w();
const float step = txth * 0.7f;
const float h = m_menu.getOptions().size() * step + step;
float y = -h * .5f + step;
@@ -88,51 +96,46 @@ void InstrumentGraph::drawMenu() {
// Loop through menu items
w = 0;
unsigned i = 0;
- m_button.dimensions.stretch(0.05, 0.05);
for (MenuOptions::const_iterator it = m_menu.begin(); it != m_menu.end(); ++it, ++i) {
SvgTxtTheme* txt = &th.option;
// Selected item?
if (cur == it) {
// Draw the key hints
- if (getGraphType() != input::DANCEPAD) {
- if (m_input.isKeyboard()) { // Key letters for keyboard
- txt->dimensions.middle(x - button_margin - m_button.dimensions.w()*0.5f).center(y);
- txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "Z" : "1") : "U");
- txt->dimensions.middle(xx + button_margin - m_button.dimensions.w()*0.5f).center(y);
- txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "X" : "2") : "P");
- } else { // Colored icons for real instruments
- {
- glutil::Color c(color(getGraphType() == input::GUITAR ? 0 : 1));
- m_button.dimensions.middle(x - button_margin).center(y);
- m_button.draw();
- }
- {
- glutil::Color c(color(getGraphType() == input::GUITAR ? 1 : 4));
- m_button.dimensions.middle(xx + button_margin);
- m_button.draw();
- }
+ if (m_input.isKeyboard() && getGraphType() != input::DANCEPAD) { // Key letters for keyboard
+ txt->dimensions.middle(x - button_margin - button_margin*0.5f).center(y);
+ txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "Z" : "1") : "U");
+ txt->dimensions.middle(xx + button_margin - button_margin*0.5f).center(y);
+ txt->draw(getGraphType() == input::GUITAR ? (m_leftymode.b() ? "X" : "2") : "P");
+ } else { // Colored icons for real instruments
+ if (getGraphType() == input::DRUMS) {
+ // Drum colors are mirrored
+ m_arrow_left.dimensions.middle(xx + button_margin).center(y);
+ m_arrow_right.dimensions.middle(x - button_margin).center(y);
+ } else {
+ m_arrow_left.dimensions.middle(x - button_margin).center(y);
+ m_arrow_right.dimensions.middle(xx + button_margin).center(y);
}
+ m_arrow_left.draw();
+ m_arrow_right.draw();
}
- // Drum up hint
- if (getGraphType() == input::DRUMS && i > 0) {
- if (m_input.isKeyboard()) { // Key letters for keyboard
- txt->dimensions.middle(x - button_margin - m_button.dimensions.w()*0.5f).center(y - step);
+ // Up hint
+ if (getGraphType() != input::GUITAR && i > 0) {
+ if (m_input.isKeyboard() && getGraphType() == input::DRUMS) { // Key letters for keyboard drums
+ txt->dimensions.middle(x - button_margin - button_margin*0.5f).center(y - step);
txt->draw("I");
} else { // Colored icons for real instruments
- glutil::Color c(color(2));
- m_button.dimensions.middle(x - button_margin).center(y - step);
- m_button.draw();
+ m_arrow_up.dimensions.middle(x - button_margin).center(y - step);
+ m_arrow_up.draw();
}
}
// Drum down hint
- if (getGraphType() == input::DRUMS && i < m_menu.getOptions().size()-1) {
- if (m_input.isKeyboard()) {
- txt->dimensions.middle(x - button_margin - m_button.dimensions.w()*0.5f).center(y + step);
+ if (getGraphType() != input::GUITAR && i < m_menu.getOptions().size()-1) {
+ if (m_input.isKeyboard() && getGraphType() == input::DRUMS) { // Key letters for keyboard drums
+ txt->dimensions.middle(x - button_margin - button_margin*0.5f).center(y + step);
txt->draw("O");
- } else {
- glutil::Color c(color(3));
- m_button.dimensions.middle(x - button_margin).center(y + step);
- m_button.draw();
+ } else { // Colored icons for real instruments
+ m_arrow_down.dimensions.middle(x - button_margin).center(y + step);
+ m_arrow_down.draw();
}
}
//th.back_h.dimensions.middle(0.05 + offsetX).center(y);
@@ -152,8 +155,6 @@ void InstrumentGraph::drawMenu() {
th.comment.dimensions.middle(offsetX).screenBottom(-0.12);
th.comment.draw(cur->getComment());
}
- // Reset button size
- m_button.dimensions.stretch(1.0, 1.0);
// Save the calculated menu dimensions
m_menu.dimensions.stretch(w, h);
}
diff --git a/game/instrumentgraph.hh b/game/instrumentgraph.hh
index 72661ab..7b6fd77 100644
--- a/game/instrumentgraph.hh
+++ b/game/instrumentgraph.hh
@@ -127,6 +127,10 @@ class InstrumentGraph {
// Media
Surface m_button;
+ Surface m_arrow_up;
+ Surface m_arrow_down;
+ Surface m_arrow_left;
+ Surface m_arrow_right;
SvgTxtTheme m_text;
boost::scoped_ptr<SvgTxtThemeSimple> m_popupText;
boost::scoped_ptr<ThemeInstrumentMenu> m_menuTheme;
|
|
From: Tapio V. <aa...@us...> - 2010-10-27 13:49:21
|
Module: performous
Branch: master
Commit: 2a243727590c39c5459e04ac74703dc61b5362de
Author: Tapio Vierros <tap...@gm...>
Date: Wed Oct 27 16:48:29 2010 +0300
Start button now closes the joinmenu.
---
game/dancegraph.cc | 4 ++--
game/guitargraph.cc | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/game/dancegraph.cc b/game/dancegraph.cc
index 7246d9b..cd35c33 100644
--- a/game/dancegraph.cc
+++ b/game/dancegraph.cc
@@ -277,8 +277,8 @@ void DanceGraph::engine() {
}
// Menu keys
if (menuOpen() && ev.type == input::Event::PRESS) {
- if (ev.nav == input::CANCEL) m_menu.close();
- else if (ev.nav == input::RIGHT || ev.nav == input::START) m_menu.action(1);
+ if (ev.nav == input::START || ev.nav == input::CANCEL) m_menu.close();
+ else if (ev.nav == input::RIGHT) m_menu.action(1);
else if (ev.nav == input::LEFT) m_menu.action(-1);
else if (ev.nav == input::UP) m_menu.move(-1);
else if (ev.nav == input::DOWN) m_menu.move(1);
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 5ec2f93..538c5ed 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -315,7 +315,7 @@ void GuitarGraph::engine() {
// Strum (strum of keyboard-as-guitar doesn't generate nav-events)
else if (ev.type == input::Event::PICK && ev.button == 0) m_menu.move(1);
else if (ev.type == input::Event::PICK && ev.button == 1) m_menu.move(-1);
- else if (ev.nav == input::START) m_menu.action();
+ else if (ev.nav == input::START || ev.nav == input::CANCEL) m_menu.close();
// See if anything changed
if (!m_drums && m_selectedTrack.so() != m_track_index->first) setTrack(m_selectedTrack.so());
else if (boost::lexical_cast<int>(m_selectedDifficulty.so()) != m_level)
|
|
From: Yoda-JM <yo...@us...> - 2010-10-27 10:03:30
|
Module: web Branch: master Commit: ebb698c737c84f7d6c0f78d7678d7f1feb74b0d9 Author: Vincent Le Ligeour <yo...@us...> Date: Wed Oct 27 12:03:13 2010 +0200 Fixed again Arch links --- htdocs-source/install.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/htdocs-source/install.txt b/htdocs-source/install.txt index 8c86cf5..d3d7d44 100644 --- a/htdocs-source/install.txt +++ b/htdocs-source/install.txt @@ -26,7 +26,7 @@ If you have problems, please have a look at the <a href="http://wiki.performous. :h3:Other distributions Debian: <a href="apt:performous">performous</a> in official repositories OpenSUSE: <a href="http://packman.links2linux.de/package/Performous/">packages</a> - ArchLinux: <a href="http://www.archlinux.org/packages/community/i686/performous/">packages</a> + ArchLinux: <a href="http://www.archlinux.org/packages/community/i686/performous/">i686</a> <a href="http://www.archlinux.org/packages/community/x86_64/performous/">x86_64</a> Mandriva 2010.0: <a href="http://ftp.blogdrake.net/mandriva/2010.0/update/i586/Performous-0.5.1-01bdk2010.0.i586.rpm">i586</a> <a href="http://ftp.blogdrake.net/mandriva/2010.0/update/x86_64/Performous-0.5.1-01bdk2010.0.x86_64.rpm">x86_64</a> If you get an error about unsatisfied dependencies on Ubuntu, you may have to enable the community-supported software source <strong>universe</strong> via <strong>System | Administration | Software Sources</strong>. Most users already have this enabled. |
|
From: Yoda-JM <yo...@us...> - 2010-10-27 09:58:28
|
Module: web Branch: master Commit: ec700b78e9f70c0bf3bce1045617cf69248cb56b Author: Vincent Le Ligeour <yo...@us...> Date: Wed Oct 27 11:57:59 2010 +0200 Fixed ArchLinux package link --- htdocs-source/install.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/htdocs-source/install.txt b/htdocs-source/install.txt index c20a2df..8c86cf5 100644 --- a/htdocs-source/install.txt +++ b/htdocs-source/install.txt @@ -26,7 +26,7 @@ If you have problems, please have a look at the <a href="http://wiki.performous. :h3:Other distributions Debian: <a href="apt:performous">performous</a> in official repositories OpenSUSE: <a href="http://packman.links2linux.de/package/Performous/">packages</a> - ArchLinux: <a href="http://aur.archlinux.org/packages.php?ID=24623">packages</a> + ArchLinux: <a href="http://www.archlinux.org/packages/community/i686/performous/">packages</a> Mandriva 2010.0: <a href="http://ftp.blogdrake.net/mandriva/2010.0/update/i586/Performous-0.5.1-01bdk2010.0.i586.rpm">i586</a> <a href="http://ftp.blogdrake.net/mandriva/2010.0/update/x86_64/Performous-0.5.1-01bdk2010.0.x86_64.rpm">x86_64</a> If you get an error about unsatisfied dependencies on Ubuntu, you may have to enable the community-supported software source <strong>universe</strong> via <strong>System | Administration | Software Sources</strong>. Most users already have this enabled. |