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: Tapio V. <aa...@us...> - 2010-07-16 16:39:59
|
Module: performous
Branch: joinmenu
Commit: 916c7353fa84d983b557bdfc52182a566b54ae21
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 20:15:48 2010 +0200
Removed compilation warning and throw error on wrong image format
---
game/image.hh | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 5ff8a37..1b59873 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -53,6 +53,10 @@ namespace {
png_set_IHDR(pngPtr, infoPtr, w, h, 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
bpp = 4;
break;
+ case pix::INT_ARGB:
+ throw std::runtime_error("Writing PNG failed (pix::INT_ARGB not supported)");
+ case pix::BGR:
+ throw std::runtime_error("Writing PNG failed (pix::BGR not supported)");
}
png_write_info(pngPtr, infoPtr);
unsigned stride = (w * bpp + 3) & ~3; // Number of bytes per row (word-aligned)
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 16:39:56
|
Module: performous
Branch: joinmenu
Commit: 05b38b758eaea4623c2d201b627d6b9076b1d6eb
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 20:04:58 2010 +0200
Appended theme name to cache directory
---
game/fs.cc | 3 +--
game/surface.cc | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index d356d8b..b52539b 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -86,10 +86,9 @@ fs::path getCacheDir() {
return getConfigDir() / "cache"; // APPDATA/performous
#else
fs::path shortDir = "performous";
- fs::path shareDir = SHARED_DATA_DIR;
char const* xdg_cache_home = getenv("XDG_CACHE_HOME");
// FIXME: Should this use "games" or not?
- return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shareDir);
+ return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shortDir);
#endif
}
diff --git a/game/surface.cc b/game/surface.cc
index 47468ec..319e0e7 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -46,7 +46,7 @@ template <typename T> void loader(T& target, fs::path name) {
loadSVG(target, filename);
} else {
std::string cache_basename = name.filename() + ".cache_" + (boost::format("%.2f") % config["graphic/svg_lod"].f()).str() + ".png";
- fs::path cache_filename = getCacheDir() / cache_basename;
+ fs::path cache_filename = getCacheDir() / "themes" / (config["game/theme"].s().empty() ? "default" : config["game/theme"].s()) / cache_basename;
if(fs::exists(cache_filename)) {
if(fs::last_write_time(filename) > fs::last_write_time(cache_filename)) {
// SVG file is newer we should update cache
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 16:39:53
|
Module: performous
Branch: joinmenu
Commit: 3edb9cec23efbedc484730b24c7f2dc800388035
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 19:59:08 2010 +0200
Used XDG cache directory for svg caching to keep themes directory clean
---
game/fs.cc | 13 ++++++++++++-
game/fs.hh | 3 +++
game/surface.cc | 2 +-
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index 8349f1c..d356d8b 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -36,7 +36,6 @@ fs::path getLocaleDir() {
}
fs::path getConfigDir() {
-
static fs::path dir;
static bool initialized = false;
if (!initialized) {
@@ -82,6 +81,18 @@ fs::path getDataDir() {
#endif
}
+fs::path getCacheDir() {
+#ifdef _WIN32
+ return getConfigDir() / "cache"; // APPDATA/performous
+#else
+ fs::path shortDir = "performous";
+ fs::path shareDir = SHARED_DATA_DIR;
+ char const* xdg_cache_home = getenv("XDG_CACHE_HOME");
+ // FIXME: Should this use "games" or not?
+ return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shareDir);
+#endif
+}
+
fs::path getThemeDir() {
std::string theme = config["game/theme"].s();
static const std::string defaultTheme = "default";
diff --git a/game/fs.hh b/game/fs.hh
index 3d38eed..6d8baa2 100644
--- a/game/fs.hh
+++ b/game/fs.hh
@@ -15,6 +15,9 @@ fs::path getConfigDir();
/** Get the users data folder **/
fs::path getDataDir();
+/** Get the users cache folder **/
+fs::path getCacheDir();
+
/** Get the users theme folder **/
fs::path getThemeDir();
diff --git a/game/surface.cc b/game/surface.cc
index ee01d4c..47468ec 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -46,7 +46,7 @@ template <typename T> void loader(T& target, fs::path name) {
loadSVG(target, filename);
} else {
std::string cache_basename = name.filename() + ".cache_" + (boost::format("%.2f") % config["graphic/svg_lod"].f()).str() + ".png";
- fs::path cache_filename = getThemeDir() / cache_basename;
+ fs::path cache_filename = getCacheDir() / cache_basename;
if(fs::exists(cache_filename)) {
if(fs::last_write_time(filename) > fs::last_write_time(cache_filename)) {
// SVG file is newer we should update cache
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 16:39:51
|
Module: performous
Branch: joinmenu
Commit: 7b6b24cc896d1d9ec5fb311e66b0527aeab78df4
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jul 14 03:34:21 2010 +0300
Revert "Removed godmode and solo color from fret (reported as disturbing)"
This reverts commit 000f681de62ce7a75528f192d8c79b65ec772d07.
---
game/guitargraph.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 29ef04a..0be7a41 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -725,7 +725,7 @@ void GuitarGraph::draw(double time) {
float x = getFretX(fret);
float l = m_pressed_anim[fret + !m_drums].get();
// Get a color for the fret and adjust it if GodMode is on
- glColor4fv(color(fret));
+ glColor4fv(colorize(color(fret), time));
m_button.dimensions.center(time2y(0.0)).middle(x);
m_button.draw();
glColor3f(l, l, l);
@@ -782,7 +782,7 @@ void GuitarGraph::draw(double time) {
glutil::Color c(0.5f, 0.5f, 0.5f);
if (!joining(time)) {
// Get a color for the fret and adjust it if GodMode is on
- c = color(fret);
+ c = colorize(color(fret), it->begin);
if (glow > 0.1f) { ng_r+=c.r; ng_g+=c.g; ng_b+=c.b; ng_ccnt++; } // neck glow
// Further adjust the color if the note is hit
c.r += glow * 0.2f;
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 16:39:48
|
Module: performous
Branch: joinmenu
Commit: 4b9472ae964e0410c3550bb50d4a6cccff589460
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jul 14 03:31:34 2010 +0300
Fix word alignment.
---
game/image.hh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 194b064..5ff8a37 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -55,7 +55,7 @@ namespace {
break;
}
png_write_info(pngPtr, infoPtr);
- unsigned stride = (w * bpp + bpp) & ~bpp; // Number of bytes per row (word-aligned)
+ unsigned stride = (w * bpp + 3) & ~3; // Number of bytes per row (word-aligned)
unsigned pos = reverse ? h * stride : -stride;
for (unsigned y = 0; y < h; ++y) {
if(reverse)
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 16:39:45
|
Module: performous Branch: joinmenu Commit: dbfe45b507815e42299afbf721be613d19a3e9f2 Author: Vincent Le Ligeour <yo...@us...> Date: Tue Jul 13 22:52:20 2010 +0200 Added SVG caching feature --- game/fs.cc | 34 +++++++++++----- game/fs.hh | 6 +++ game/image.hh | 104 +++++++++++++++++++++++++++++++++----------------- game/main.cc | 2 +- game/surface.cc | 27 ++++++++++++- game/video_driver.cc | 2 + 6 files changed, 127 insertions(+), 48 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-07-16 16:39:43
|
Module: performous
Branch: joinmenu
Commit: 0682ec2fb913ef05927f7595e9fc9650f5680e3c
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Jul 13 20:15:47 2010 +0200
Worked around a bug in midi lyrics parsing
---
game/songparser-ini.cc | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index 016ef4f..8bd6e7c 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -176,6 +176,16 @@ void SongParser::iniParse() {
n.end = midi.get_seconds(it2->end)+s.start;
n.notePrev = n.note = it2->note;
n.type = n.note > 100 ? Note::SLEEP : Note::NORMAL;
+ if(n.note == 116 || n.note == 103)
+ // n.type = Note::GOLDEN;
+ continue; // not yet managed by midi parser
+ else if(n.note == 124)
+ // n.type = Note::GOLDEN;
+ continue; // not yet managed by midi parser
+ else if(n.note > 100)
+ n.type = Note::SLEEP;
+ else
+ n.type = Note::NORMAL;
{
std::stringstream ss(it2->lyric);
convertToUTF8(ss);
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 16:39:40
|
Module: performous
Branch: joinmenu
Commit: 000f681de62ce7a75528f192d8c79b65ec772d07
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Jul 11 11:44:44 2010 +0200
Removed godmode and solo color from fret (reported as disturbing)
---
game/guitargraph.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 0be7a41..29ef04a 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -725,7 +725,7 @@ void GuitarGraph::draw(double time) {
float x = getFretX(fret);
float l = m_pressed_anim[fret + !m_drums].get();
// Get a color for the fret and adjust it if GodMode is on
- glColor4fv(colorize(color(fret), time));
+ glColor4fv(color(fret));
m_button.dimensions.center(time2y(0.0)).middle(x);
m_button.draw();
glColor3f(l, l, l);
@@ -782,7 +782,7 @@ void GuitarGraph::draw(double time) {
glutil::Color c(0.5f, 0.5f, 0.5f);
if (!joining(time)) {
// Get a color for the fret and adjust it if GodMode is on
- c = colorize(color(fret), it->begin);
+ c = color(fret);
if (glow > 0.1f) { ng_r+=c.r; ng_g+=c.g; ng_b+=c.b; ng_ccnt++; } // neck glow
// Further adjust the color if the note is hit
c.r += glow * 0.2f;
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 15:25:19
|
Module: web Branch: master Commit: 3b0bac62ea1fca98e236fe01c9c962ff4001c44a Author: Tapio Vierros <tap...@gm...> Date: Fri Jul 16 18:24:15 2010 +0300 Status update for 2010-07-16. --- htdocs-binary/imgs/wip-joinmenu-small.jpg | Bin 0 -> 20379 bytes htdocs-binary/imgs/wip-joinmenu.jpg | Bin 0 -> 69190 bytes htdocs-source/index.txt | 14 ++++++++++++++ 3 files changed, 14 insertions(+), 0 deletions(-) diff --git a/htdocs-binary/imgs/wip-joinmenu-small.jpg b/htdocs-binary/imgs/wip-joinmenu-small.jpg new file mode 100644 index 0000000..f76ba7c Binary files /dev/null and b/htdocs-binary/imgs/wip-joinmenu-small.jpg differ diff --git a/htdocs-binary/imgs/wip-joinmenu.jpg b/htdocs-binary/imgs/wip-joinmenu.jpg new file mode 100644 index 0000000..6518917 Binary files /dev/null and b/htdocs-binary/imgs/wip-joinmenu.jpg differ diff --git a/htdocs-source/index.txt b/htdocs-source/index.txt index 8840158..2ceeae2 100644 --- a/htdocs-source/index.txt +++ b/htdocs-source/index.txt @@ -1,5 +1,19 @@ Announcements +:h2:2010-07-16 - Status update +The reason why the next 0.6 release isn't out yet is because of lacking Windows and OSX packaging. However, we haven't been sitting still - there has been significant development in various feature branches. One of them, SVG caching that greatly speeds up screen transitions is already merged to the main code. + +Another branch represents the next generation of our audio engine. It gets rid of the complicated plug-in system and relies on a single cross-platform backend: PortAudio. The new code brings many improvements and makes future development easier. The system is already usable - configuration implementation is the only significant thing left to do before taking it into use. + +Third exciting new thing is a nearly ready instrument joining menu that allows more intuitive and more expandable per player gaming experience configuration (see development picture below). The same generic menu structure will later be used to implement better configuration screen, among other things. + +<a href="imgs/wip-joinmenu.jpg"><img src="imgs/wip-joinmenu-small.jpg" style="margin-left:auto; margin-right:auto; display:block; text-align:center;" alt=""/></a> + +We also have the first free Jonathan Coulton full band song (with separate audio for all instruments!). You can try it <a href="http://fast.performous.org/joco-fullband-rev1.tar.bz2">here</a> (note that a recent git version is required due to a bug in midi lyrics parsing). + +Although the release time is unknown, Ubuntu users can rejoice as we now have a <a href="https://launchpad.net/~performous-team/+archive/ppa">Launchpad PPA</a> (see details at <a href="http://wiki.performous.org/index.php/Nightly_Builds#Ubuntu_PPA"> our wiki</a>), from where cutting edge builds of Performous can be easily installed and tested. PPA builds also include somewhat expermental midi drums and webcam background features. We have also been looking into the possibility to cross-compile Performous for Windows on Linux host. That would not only make releasing much easier, but would also allow automated nightly Windows builds. + + :h2:2010-04-20 - Status update Many fixes have been made on the code lately (SingStar ripper enhancements, left-handed support, new highscore, Windows fixes and other bugfixes). We now think that the current code is ready for a release really soon. You can help us to make sure there isn't any regression in the current git version by testing it, or for Windows users by testing the latest <a href="http://wiki.performous.org/index.php/Nightly_Builds">nightly build</a>. |
|
From: Yoda-JM <yo...@us...> - 2010-07-16 15:11:05
|
Module: performous
Branch: master
Commit: 57e1b19e6bc1f9d06f3856996371520e706f3530
Author: Vincent Le Ligeour <yo...@us...>
Date: Fri Jul 16 17:10:17 2010 +0200
Fixed (workaround) midi golden and freestyle vocal notes
---
game/songparser-ini.cc | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index 9437e77..1b5a686 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -176,13 +176,9 @@ void SongParser::iniParse() {
n.end = midi.get_seconds(it2->end)+s.start;
n.notePrev = n.note = it2->note;
n.type = n.note > 100 ? Note::SLEEP : Note::NORMAL;
- if(n.note == 116 || n.note == 103)
- // n.type = Note::GOLDEN;
- continue; // not yet managed by midi parser
- else if(n.note == 124)
- // n.type = Note::GOLDEN;
- continue; // not yet managed by midi parser
- else if(n.note > 100)
+ if(n.note == 116 || n.note == 103 || n.note == 124)
+ continue; // managed in the next loop (GOLDEN/FREESTYLE notes)
+ else if(n.note > 100) // is it always 105 ?
n.type = Note::SLEEP;
else
n.type = Note::NORMAL;
@@ -245,6 +241,20 @@ void SongParser::iniParse() {
vocal.notes.push_back(n);
}
}
+ for (MidiFileParser::Lyrics::const_iterator it2 = it->lyrics.begin(); it2 != it->lyrics.end(); ++it2) {
+ if(it2->note == 116 || it2->note == 103 || it2->note == 124) {
+ for(Notes::iterator it3 = vocal.notes.begin() ; it3 != vocal.notes.end(); ++it3) {
+ if(it3->begin == midi.get_seconds(it2->begin)+s.start && it3->type == Note::NORMAL) {
+ if(it2->note == 124) {
+ it3->type = Note::FREESTYLE;
+ } else {
+ it3->type = Note::GOLDEN;
+ }
+ break;
+ }
+ }
+ }
+ }
if (!vocal.notes.empty()) break;
}
// Figure out if we have BRE in the song
|
|
From: Tapio V. <aa...@us...> - 2010-07-16 13:40:21
|
Module: performous Branch: master Commit: 22d20084de7f009a363d89af10d2227818e3e20a Author: Tapio Vierros <tap...@gm...> Date: Fri Jul 16 16:39:23 2010 +0300 Some fixes to PPA script. --- tools/ppa/ppa.sh | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/ppa/ppa.sh b/tools/ppa/ppa.sh index 569081f..3f1fa54 100755 --- a/tools/ppa/ppa.sh +++ b/tools/ppa/ppa.sh @@ -42,7 +42,7 @@ PPAPATCHDIR="`pwd`" $COPYCMD "$1/tools" "$2" } -cd $TEMPDIR +cd "$TEMPDIR" # Download the "old" source package version=`apt-cache showsrc $PKG | sed -n 's/^Version: \(.*\)/\1/p' | head -n 1` @@ -52,17 +52,17 @@ if [ -z "$pkgversion" ] ; then echo "Assuming native package" pkgversion="$version" fi -echo "Working on $pkg $version ($pkgversion)" +echo "Working on $PKG $version ($pkgversion)" mkdir -p $PKG-$version cd $PKG-$version apt-get --download-only source $PKG # Download fresh version from git echo "Fetch from git..." -git clone $GITURL $SOURCEDIR +git clone "$GITURL" "$SOURCEDIR" # Get some info from git for changelog pushd . -cd $SOURCEDIR +cd "$SOURCEDIR" headcommit=`git log | head -n 1 | cut --delimiter=" " -f 2 | cut -c 1-10` popd |
|
From: Tapio V. <aa...@us...> - 2010-07-15 20:44:57
|
Module: performous Branch: master Commit: efa8470abab625022332f76a5497515de7a12ea4 Author: Tapio Vierros <tap...@gm...> Date: Thu Jul 15 23:41:45 2010 +0300 Make cppcheck static analyzer happier. --- game/3dobject.cc | 2 +- game/dancegraph.cc | 8 ++++---- game/database.cc | 4 ++-- game/guitargraph.cc | 2 +- game/instrumentgraph.hh | 1 + game/menu.cc | 2 +- game/menu.hh | 2 +- game/midifile.cc | 2 +- game/screen_configuration.cc | 2 +- game/screen_practice.cc | 7 +++---- game/song.cc | 2 +- game/songparser-ini.cc | 2 +- game/theme.cc | 2 +- game/theme.hh | 4 ++-- 14 files changed, 21 insertions(+), 21 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:55
|
Module: performous
Branch: portaudio
Commit: 63476ceedd38feb0ff2c34328e8085c42bab56ad
Author: Tapio Vierros <tap...@gm...>
Date: Thu Jul 15 20:31:17 2010 +0300
Output PA devices to console.
---
game/audio.cc | 4 ++++
game/audio.hh | 13 +++++++------
libs/libda/include/libda/portaudio.hpp | 13 ++++++++++++-
3 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/game/audio.cc b/game/audio.cc
index 1cb771a..2c6a3b4 100644
--- a/game/audio.cc
+++ b/game/audio.cc
@@ -150,6 +150,7 @@ struct Output {
std::vector<Command> commands;
volatile bool paused;
Output(): paused(false) {}
+
void callbackUpdate() {
boost::mutex::scoped_try_lock l(mutex);
if (!l.owns_lock()) return; // No update now, try again later (cannot stop and wait for mutex to be released)
@@ -174,6 +175,7 @@ struct Output {
}
commands.clear();
}
+
void callback(float* begin, float* end) {
callbackUpdate();
std::fill(begin, end, 0.0f);
@@ -224,10 +226,12 @@ struct Device {
{
mics.resize(in);
}
+
void start() {
PaError err = Pa_StartStream(stream);
if (err != paNoError) throw std::runtime_error("Cannot start PortAudio audio stream " + dev + ": " + Pa_GetErrorText(err));
}
+
int operator()(void const* input, void* output, unsigned long frames, const PaStreamCallbackTimeInfo*, PaStreamCallbackFlags) try {
float const* in = static_cast<float const*>(input);
float* out = static_cast<float*>(output);
diff --git a/game/audio.hh b/game/audio.hh
index dab6770..27018f8 100644
--- a/game/audio.hh
+++ b/game/audio.hh
@@ -27,15 +27,15 @@ public:
* @param startPos starting position
*/
void playMusic(std::string const& filename, bool preview = false, double fadeTime = 0.5, double startPos = 0.0);
- /// plays a list of songs
+ /** Plays a list of songs **/
void playMusic(std::map<std::string,std::string> const& filenames, bool preview = false, double fadeTime = 0.5, double startPos = 0.0);
- /// loads/plays/unloads a sample
+ /** Loads/plays/unloads a sample **/
void loadSample(std::string const& streamId, std::string const& filename);
void playSample(std::string const& streamId);
void unloadSample(std::string const& streamId);
- /// stops music
+ /** Stops music **/
void stopMusic();
- /// fades music out
+ /** Fades music out **/
void fadeout(double time = 1.0);
/** Get the length of the currently playing song, in seconds. **/
double getLength() const;
@@ -54,8 +54,9 @@ public:
void togglePause() { pause(!isPaused()); }
void pause(bool state = true);
bool isPaused() const;
- void toggleSynth(Notes const&); ///< toggles synth playback
- /// Adjust volume level of a single track (used for muting incorrectly played instruments). Range 0.0 to 1.0.
+ /** Toggle synth playback **/
+ void toggleSynth(Notes const&);
+ /** Adjust volume level of a single track (used for muting incorrectly played instruments). Range 0.0 to 1.0. **/
void streamFade(std::string track, double volume);
double getSR() const { return 48000.0; }
};
diff --git a/libs/libda/include/libda/portaudio.hpp b/libs/libda/include/libda/portaudio.hpp
index 8add471..d6e33b1 100644
--- a/libs/libda/include/libda/portaudio.hpp
+++ b/libs/libda/include/libda/portaudio.hpp
@@ -25,7 +25,18 @@ namespace portaudio {
}
struct Init {
- Init() { PORTAUDIO_CHECKED(Pa_Initialize, ()); }
+ Init()
+ {
+ PORTAUDIO_CHECKED(Pa_Initialize, ());
+ // Print the devices
+ std::cout << "PortAudio devices:\n";
+ for (int i = 0, end = Pa_GetDeviceCount(); i != end; ++i) {
+ PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
+ if (!info) continue;
+ std::cout << " " << i << " " << info->name << " (" << info->maxInputChannels << " in, " << info->maxOutputChannels << " out)\n";
+ }
+ std::cout << std::endl;
+ }
~Init() { Pa_Terminate(); }
};
|
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:52
|
Module: performous Branch: master Commit: bf397bf072ad14257e2d04dc5dc5b187aa465aed Author: Tapio Vierros <tap...@gm...> Date: Thu Jul 15 20:33:39 2010 +0300 Merge branch 'svg_caching' --- |
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:50
|
Module: performous
Branch: master
Commit: 9a1623b1739d85502e36a99c925830b09d79f2bf
Author: Vincent Le Ligeour <yo...@us...>
Date: Thu Jul 15 13:01:44 2010 +0200
Removed debug message about caching SVG
---
game/image.hh | 7 ++-----
1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 1b59873..c5a1c36 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -53,10 +53,8 @@ namespace {
png_set_IHDR(pngPtr, infoPtr, w, h, 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
bpp = 4;
break;
- case pix::INT_ARGB:
- throw std::runtime_error("Writing PNG failed (pix::INT_ARGB not supported)");
- case pix::BGR:
- throw std::runtime_error("Writing PNG failed (pix::BGR not supported)");
+ default:
+ throw std::logic_error("Unsupported pixel format in writePNG_internal");
}
png_write_info(pngPtr, infoPtr);
unsigned stride = (w * bpp + 3) & ~3; // Number of bytes per row (word-aligned)
@@ -131,7 +129,6 @@ template <typename T> void loadSVG(T& target, std::string const& filename, fs::p
g_error_free(pError);
throw std::runtime_error("Unable to load " + filename);
}
- std::cout << "Caching \"" << filename << "\" into \"" << cache_filename << "\"" << std::endl;
fs::create_directories(cache_filename.parent_path());
writePNG(cache_filename.string(), w, h, pix::CHAR_RGBA, false, gdk_pixbuf_get_pixels(pb));
gdk_pixbuf_unref(pb);
|
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:47
|
Module: performous
Branch: master
Commit: 916c7353fa84d983b557bdfc52182a566b54ae21
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 20:15:48 2010 +0200
Removed compilation warning and throw error on wrong image format
---
game/image.hh | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 5ff8a37..1b59873 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -53,6 +53,10 @@ namespace {
png_set_IHDR(pngPtr, infoPtr, w, h, 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
bpp = 4;
break;
+ case pix::INT_ARGB:
+ throw std::runtime_error("Writing PNG failed (pix::INT_ARGB not supported)");
+ case pix::BGR:
+ throw std::runtime_error("Writing PNG failed (pix::BGR not supported)");
}
png_write_info(pngPtr, infoPtr);
unsigned stride = (w * bpp + 3) & ~3; // Number of bytes per row (word-aligned)
|
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:45
|
Module: performous
Branch: master
Commit: 05b38b758eaea4623c2d201b627d6b9076b1d6eb
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 20:04:58 2010 +0200
Appended theme name to cache directory
---
game/fs.cc | 3 +--
game/surface.cc | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index d356d8b..b52539b 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -86,10 +86,9 @@ fs::path getCacheDir() {
return getConfigDir() / "cache"; // APPDATA/performous
#else
fs::path shortDir = "performous";
- fs::path shareDir = SHARED_DATA_DIR;
char const* xdg_cache_home = getenv("XDG_CACHE_HOME");
// FIXME: Should this use "games" or not?
- return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shareDir);
+ return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shortDir);
#endif
}
diff --git a/game/surface.cc b/game/surface.cc
index 47468ec..319e0e7 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -46,7 +46,7 @@ template <typename T> void loader(T& target, fs::path name) {
loadSVG(target, filename);
} else {
std::string cache_basename = name.filename() + ".cache_" + (boost::format("%.2f") % config["graphic/svg_lod"].f()).str() + ".png";
- fs::path cache_filename = getCacheDir() / cache_basename;
+ fs::path cache_filename = getCacheDir() / "themes" / (config["game/theme"].s().empty() ? "default" : config["game/theme"].s()) / cache_basename;
if(fs::exists(cache_filename)) {
if(fs::last_write_time(filename) > fs::last_write_time(cache_filename)) {
// SVG file is newer we should update cache
|
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:43
|
Module: performous
Branch: master
Commit: 3edb9cec23efbedc484730b24c7f2dc800388035
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 19:59:08 2010 +0200
Used XDG cache directory for svg caching to keep themes directory clean
---
game/fs.cc | 13 ++++++++++++-
game/fs.hh | 3 +++
game/surface.cc | 2 +-
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index 8349f1c..d356d8b 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -36,7 +36,6 @@ fs::path getLocaleDir() {
}
fs::path getConfigDir() {
-
static fs::path dir;
static bool initialized = false;
if (!initialized) {
@@ -82,6 +81,18 @@ fs::path getDataDir() {
#endif
}
+fs::path getCacheDir() {
+#ifdef _WIN32
+ return getConfigDir() / "cache"; // APPDATA/performous
+#else
+ fs::path shortDir = "performous";
+ fs::path shareDir = SHARED_DATA_DIR;
+ char const* xdg_cache_home = getenv("XDG_CACHE_HOME");
+ // FIXME: Should this use "games" or not?
+ return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shareDir);
+#endif
+}
+
fs::path getThemeDir() {
std::string theme = config["game/theme"].s();
static const std::string defaultTheme = "default";
diff --git a/game/fs.hh b/game/fs.hh
index 3d38eed..6d8baa2 100644
--- a/game/fs.hh
+++ b/game/fs.hh
@@ -15,6 +15,9 @@ fs::path getConfigDir();
/** Get the users data folder **/
fs::path getDataDir();
+/** Get the users cache folder **/
+fs::path getCacheDir();
+
/** Get the users theme folder **/
fs::path getThemeDir();
diff --git a/game/surface.cc b/game/surface.cc
index ee01d4c..47468ec 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -46,7 +46,7 @@ template <typename T> void loader(T& target, fs::path name) {
loadSVG(target, filename);
} else {
std::string cache_basename = name.filename() + ".cache_" + (boost::format("%.2f") % config["graphic/svg_lod"].f()).str() + ".png";
- fs::path cache_filename = getThemeDir() / cache_basename;
+ fs::path cache_filename = getCacheDir() / cache_basename;
if(fs::exists(cache_filename)) {
if(fs::last_write_time(filename) > fs::last_write_time(cache_filename)) {
// SVG file is newer we should update cache
|
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:40
|
Module: performous
Branch: master
Commit: 4b9472ae964e0410c3550bb50d4a6cccff589460
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jul 14 03:31:34 2010 +0300
Fix word alignment.
---
game/image.hh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 194b064..5ff8a37 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -55,7 +55,7 @@ namespace {
break;
}
png_write_info(pngPtr, infoPtr);
- unsigned stride = (w * bpp + bpp) & ~bpp; // Number of bytes per row (word-aligned)
+ unsigned stride = (w * bpp + 3) & ~3; // Number of bytes per row (word-aligned)
unsigned pos = reverse ? h * stride : -stride;
for (unsigned y = 0; y < h; ++y) {
if(reverse)
|
|
From: Tapio V. <aa...@us...> - 2010-07-15 17:37:37
|
Module: performous Branch: master Commit: dbfe45b507815e42299afbf721be613d19a3e9f2 Author: Vincent Le Ligeour <yo...@us...> Date: Tue Jul 13 22:52:20 2010 +0200 Added SVG caching feature --- game/fs.cc | 34 +++++++++++----- game/fs.hh | 6 +++ game/image.hh | 104 +++++++++++++++++++++++++++++++++----------------- game/main.cc | 2 +- game/surface.cc | 27 ++++++++++++- game/video_driver.cc | 2 + 6 files changed, 127 insertions(+), 48 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2010-07-15 11:02:09
|
Module: performous
Branch: svg_caching
Commit: 9a1623b1739d85502e36a99c925830b09d79f2bf
Author: Vincent Le Ligeour <yo...@us...>
Date: Thu Jul 15 13:01:44 2010 +0200
Removed debug message about caching SVG
---
game/image.hh | 7 ++-----
1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 1b59873..c5a1c36 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -53,10 +53,8 @@ namespace {
png_set_IHDR(pngPtr, infoPtr, w, h, 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
bpp = 4;
break;
- case pix::INT_ARGB:
- throw std::runtime_error("Writing PNG failed (pix::INT_ARGB not supported)");
- case pix::BGR:
- throw std::runtime_error("Writing PNG failed (pix::BGR not supported)");
+ default:
+ throw std::logic_error("Unsupported pixel format in writePNG_internal");
}
png_write_info(pngPtr, infoPtr);
unsigned stride = (w * bpp + 3) & ~3; // Number of bytes per row (word-aligned)
@@ -131,7 +129,6 @@ template <typename T> void loadSVG(T& target, std::string const& filename, fs::p
g_error_free(pError);
throw std::runtime_error("Unable to load " + filename);
}
- std::cout << "Caching \"" << filename << "\" into \"" << cache_filename << "\"" << std::endl;
fs::create_directories(cache_filename.parent_path());
writePNG(cache_filename.string(), w, h, pix::CHAR_RGBA, false, gdk_pixbuf_get_pixels(pb));
gdk_pixbuf_unref(pb);
|
|
From: Yoda-JM <yo...@us...> - 2010-07-14 18:16:22
|
Module: performous
Branch: svg_caching
Commit: 916c7353fa84d983b557bdfc52182a566b54ae21
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 20:15:48 2010 +0200
Removed compilation warning and throw error on wrong image format
---
game/image.hh | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/game/image.hh b/game/image.hh
index 5ff8a37..1b59873 100644
--- a/game/image.hh
+++ b/game/image.hh
@@ -53,6 +53,10 @@ namespace {
png_set_IHDR(pngPtr, infoPtr, w, h, 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
bpp = 4;
break;
+ case pix::INT_ARGB:
+ throw std::runtime_error("Writing PNG failed (pix::INT_ARGB not supported)");
+ case pix::BGR:
+ throw std::runtime_error("Writing PNG failed (pix::BGR not supported)");
}
png_write_info(pngPtr, infoPtr);
unsigned stride = (w * bpp + 3) & ~3; // Number of bytes per row (word-aligned)
|
|
From: Yoda-JM <yo...@us...> - 2010-07-14 18:05:17
|
Module: performous
Branch: svg_caching
Commit: 05b38b758eaea4623c2d201b627d6b9076b1d6eb
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 20:04:58 2010 +0200
Appended theme name to cache directory
---
game/fs.cc | 3 +--
game/surface.cc | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index d356d8b..b52539b 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -86,10 +86,9 @@ fs::path getCacheDir() {
return getConfigDir() / "cache"; // APPDATA/performous
#else
fs::path shortDir = "performous";
- fs::path shareDir = SHARED_DATA_DIR;
char const* xdg_cache_home = getenv("XDG_CACHE_HOME");
// FIXME: Should this use "games" or not?
- return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shareDir);
+ return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shortDir);
#endif
}
diff --git a/game/surface.cc b/game/surface.cc
index 47468ec..319e0e7 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -46,7 +46,7 @@ template <typename T> void loader(T& target, fs::path name) {
loadSVG(target, filename);
} else {
std::string cache_basename = name.filename() + ".cache_" + (boost::format("%.2f") % config["graphic/svg_lod"].f()).str() + ".png";
- fs::path cache_filename = getCacheDir() / cache_basename;
+ fs::path cache_filename = getCacheDir() / "themes" / (config["game/theme"].s().empty() ? "default" : config["game/theme"].s()) / cache_basename;
if(fs::exists(cache_filename)) {
if(fs::last_write_time(filename) > fs::last_write_time(cache_filename)) {
// SVG file is newer we should update cache
|
|
From: Yoda-JM <yo...@us...> - 2010-07-14 17:59:31
|
Module: performous
Branch: svg_caching
Commit: 3edb9cec23efbedc484730b24c7f2dc800388035
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 14 19:59:08 2010 +0200
Used XDG cache directory for svg caching to keep themes directory clean
---
game/fs.cc | 13 ++++++++++++-
game/fs.hh | 3 +++
game/surface.cc | 2 +-
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index 8349f1c..d356d8b 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -36,7 +36,6 @@ fs::path getLocaleDir() {
}
fs::path getConfigDir() {
-
static fs::path dir;
static bool initialized = false;
if (!initialized) {
@@ -82,6 +81,18 @@ fs::path getDataDir() {
#endif
}
+fs::path getCacheDir() {
+#ifdef _WIN32
+ return getConfigDir() / "cache"; // APPDATA/performous
+#else
+ fs::path shortDir = "performous";
+ fs::path shareDir = SHARED_DATA_DIR;
+ char const* xdg_cache_home = getenv("XDG_CACHE_HOME");
+ // FIXME: Should this use "games" or not?
+ return (xdg_cache_home ? xdg_cache_home / shortDir : getHomeDir() / ".cache" / shareDir);
+#endif
+}
+
fs::path getThemeDir() {
std::string theme = config["game/theme"].s();
static const std::string defaultTheme = "default";
diff --git a/game/fs.hh b/game/fs.hh
index 3d38eed..6d8baa2 100644
--- a/game/fs.hh
+++ b/game/fs.hh
@@ -15,6 +15,9 @@ fs::path getConfigDir();
/** Get the users data folder **/
fs::path getDataDir();
+/** Get the users cache folder **/
+fs::path getCacheDir();
+
/** Get the users theme folder **/
fs::path getThemeDir();
diff --git a/game/surface.cc b/game/surface.cc
index ee01d4c..47468ec 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -46,7 +46,7 @@ template <typename T> void loader(T& target, fs::path name) {
loadSVG(target, filename);
} else {
std::string cache_basename = name.filename() + ".cache_" + (boost::format("%.2f") % config["graphic/svg_lod"].f()).str() + ".png";
- fs::path cache_filename = getThemeDir() / cache_basename;
+ fs::path cache_filename = getCacheDir() / cache_basename;
if(fs::exists(cache_filename)) {
if(fs::last_write_time(filename) > fs::last_write_time(cache_filename)) {
// SVG file is newer we should update cache
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-07-14 00:34:50
|
Module: performous
Branch: master
Commit: 7b6b24cc896d1d9ec5fb311e66b0527aeab78df4
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jul 14 03:34:21 2010 +0300
Revert "Removed godmode and solo color from fret (reported as disturbing)"
This reverts commit 000f681de62ce7a75528f192d8c79b65ec772d07.
---
game/guitargraph.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 29ef04a..0be7a41 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -725,7 +725,7 @@ void GuitarGraph::draw(double time) {
float x = getFretX(fret);
float l = m_pressed_anim[fret + !m_drums].get();
// Get a color for the fret and adjust it if GodMode is on
- glColor4fv(color(fret));
+ glColor4fv(colorize(color(fret), time));
m_button.dimensions.center(time2y(0.0)).middle(x);
m_button.draw();
glColor3f(l, l, l);
@@ -782,7 +782,7 @@ void GuitarGraph::draw(double time) {
glutil::Color c(0.5f, 0.5f, 0.5f);
if (!joining(time)) {
// Get a color for the fret and adjust it if GodMode is on
- c = color(fret);
+ c = colorize(color(fret), it->begin);
if (glow > 0.1f) { ng_r+=c.r; ng_g+=c.g; ng_b+=c.b; ng_ccnt++; } // neck glow
// Further adjust the color if the note is hit
c.r += glow * 0.2f;
|