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: rainbyte <rai...@us...> - 2012-07-17 10:43:45
|
Author: Tapio Vierros <tap...@gm...>
Date: Sun Nov 20 18:47:57 2011 +0200
Added Ubuntu 11.04 and 11.10 CPack deps.
>From control files of the official Ubuntu binary packages.
11.10 sanity checked, 11.04 untested.
---
cmake/performous-packaging.cmake | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/cmake/performous-packaging.cmake b/cmake/performous-packaging.cmake
index 0327ebe..e0aa7fa 100644
--- a/cmake/performous-packaging.cmake
+++ b/cmake/performous-packaging.cmake
@@ -66,6 +66,14 @@ if(UNIX)
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")
+ if("${LSB_DISTRIB}" MATCHES "Ubuntu11.04")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libavcodec52|libavcodec-extra-52, libavformat52|libavformat-extra-52, libavutil50|libavutil-extra-50, libboost-filesystem1.42.0, libboost-program-options1.42.0, libboost-regex1.42.0, libboost-system1.42.0, libboost-thread1.42.0, libc6, libcairo2, libfreetype6, libgcc1, libgdk-pixbuf2.0-0, libgl1-mesa-glx|libgl1, libglew1.5, libglib2.0-0, libglibmm-2.4-1c2a, libglu1-mesa|libglu1, libjpeg62, libpango1.0-0, libpng12-0, libportaudio2, librsvg2-2, libsdl1.2debian, libsigc++-2.0-0c2a, libstdc++6, libswscale0|libswscale-extra-0, libxml++2.6-2, libxml2, zlib1g")
+ endif("${LSB_DISTRIB}" MATCHES "Ubuntu11.04")
+
+ if("${LSB_DISTRIB}" MATCHES "Ubuntu11.10")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libavcodec53|libavcodec-extra-53, libavformat53|libavformat-extra-53, libavutil51|libavutil-extra-51, libboost-filesystem1.46.1, libboost-program-options1.46.1, libboost-regex1.46.1, libboost-system1.46.1, libboost-thread1.46.1, libc6, libcairo2, libgcc1, libgdk-pixbuf2.0-0, libgl1-mesa-glx|libgl1, libglew1.5, libglib2.0-0, libglibmm-2.4-1c2a, libglu1-mesa|libglu1, libjpeg62, libpango1.0-0, libpng12-0, libportaudio2, librsvg2-2, libsdl1.2debian, libstdc++6, libswscale2|libswscale-extra-2, libxml++2.6-2")
+ endif("${LSB_DISTRIB}" MATCHES "Ubuntu11.10")
+
# Debian
if("${LSB_DISTRIB}" MATCHES "Debian5.*")
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, libavcodec51, libavformat52, libswscale0, libmagick++10, libxml++2.6-2, libglew1.5, libpng12-0, libjpeg62, libportmidi0, libcv2.1, libhighgui2.1")
|
|
From: rainbyte <rai...@us...> - 2012-07-17 10:43:37
|
Author: Vincent Le Ligeour <yo...@us...> Date: Sun Nov 20 13:15:33 2011 +0100 Merge branch 'master' of git://git.performous.org/gitroot/performous/performous --- |
|
From: rainbyte <rai...@us...> - 2012-07-17 10:43:29
|
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Nov 20 13:13:34 2011 +0100
Fixed libjpeg detection according to ubuntu jpeg-detection.patch
---
cmake/Modules/FindJpeg.cmake | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/cmake/Modules/FindJpeg.cmake b/cmake/Modules/FindJpeg.cmake
index c5cc9b6..e1b1be2 100644
--- a/cmake/Modules/FindJpeg.cmake
+++ b/cmake/Modules/FindJpeg.cmake
@@ -13,7 +13,7 @@ include(LibFindMacros)
libfind_pkg_check_modules(Jpeg_PKGCONF jpeg)
find_path(Jpeg_INCLUDE_DIR
- NAMES jconfig.h
+ NAMES jconfig.h jpeglib.h
PATHS ${Jpeg_PKGCONF_INCLUDE_DIRS}
)
|
|
From: rainbyte <rai...@us...> - 2012-07-17 10:43:23
|
Author: Lasse Kärkkäinen <tronic+ndrm at trn.iki.fi> Date: Thu Nov 10 05:17:45 2011 +0200 Move MIDI parsing to a separate source module. --- game/songparser-ini.cc | 208 +------------------------------------------ game/songparser-mid.cc | 235 ++++++++++++++++++++++++++++++++++++++++++++++++ game/songparser.hh | 3 + 3 files changed, 240 insertions(+), 206 deletions(-) |
|
From: rainbyte <rai...@us...> - 2012-07-17 10:43:15
|
Author: Tapio Vierros <tap...@gm...> Date: Sun Oct 30 14:04:49 2011 +0200 New ppastats script that makes it work again. Previous was broken by some LP API changes. --- tools/ppa/ppastats.py | 45 +++++++++++++++++++++++++++------------------ 1 files changed, 27 insertions(+), 18 deletions(-) diff --git a/tools/ppa/ppastats.py b/tools/ppa/ppastats.py index bef3db5..32aa5e3 100755 --- a/tools/ppa/ppastats.py +++ b/tools/ppa/ppastats.py @@ -1,26 +1,35 @@ #!/usr/bin/python -# Prints download stats from Launchpad PPA. +# -*- coding: utf-8 -*- +# Licensed under the GPL v3 +# Written by arand, original: https://launchpadlibrarian.net/81374910/ppastats +# Modified for Performous by Tapio Vierros +# Inspired by Alex Mandel's script snippets at https://bugs.launchpad.net/launchpad/+bug/139855 +# This is my biggest project in python to date, it is KLUDGE beyond imagination. +# On Debian-like systems the package python-launchpadlib is required + +import os from launchpadlib.launchpad import Launchpad -PPAOWNER = "performous-team" # PPA owner -PPA = "ppa" # PPA name +archs = ["i386", "amd64"] +releases = ["lucid", "maverick", "natty", "oneiric"] -cachedir = "~/.cache/launchpadlib/" -apiurl = 'https://api.edge.launchpad.net/devel/ubuntu/' +owner_name = "performous-team" +ppas = ["ppa"] -lp_ = Launchpad.login_anonymously('ppastats', 'edge', cachedir, version='devel') -owner = lp_.people[PPAOWNER] -archive = owner.getPPAByName(name=PPA) +for individual_ppa in ppas: + print "Usage stats for PPA with owner \"" + owner_name + "\" named \"" + individual_ppa + "\"" + print "#####" + cachedir = os.path.expanduser("~/.launchpadlib/cache/") -def printDLCount(distarch): - for i in archive.getPublishedBinaries(status='Published',distro_arch_series=apiurl+distarch): - # Uncomment last part of next line to get daily stats - print i.binary_package_name + "\t" + i.binary_package_version + "\t" + str(i.getDownloadCount()) #+ "\t" + str(i.getDailyDownloadTotals()) + launchpad = Launchpad.login_anonymously('ppastats', 'production', cachedir, version='devel') + owner = launchpad.people[owner_name] + archive = owner.getPPAByName(name=individual_ppa) -print "Package\tVersion\tDownloads" #"\tDaily DLs" -print -printDLCount("maverick/i386") -printDLCount("maverick/amd64") -printDLCount("lucid/i386") -printDLCount("lucid/amd64") + for individual_arch in archs: + for individual_release in releases: + individual_distro_arch_series = "https://api.launchpad.net/devel/ubuntu/" + individual_release + "/" + individual_arch + print "\t" + individual_release + "/" + individual_arch + ":" + for individual_archive in archive.getPublishedBinaries(status='Published',distro_arch_series=individual_distro_arch_series): + print individual_archive.binary_package_name + "\t" + individual_archive.binary_package_version + "\t" + str(individual_archive.getDownloadCount()) + print "#####" |
|
From: rainbyte <rai...@us...> - 2012-07-17 10:43:11
|
Author: Lasse Kärkkäinen <tronic+ndrm at trn.iki.fi> Date: Wed Oct 26 18:00:21 2011 +0300 Cleanup MusicalScale. No API changes. --- game/musicalscale.cc | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ game/musicalscale.hh | 29 ++++++++++++++++++++++++++++ game/notes.cc | 47 ---------------------------------------------- game/notes.hh | 26 +------------------------ 4 files changed, 81 insertions(+), 72 deletions(-) diff --git a/game/musicalscale.cc b/game/musicalscale.cc new file mode 100644 index 0000000..20ca870 --- /dev/null +++ b/game/musicalscale.cc @@ -0,0 +1,51 @@ +#include "musicalscale.hh" + +#include <cmath> +#include <sstream> +#include <stdexcept> + +// NOTE: This is the C major scale. +// The format needs to be preserved for isSharp, and any scale changes must be done in getNoteNum manually. +const char* const noteNames[12] = {"C ","C#","D ","D#","E ","F ","F#","G ","G#","A ","A#","B "}; + +std::string MusicalScale::getNoteStr(double freq) const try { + int id = getNoteId(freq); + std::ostringstream oss; + oss << noteNames[id % 12] << " " << int(freq + 0.5) << " Hz"; + return oss.str(); +} catch (std::logic_error&) { + return std::string(); +} + +unsigned int MusicalScale::getNoteNum(int id) const { + // C major scale + int n = id % 12; + return (n + (n > 4)) / 2; +} + +bool MusicalScale::isSharp(int id) const { + if (id < 0) throw std::logic_error("MusicalScale::isSharp: Invalid note ID"); + return noteNames[id % 12][1] == '#'; +} + +double MusicalScale::getNoteFreq(int id) const { + if (id == -1) return 0.0; + return m_baseFreq * std::pow(2.0, (id - m_baseId) / 12.0); +} + +int MusicalScale::getNoteId(double freq) const { + double note = getNote(freq); + return int(note + 0.5); // Mathematical rounding +} + +double MusicalScale::getNote(double freq) const { + double note = m_baseId + 12.0 * std::log(freq / m_baseFreq) / std::log(2.0); + if (note >= 0.0 && note <= 127.0) return note; + throw std::logic_error("MusicalScale::getNote: Invalid freq"); +} + +double MusicalScale::getNoteOffset(double freq) const { + double note = getNote(freq); + return note - int(note + 0.5); +} + diff --git a/game/musicalscale.hh b/game/musicalscale.hh new file mode 100644 index 0000000..0f2aba4 --- /dev/null +++ b/game/musicalscale.hh @@ -0,0 +1,29 @@ +#pragma once + +#include <string> + +/// Conversions for the C major musical scale +class MusicalScale { + private: + double m_baseFreq; + static const int m_baseId = 69; ///< What is the baseFreq in MIDI? + + public: + /// Construct a scale object + MusicalScale(double baseFreq = 440.0): m_baseFreq(baseFreq) {} + /// Get a human-readable string representation for the frequency + std::string getNoteStr(double freq) const; + /// Get a note line number in traditional notation (0 = C, 1 = D, ...) + unsigned int getNoteNum(int id) const; + /// Check if the note is sharp (#) + bool isSharp(int id) const; + /// Get the proper frequency of the note + double getNoteFreq(int id) const; + /// Get the nearest note for the frequency + int getNoteId(double freq) const; + /// Get the precise (non-rounded) note id for a the frequency + double getNote(double freq) const; + /// Get the offset (-0.5 to 0.5) from the nearest note + double getNoteOffset(double freq) const; +}; + diff --git a/game/notes.cc b/game/notes.cc index 14af3a2..258fec2 100644 --- a/game/notes.cc +++ b/game/notes.cc @@ -5,53 +5,6 @@ #include <sstream> #include <stdexcept> -std::string MusicalScale::getNoteStr(double freq) const { - int id = getNoteId(freq); - if (id == -1) return std::string(); - static const char * note[12] = {"C ","C#","D ","D#","E ","F ","F#","G ","G#","A ","A#","B "}; - std::ostringstream oss; - // Acoustical Society of America Octave Designation System - //int octave = 2 + id / 12; - oss << note[id%12] << " " << int(round(freq)) << " Hz"; - return oss.str(); -} - -unsigned int MusicalScale::getNoteNum(int id) const { - // C major scale - int n = id % 12; - return (n + (n > 4)) / 2; -} - -bool MusicalScale::isSharp(int id) const { - if (id < 0) throw std::logic_error("MusicalScale::isSharp: Invalid note ID"); - // C major scale - switch (id % 12) { - case 1: case 3: case 6: case 8: case 10: return true; - } - return false; -} - -double MusicalScale::getNoteFreq(int id) const { - if (id == -1) return 0.0; - return m_baseFreq * std::pow(2.0, (id - m_baseId) / 12.0); -} - -int MusicalScale::getNoteId(double freq) const { - double note = getNote(freq); - if (note >= 0.0 && note < 100.0) return int(note + 0.5); - return -1; -} - -double MusicalScale::getNote(double freq) const { - if (freq < 1.0) return getNaN(); - return m_baseId + 12.0 * std::log(freq / m_baseFreq) / std::log(2.0); -} - -double MusicalScale::getNoteOffset(double freq) const { - double frac = freq / getNoteFreq(getNoteId(freq)); - return 12.0 * std::log(frac) / std::log(2.0); -} - Note::Note(): begin(getNaN()), end(getNaN()), phase(getNaN()), power(getNaN()), type(NORMAL), note(), notePrev() {} double Note::diff(double note, double n) { return remainder(n - note, 12.0); } diff --git a/game/notes.hh b/game/notes.hh index 4c67bae..ebc5daf 100644 --- a/game/notes.hh +++ b/game/notes.hh @@ -5,31 +5,7 @@ #include <vector> #include "color.hh" - -/// musical scale, defaults to C major -class MusicalScale { - private: - double m_baseFreq; - static const int m_baseId = 33; - - public: - /// constructor - MusicalScale(double baseFreq = 440.0): m_baseFreq(baseFreq) {} - /// get name of note - std::string getNoteStr(double freq) const; - /// get note number for id - unsigned int getNoteNum(int id) const; - /// true if sharp note - bool isSharp(int id) const; - /// get frequence for note id - double getNoteFreq(int id) const; - /// get note id for frequence - int getNoteId(double freq) const; - /// get note for frequence - double getNote(double freq) const; - /// get note offset for frequence - double getNoteOffset(double freq) const; -}; +#include "musicalscale.hh" /// stores duration of a note struct Duration { |
|
From: rainbyte <rai...@us...> - 2012-07-17 10:43:05
|
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 25 22:10:16 2011 +0300
Support for NoteGraph rendering to the screen bottom (preparation for duet).
---
game/notegraph.cc | 6 +++++-
game/notegraph.hh | 2 +-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/game/notegraph.cc b/game/notegraph.cc
index 39f0fc8..c8ce4c6 100644
--- a/game/notegraph.cc
+++ b/game/notegraph.cc
@@ -95,6 +95,9 @@ void NoteGraph::draw(double time, Database const& database, Position position) {
case NoteGraph::TOP:
dimensions.stretch(1.0, 0.32).bottom(0.0);
break;
+ case NoteGraph::BOTTOM:
+ dimensions.stretch(1.0, 0.32).top(0.0);
+ break;
case NoteGraph::LEFT:
dimensions.stretch(0.50, 0.50).center().left(-0.5);
break;
@@ -128,7 +131,8 @@ void NoteGraph::draw(double time, Database const& database, Position position) {
float centery = m_baseY + (it->note + 0.4) * m_noteUnit; // Star is 0.4 notes higher than current note
float centerx = x + w - (player_star_offset + 1.2) * hh; // Star is 1.2 units from end
float rot = fmod(time * 5.0, 2.0 * M_PI); // They rotate!
- float zoom = (std::abs((rot-180) / 360.0f) * 0.8f + 0.6f) * (position == NoteGraph::TOP ? 2.3 : 2.0) * hh;
+ bool smallerNoteGraph = ((position == NoteGraph::TOP) || (position == NoteGraph::BOTTOM));
+ float zoom = (std::abs((rot-180) / 360.0f) * 0.8f + 0.6f) * (smallerNoteGraph ? 2.3 : 2.0) * hh;
using namespace glmath;
Transform trans(translate(vec3(centerx, centery, 0.0f)) * rotate(rot, vec3(0.0f, 0.0f, 1.0f)));
{
diff --git a/game/notegraph.hh b/game/notegraph.hh
index a552caf..f92db1c 100644
--- a/game/notegraph.hh
+++ b/game/notegraph.hh
@@ -10,7 +10,7 @@ class Database;
/// handles drawing of notes and waves
class NoteGraph {
public:
- enum Position {FULLSCREEN, TOP, LEFT, RIGHT};
+ enum Position {FULLSCREEN, TOP, BOTTOM, LEFT, RIGHT};
/// constructor
NoteGraph(VocalTrack const& vocal);
/// resets NoteGraph and Notes
|
|
From: rainbyte <rai...@us...> - 2012-07-17 10:43:02
|
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 25 21:46:20 2011 +0300
Added some additional codepages.
---
data/schema.xml | 9 ++++++++-
game/unicode.cc | 2 +-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/data/schema.xml b/data/schema.xml
index 7d5530a..9f9a621 100644
--- a/data/schema.xml
+++ b/data/schema.xml
@@ -75,10 +75,17 @@ to save the current settings to XML.
<short>Hardware MIDI input device</short>
<long>Part of sound card name or its number or empty to use the first available device. Used currently for MIDI drum controllers.</long>
</entry>
- <entry name="game/fallback_encoding" type="int" value="1">
+ <entry name="game/fallback_encoding" type="int" value="2">
<limits>
<enum>CP1250</enum>
+ <enum>CP1251</enum>
<enum>CP1252</enum>
+ <enum>CP1253</enum>
+ <enum>CP1254</enum>
+ <enum>CP1255</enum>
+ <enum>CP1256</enum>
+ <enum>CP1257</enum>
+ <enum>CP1258</enum>
</limits>
<short>Fallback song encoding</short>
<long>Pick the text codec used for song files that are not UTF-8.</long>
diff --git a/game/unicode.cc b/game/unicode.cc
index 5fe8c4e..0afd382 100644
--- a/game/unicode.cc
+++ b/game/unicode.cc
@@ -9,7 +9,7 @@
namespace {
// Codepage choices from config
- static const char* codesets[] = { "CP1250", "CP1252" };
+ static const char* codesets[] = { "CP1250", "CP1251", "CP1252", "CP1253", "CP1254", "CP1255", "CP1256", "CP1257", "CP1258" };
// Convert a string using Glib, throw exception on error.
// This is in fact (slightly modified) Glib::convert from glibmm.
|
|
From: rainbyte <rai...@us...> - 2012-07-17 10:42:54
|
Author: Tapio Vierros <tap...@gm...> Date: Tue Oct 25 21:43:23 2011 +0300 Update FI translation. --- lang/fi.po | 148 +++++++++++++++++++++++++++++++---------------------------- 1 files changed, 78 insertions(+), 70 deletions(-) |
|
From: rainbyte <rai...@us...> - 2012-07-17 10:42:51
|
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 25 21:21:11 2011 +0300
Added config option to toggle fallback encoding between CP1250 and CP1252.
---
data/schema.xml | 12 ++++++++++--
game/unicode.cc | 11 +++++++++--
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/data/schema.xml b/data/schema.xml
index ac324e6..7d5530a 100644
--- a/data/schema.xml
+++ b/data/schema.xml
@@ -75,6 +75,14 @@ to save the current settings to XML.
<short>Hardware MIDI input device</short>
<long>Part of sound card name or its number or empty to use the first available device. Used currently for MIDI drum controllers.</long>
</entry>
+ <entry name="game/fallback_encoding" type="int" value="1">
+ <limits>
+ <enum>CP1250</enum>
+ <enum>CP1252</enum>
+ </limits>
+ <short>Fallback song encoding</short>
+ <long>Pick the text codec used for song files that are not UTF-8.</long>
+ </entry>
<!-- Graphic preferences -->
<entry name="graphic/window_width" type="int" value="800" hidden="true">
@@ -103,8 +111,8 @@ to save the current settings to XML.
<enum>Green/Magenta</enum>
<enum>Over/Under</enum>
</limits>
- <short>Stereo3D type</short>
- <long>Some modes may only get activated in fullscreen mode.</long>
+ <short>Stereo3D type</short>
+ <long>Some modes may only get activated in fullscreen mode.</long>
</entry>
<entry name="graphic/stereo3dseparation" type="float" value="50">
<ui unit=" %" />
diff --git a/game/unicode.cc b/game/unicode.cc
index 95053b0..5fe8c4e 100644
--- a/game/unicode.cc
+++ b/game/unicode.cc
@@ -1,4 +1,5 @@
#include "unicode.hh"
+#include "configuration.hh"
#include <boost/scoped_ptr.hpp>
#include <glibmm/ustring.h>
@@ -7,6 +8,9 @@
#include <stdexcept>
namespace {
+ // Codepage choices from config
+ static const char* codesets[] = { "CP1250", "CP1252" };
+
// Convert a string using Glib, throw exception on error.
// This is in fact (slightly modified) Glib::convert from glibmm.
std::string convert(const std::string& str, const std::string& to_codeset, const std::string& from_codeset) {
@@ -33,9 +37,12 @@ void convertToUTF8(std::stringstream &_stream, std::string _filename) {
_stream.str(data.substr(3)); // Remove BOM if there is one
}
} catch(...) {
- if (!_filename.empty()) std::clog << "unicode/warning: " << _filename << " is not UTF-8.\n Assuming CP1252 for now. Use recode CP1252..UTF-8 */*.txt to convert your files." << std::endl;
+ const char* codeset = codesets[config["game/fallback_encoding"].i()];
+ if (!_filename.empty())
+ std::clog << "unicode/warning: " << _filename << " is not UTF-8.\n Assuming " << codeset
+ << ". Use recode " << codeset << "..UTF-8 */*.txt to convert your files." << std::endl;
try {
- _stream.str(convert(_stream.str(), "UTF-8", "CP1252")); // Convert from Microsoft CP1252
+ _stream.str(convert(_stream.str(), "UTF-8", codeset)); // Convert from fallback encoding
} catch (...) {
// Filter out anything but ASCII
std::string tmp;
|
|
From: rainbyte <rai...@us...> - 2012-07-17 10:42:42
|
Author: Lasse Karkkainen <tro...@tr...>
Date: Mon Oct 24 01:12:19 2011 +0300
Prefer video instead of webcam when both are enabled (disable video in config to get the old functionality).
---
game/screen_sing.cc | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 92b460c..ff0f90c 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -436,12 +436,12 @@ void ScreenSing::draw() {
if (ar > arMax || (m_video && ar > arMin)) fillBG(); // Fill white background to avoid black borders
m_background->draw();
} else fillBG(); // Blank
+ // Webcam
+ if (m_cam && config["graphic/webcam"].b()) m_cam->render();
// Video
- if (m_video && (!m_cam || !m_cam->is_good())) {
+ if (m_video /* && (!m_cam || !m_cam->is_good()) */) {
m_video->render(time); double tmp = m_video->dimensions().ar(); if (tmp > 0.0) ar = tmp;
}
- // Webcam
- if (m_cam && config["graphic/webcam"].b()) m_cam->render();
// Top/bottom borders
ar = clamp(ar, arMin, arMax);
double offset = 0.5 / ar + 0.2;
|
|
From: rainbyte <rai...@us...> - 2012-07-17 10:42:36
|
Author: Lasse Kärkkäinen <tronic+ndrm at trn.iki.fi> Date: Sun Oct 23 15:07:27 2011 +0300 Bigger frequency range because some singers apparently need it --- game/pitch.hh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/game/pitch.hh b/game/pitch.hh index d7ca49e..37c03ca 100644 --- a/game/pitch.hh +++ b/game/pitch.hh @@ -71,7 +71,7 @@ class Analyzer { /** Get a list of all tones detected. **/ tones_t const& getTones() const { return m_tones; } /** Find a tone within the singing range; prefers strong tones around 200-400 Hz. **/ - Tone const* findTone(double minfreq = 70.0, double maxfreq = 700.0) const { + Tone const* findTone(double minfreq = 65.0, double maxfreq = 1000.0) const { if (m_tones.empty()) { m_oldfreq = 0.0; return NULL; } double db = std::max_element(m_tones.begin(), m_tones.end(), Tone::dbCompare)->db; Tone const* best = NULL; |
|
From: Lasse Kärkkäi. <tr...@us...> - 2012-07-14 18:25:38
|
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Jul 14 21:25:02 2012 +0300
Mirror webcam image.
---
game/webcam.cc | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/game/webcam.cc b/game/webcam.cc
index b3b66fe..85fa849 100644
--- a/game/webcam.cc
+++ b/game/webcam.cc
@@ -105,6 +105,8 @@ void Webcam::render() {
bitmap.buf.swap(m_frame.data); // Get back our buffer (FIXME: do we need to?)
m_frameAvailable = false;
}
+ using namespace glmath;
+ Transform trans(scale(vec3(-1.0, 1.0, 1.0)));
m_surface.draw(); // Draw
#endif
}
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2012-07-10 03:22:49
|
Author: Lasse Karkkainen <tro...@tr...>
Date: Tue Jul 10 06:18:44 2012 +0300
Revert "Fix video playback issue in dance mode."
This reverts commit b049a44b8966e8a27f2a91793956322eb2c8d335.
packet.pts contains incorrect timecode, causing B frames to be displayed
out of order. Yes, "pts" stands for "presentation time stamp" but apparently
it still contains decode time stamp values. The timecode system of libav is
retarded.
---
game/ffmpeg.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/ffmpeg.cc b/game/ffmpeg.cc
index 616384e..e4440ed 100644
--- a/game/ffmpeg.cc
+++ b/game/ffmpeg.cc
@@ -161,8 +161,8 @@ void FFmpeg::decodePacket() {
packetSize -= decodeSize; // Move forward within the packet
if (!frameFinished) continue;
// Update current position if timecode is available
- if (packet.pts != int64_t(AV_NOPTS_VALUE)) {
- m_position = double(packet.pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
+ if (frame->pkt_pts != uint64_t(AV_NOPTS_VALUE)) {
+ m_position = double(frame->pkt_pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
}
if (m_mediaType == AVMEDIA_TYPE_VIDEO) processVideo(frame); else processAudio(frame);
}
|
|
From: rainbyte <rai...@us...> - 2012-07-10 03:09:14
|
Author: Alvaro Fernando Garcia <alv...@gm...>
Date: Tue Jul 10 00:06:37 2012 -0300
Fix video playback issue in dance mode.
---
game/ffmpeg.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/ffmpeg.cc b/game/ffmpeg.cc
index e4440ed..616384e 100644
--- a/game/ffmpeg.cc
+++ b/game/ffmpeg.cc
@@ -161,8 +161,8 @@ void FFmpeg::decodePacket() {
packetSize -= decodeSize; // Move forward within the packet
if (!frameFinished) continue;
// Update current position if timecode is available
- if (frame->pkt_pts != uint64_t(AV_NOPTS_VALUE)) {
- m_position = double(frame->pkt_pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
+ if (packet.pts != int64_t(AV_NOPTS_VALUE)) {
+ m_position = double(packet.pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
}
if (m_mediaType == AVMEDIA_TYPE_VIDEO) processVideo(frame); else processAudio(frame);
}
|
|
From: rainbyte <rai...@us...> - 2012-07-09 21:38:14
|
Author: Alvaro Fernando García <alv...@gm...> Date: Mon Jul 9 18:29:47 2012 -0300 Input code refactoring: Added input_joystick (SDL joystick input management). Added input_midi (pm midi input devices management). Moved some code from input.cc/hh to the new files. Updated some files that depend on input.h. Updated checkEvents code on main. --- game/input.cc | 685 +----------------------------------------------- game/input.hh | 79 ++++-- game/input_joystick.cc | 589 +++++++++++++++++++++++++++++++++++++++++ game/input_midi.cc | 93 +++++++ game/main.cc | 15 +- game/video_driver.cc | 3 +- 6 files changed, 754 insertions(+), 710 deletions(-) |
|
From: rainbyte <rai...@us...> - 2012-07-09 05:34:48
|
Author: Alvaro Fernando García <alv...@gm...> Date: Mon Jul 9 01:58:55 2012 -0300 Input code refactoring: updated files to #include input.hh. --- game/input.cc | 2 +- game/instrumentgraph.hh | 2 +- game/main.cc | 2 +- game/screen_audiodevices.cc | 2 +- game/screen_intro.cc | 2 +- game/screen_paths.cc | 2 +- game/screen_players.cc | 2 +- game/screen_practice.cc | 2 +- game/screen_practice.hh | 2 +- game/screen_songs.hh | 2 +- game/video_driver.cc | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/game/input.cc b/game/input.cc index 21285e1..39575f2 100644 --- a/game/input.cc +++ b/game/input.cc @@ -1,4 +1,4 @@ -#include "joystick.hh" +#include "input.hh" #include <boost/lexical_cast.hpp> #include <boost/regex.hpp> diff --git a/game/instrumentgraph.hh b/game/instrumentgraph.hh index c8006b7..de05670 100644 --- a/game/instrumentgraph.hh +++ b/game/instrumentgraph.hh @@ -5,7 +5,7 @@ #include "animvalue.hh" #include "notes.hh" #include "audio.hh" -#include "joystick.hh" +#include "input.hh" #include "surface.hh" #include "opengl_text.hh" #include "glutil.hh" diff --git a/game/main.cc b/game/main.cc index 45f3a08..abbb082 100644 --- a/game/main.cc +++ b/game/main.cc @@ -1,7 +1,7 @@ #include "config.hh" #include "fs.hh" #include "screen.hh" -#include "joystick.hh" +#include "input.hh" #include "profiler.hh" #include "songs.hh" #include "backgrounds.hh" diff --git a/game/screen_audiodevices.cc b/game/screen_audiodevices.cc index 3cc97d6..e04558b 100644 --- a/game/screen_audiodevices.cc +++ b/game/screen_audiodevices.cc @@ -1,7 +1,7 @@ #include "screen_audiodevices.hh" #include "configuration.hh" -#include "joystick.hh" +#include "input.hh" #include "theme.hh" #include "audio.hh" #include "i18n.hh" diff --git a/game/screen_intro.cc b/game/screen_intro.cc index 906df55..b6d2341 100644 --- a/game/screen_intro.cc +++ b/game/screen_intro.cc @@ -4,7 +4,7 @@ #include "glmath.hh" #include "audio.hh" #include "i18n.hh" -#include "joystick.hh" +#include "input.hh" #include "theme.hh" #include "menu.hh" #include "xtime.hh" diff --git a/game/screen_paths.cc b/game/screen_paths.cc index 9169e44..08f415a 100644 --- a/game/screen_paths.cc +++ b/game/screen_paths.cc @@ -1,7 +1,7 @@ #include "screen_paths.hh" #include "configuration.hh" -#include "joystick.hh" +#include "input.hh" #include "theme.hh" #include "audio.hh" #include "i18n.hh" diff --git a/game/screen_players.cc b/game/screen_players.cc index 9f49b6d..5483c51 100644 --- a/game/screen_players.cc +++ b/game/screen_players.cc @@ -9,7 +9,7 @@ #include "theme.hh" #include "video.hh" #include "i18n.hh" -#include "joystick.hh" +#include "input.hh" #include <iostream> #include <sstream> diff --git a/game/screen_practice.cc b/game/screen_practice.cc index 28f8197..d545709 100644 --- a/game/screen_practice.cc +++ b/game/screen_practice.cc @@ -3,7 +3,7 @@ #include "audio.hh" #include "util.hh" #include "fs.hh" -#include "joystick.hh" +#include "input.hh" #include "theme.hh" #include "progressbar.hh" diff --git a/game/screen_practice.hh b/game/screen_practice.hh index bb0ae1e..bda5303 100644 --- a/game/screen_practice.hh +++ b/game/screen_practice.hh @@ -2,7 +2,7 @@ #include <boost/scoped_ptr.hpp> #include "screen.hh" -#include "joystick.hh" +#include "input.hh" class Audio; class Sample; diff --git a/game/screen_songs.hh b/game/screen_songs.hh index e8314cd..9455056 100644 --- a/game/screen_songs.hh +++ b/game/screen_songs.hh @@ -9,7 +9,7 @@ #include "textinput.hh" #include "theme.hh" #include "video.hh" -#include "joystick.hh" +#include "input.hh" class Song; class Audio; diff --git a/game/video_driver.cc b/game/video_driver.cc index 51f02b6..995d8ea 100644 --- a/game/video_driver.cc +++ b/game/video_driver.cc @@ -6,7 +6,7 @@ #include "glmath.hh" #include "image.hh" #include "util.hh" -#include "joystick.hh" +#include "input.hh" #include "screen.hh" #include <boost/date_time.hpp> #include <fstream> |
|
From: rainbyte <rai...@us...> - 2012-07-09 03:42:57
|
Author: Alvaro Fernando García <alv...@gm...>
Date: Mon Jul 9 00:41:11 2012 -0300
Return drum button constants to input.hh
---
game/input.hh | 7 +++++++
game/input_mididrums.hh | 10 ----------
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/game/input.hh b/game/input.hh
index 88f6bc8..c97cb1d 100644
--- a/game/input.hh
+++ b/game/input.hh
@@ -30,6 +30,13 @@ namespace input {
static const int ORANGE_FRET_BUTTON = 4;
static const int GODMODE_BUTTON = 5;
static const int WHAMMY_BUTTON = 6;
+ // Drums buttons
+ static const int KICK_BUTTON = 0;
+ static const int RED_TOM_BUTTON = 1;
+ static const int YELLOW_TOM_BUTTON = 2;
+ static const int BLUE_TOM_BUTTON = 3;
+ static const int GREEN_TOM_BUTTON = 4;
+ static const int ORANGE_TOM_BUTTON = 5;
// Keyboard buttons
static const int C_BUTTON = 0;
static const int D_BUTTON = 1;
diff --git a/game/input_mididrums.hh b/game/input_mididrums.hh
index c467659..67702fa 100644
--- a/game/input_mididrums.hh
+++ b/game/input_mididrums.hh
@@ -26,13 +26,3 @@
private:
};
#endif
-
-namespace input {
- // Drums buttons
- static const int KICK_BUTTON = 0;
- static const int RED_TOM_BUTTON = 1;
- static const int YELLOW_TOM_BUTTON = 2;
- static const int BLUE_TOM_BUTTON = 3;
- static const int GREEN_TOM_BUTTON = 4;
- static const int ORANGE_TOM_BUTTON = 5;
-}
|
|
From: rainbyte <rai...@us...> - 2012-07-09 03:31:40
|
Author: Alvaro Fernando García <alv...@gm...> Date: Mon Jul 9 00:24:35 2012 -0300 Input code refactoring (part 1) --- game/input.cc | 816 +++++++++++++++++++++++++++++++++++++++++++++++ game/input.hh | 184 +++++++++++ game/input_mididrums.cc | 75 +++++ game/input_mididrums.hh | 38 +++ 4 files changed, 1113 insertions(+), 0 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2012-07-08 08:39:20
|
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jul 8 11:38:55 2012 +0300
Fix indent: only blocks use tabs; line splitting and other things use only two spaces.
---
game/ffmpeg.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/ffmpeg.cc b/game/ffmpeg.cc
index 1393760..e4440ed 100644
--- a/game/ffmpeg.cc
+++ b/game/ffmpeg.cc
@@ -155,8 +155,8 @@ void FFmpeg::decodePacket() {
AVFrameWrapper frame;
int frameFinished = 0;
int decodeSize = (m_mediaType == AVMEDIA_TYPE_VIDEO ?
- avcodec_decode_video2(m_codecContext, frame, &frameFinished, &packet) :
- avcodec_decode_audio4(m_codecContext, frame, &frameFinished, &packet));
+ avcodec_decode_video2(m_codecContext, frame, &frameFinished, &packet) :
+ avcodec_decode_audio4(m_codecContext, frame, &frameFinished, &packet));
if (decodeSize < 0) throw std::runtime_error("cannot decode avframe");
packetSize -= decodeSize; // Move forward within the packet
if (!frameFinished) continue;
|
|
From: rainbyte <rai...@us...> - 2012-07-08 08:24:17
|
Author: Alvaro Fernando García <alv...@gm...> Date: Sun Jul 8 05:19:22 2012 -0300 Merge branch 'master' into torrent --- |
|
From: rainbyte <rai...@us...> - 2012-07-08 08:24:15
|
Author: Alvaro Fernando García <alv...@gm...>
Date: Sun Jul 8 04:52:42 2012 -0300
Fixed ffmpeg.cc compilation error.
---
game/ffmpeg.cc | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/game/ffmpeg.cc b/game/ffmpeg.cc
index fae6e3d..1393760 100644
--- a/game/ffmpeg.cc
+++ b/game/ffmpeg.cc
@@ -154,7 +154,9 @@ void FFmpeg::decodePacket() {
if (packet.stream_index != m_streamId) return;
AVFrameWrapper frame;
int frameFinished = 0;
- int decodeSize = (m_mediaType == AVMEDIA_TYPE_VIDEO ? avcodec_decode_video2 : avcodec_decode_audio4)(m_codecContext, frame, &frameFinished, &packet);
+ int decodeSize = (m_mediaType == AVMEDIA_TYPE_VIDEO ?
+ avcodec_decode_video2(m_codecContext, frame, &frameFinished, &packet) :
+ avcodec_decode_audio4(m_codecContext, frame, &frameFinished, &packet));
if (decodeSize < 0) throw std::runtime_error("cannot decode avframe");
packetSize -= decodeSize; // Move forward within the packet
if (!frameFinished) continue;
|
|
From: rainbyte <rai...@us...> - 2012-07-08 08:24:12
|
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jul 8 10:19:22 2012 +0300
Cleanup of duplicated code in class FFmpeg. Changes to timecode calculation should not affect behavior.
---
game/ffmpeg.cc | 114 ++++++++++++++++++++++++--------------------------------
game/ffmpeg.hh | 7 +--
2 files changed, 52 insertions(+), 69 deletions(-)
diff --git a/game/ffmpeg.cc b/game/ffmpeg.cc
index 4578e08..fae6e3d 100644
--- a/game/ffmpeg.cc
+++ b/game/ffmpeg.cc
@@ -126,84 +126,68 @@ void FFmpeg::seek_internal() {
m_seekTarget = getNaN(); // Signal that seeking is done
}
-struct ReadFramePacket: public AVPacket {
- AVFormatContext* m_s;
- ReadFramePacket(AVFormatContext* s): m_s(s) {
- if (av_read_frame(s, this) < 0) throw FFmpeg::eof_error();
- }
- ~ReadFramePacket() { av_free_packet(this); }
-};
-
void FFmpeg::decodePacket() {
+ struct ReadFramePacket: public AVPacket {
+ AVFormatContext* m_s;
+ ReadFramePacket(AVFormatContext* s): m_s(s) {
+ if (av_read_frame(s, this) < 0) throw FFmpeg::eof_error();
+ }
+ ~ReadFramePacket() { av_free_packet(this); }
+ };
+
+ struct AVFrameWrapper {
+ AVFrame* m_frame;
+ AVFrameWrapper(): m_frame(avcodec_alloc_frame()) {
+ if (!m_frame) throw std::runtime_error("Unable to allocate AVFrame");
+ }
+ ~AVFrameWrapper() { av_free(m_frame); }
+ operator AVFrame*() { return m_frame; }
+ AVFrame* operator->() { return m_frame; }
+ };
+
+ // Read an AVPacket and decode it into AVFrames
ReadFramePacket packet(m_formatContext);
int packetSize = packet.size;
while (packetSize) {
if (packetSize < 0) throw std::logic_error("negative packet size?!");
if (m_quit || m_seekTarget == m_seekTarget) return;
if (packet.stream_index != m_streamId) return;
- int decodeSize = 0;
- if (m_mediaType == AVMEDIA_TYPE_VIDEO) decodeSize = decodeVideoFrame(packet);
- if (m_mediaType == AVMEDIA_TYPE_AUDIO) decodeSize = decodeAudioFrame(packet);
+ AVFrameWrapper frame;
+ int frameFinished = 0;
+ int decodeSize = (m_mediaType == AVMEDIA_TYPE_VIDEO ? avcodec_decode_video2 : avcodec_decode_audio4)(m_codecContext, frame, &frameFinished, &packet);
+ if (decodeSize < 0) throw std::runtime_error("cannot decode avframe");
packetSize -= decodeSize; // Move forward within the packet
+ if (!frameFinished) continue;
+ // Update current position if timecode is available
+ if (frame->pkt_pts != uint64_t(AV_NOPTS_VALUE)) {
+ m_position = double(frame->pkt_pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
+ }
+ if (m_mediaType == AVMEDIA_TYPE_VIDEO) processVideo(frame); else processAudio(frame);
}
}
-struct AVFrameWrapper {
- AVFrame* m_frame;
- AVFrameWrapper(): m_frame(avcodec_alloc_frame()) {
- if (!m_frame) throw std::runtime_error("Unable to allocate AVFrame");
- }
- ~AVFrameWrapper() { av_free(m_frame); }
- operator AVFrame*() { return m_frame; }
- AVFrame* operator->() { return m_frame; }
-};
-
-int FFmpeg::decodeVideoFrame(ReadFramePacket& packet) {
- struct AVFrameWrapper videoFrame;
-
- int frameFinished = 0;
- int decodeSize = avcodec_decode_video2(m_codecContext, videoFrame, &frameFinished, &packet);
- if (decodeSize < 0) throw std::runtime_error("cannot decode video frame");
- if (frameFinished) {
- // Convert into RGB and scale the data
- int w = (m_codecContext->width+15)&~15;
- int h = m_codecContext->height;
- std::vector<uint8_t> buffer(w * h * 3);
- {
- uint8_t* data = &buffer[0];
- int linesize = w * 3;
- sws_scale(m_swsContext, videoFrame->data, videoFrame->linesize, 0, h, &data, &linesize);
- }
- // Timecode calculation
- m_position = double(videoFrame->pkt_pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
- // Construct a new video frame and push it to output queue
- VideoFrame* tmp = new VideoFrame(m_position, w, h);
- tmp->data.swap(buffer);
- videoQueue.push(tmp); // Takes ownership and may block
+void FFmpeg::processVideo(AVFrame* frame) {
+ // Convert into RGB and scale the data
+ int w = (m_codecContext->width+15)&~15;
+ int h = m_codecContext->height;
+ std::vector<uint8_t> buffer(w * h * 3);
+ {
+ uint8_t* data = &buffer[0];
+ int linesize = w * 3;
+ sws_scale(m_swsContext, frame->data, frame->linesize, 0, h, &data, &linesize);
}
- return decodeSize;
+ // Construct a new video frame and push it to output queue
+ VideoFrame* tmp = new VideoFrame(m_position, w, h);
+ tmp->data.swap(buffer);
+ videoQueue.push(tmp); // Takes ownership and may block
}
-int FFmpeg::decodeAudioFrame(ReadFramePacket& packet) {
- struct AVFrameWrapper audioFrame;
-
- int gotFrame = 0;
- int decodeSize = avcodec_decode_audio4(m_codecContext, audioFrame, &gotFrame, &packet);
- if (decodeSize < 0) throw std::runtime_error("cannot decode audio frame");
- if (gotFrame) {
- std::vector<int16_t> resampled(AVCODEC_MAX_AUDIO_FRAME_SIZE);
- // Use number of samples from AVFrame
- int frames = audio_resample(m_resampleContext, &resampled[0], (short*)audioFrame->data[0], audioFrame->nb_samples);
- resampled.resize(frames * AUDIO_CHANNELS);
- // Use timecode from packet if available
- if (uint64_t(packet.pts) != uint64_t(AV_NOPTS_VALUE)) {
- m_position = double(packet.pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
- }
- // Push to output queue (may block)
- audioQueue.push(resampled, m_position);
- // Increment current time
- m_position += double(resampled.size())/double(audioQueue.getSamplesPerSecond());
- }
- return decodeSize;
+void FFmpeg::processAudio(AVFrame* frame) {
+ // Resample to output sample rate, then push to audio queue and increment timecode
+ std::vector<int16_t> resampled(AVCODEC_MAX_AUDIO_FRAME_SIZE);
+ int frames = audio_resample(m_resampleContext, &resampled[0], (short*)frame->data[0], frame->nb_samples);
+ resampled.resize(frames * AUDIO_CHANNELS);
+ audioQueue.push(resampled, m_position); // May block
+ m_position += double(frames)/m_formatContext->streams[m_streamId]->codec->sample_rate;
}
diff --git a/game/ffmpeg.hh b/game/ffmpeg.hh
index 4d4619a..c7578ee 100644
--- a/game/ffmpeg.hh
+++ b/game/ffmpeg.hh
@@ -198,12 +198,11 @@ extern "C" {
struct AVCodec;
struct AVCodecContext;
struct AVFormatContext;
+ struct AVFrame;
struct ReSampleContext;
struct SwsContext;
}
-struct ReadFramePacket;
-
/// ffmpeg class
class FFmpeg {
public:
@@ -230,8 +229,8 @@ class FFmpeg {
void seek_internal();
void open();
void decodePacket();
- int decodeVideoFrame(ReadFramePacket& packet);
- int decodeAudioFrame(ReadFramePacket& packet);
+ void processVideo(AVFrame* frame);
+ void processAudio(AVFrame* frame);
std::string m_filename;
unsigned int m_rate;
volatile bool m_quit;
|
|
From: rainbyte <rai...@us...> - 2012-07-08 08:24:09
|
Author: Alvaro Fernando García <alv...@gm...> Date: Sun Jul 8 03:57:51 2012 -0300 Updated japanese translation. --- lang/ja.po | 22 ++++++++++++---------- 1 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lang/ja.po b/lang/ja.po index b2a299e..e62f8c9 100644 --- a/lang/ja.po +++ b/lang/ja.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-08-01 22:10+0200\n" -"PO-Revision-Date: 2011-08-01 22:10+0200\n" -"Last-Translator: Tapio Vierros <tap...@gm...>\n" +"PO-Revision-Date: 2012-07-08 03:57-0300\n" +"Last-Translator: Alvaro Fernando García <alvarofernandogarcía@gmail.com>\n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" #: ../game/song.hh:36 msgid "Guitar" -msgstr "" +msgstr "ギタ−" #: ../game/song.hh:36 msgid "Coop guitar" @@ -28,19 +28,19 @@ msgstr "" #: ../game/song.hh:36 msgid "Rhythm guitar" -msgstr "" +msgstr "リズムギター" #: ../game/song.hh:36 msgid "Bass" -msgstr "" +msgstr "ベースギター" #: ../game/song.hh:36 msgid "Drums" -msgstr "" +msgstr "ドラム" #: ../game/song.hh:36 msgid "Vocals" -msgstr "" +msgstr "ボーカル" #: ../game/song.hh:36 msgid "Harmonic 1" @@ -76,7 +76,7 @@ msgstr "難しい" #: ../game/dancegraph.cc:18 msgid "Challenge" -msgstr "" +msgstr "挑戦" # There's probably a better word #: ../game/dancegraph.cc:111 @@ -152,6 +152,8 @@ msgid "" "God Mode\n" "Activated!" msgstr "" +"神モード\n" +"活性化!" #: ../game/guitargraph.cc:500 msgid "Mistakes ignored!" @@ -171,7 +173,7 @@ msgstr "" #: ../game/configuration.cc:116 msgid "Enabled" -msgstr "" +msgstr "使用可能" #: ../game/configuration.cc:116 msgid "Disabled" @@ -216,7 +218,7 @@ msgstr "演奏に再会する" #: ../game/screen_sing.cc:85 msgid "Restart" -msgstr "" +msgstr "再起動" #: ../game/screen_sing.cc:85 msgid "" |
|
From: rainbyte <rai...@us...> - 2012-07-08 08:24:06
|
Author: Alvaro Fernando García <alv...@gm...> Date: Sun Jul 8 03:38:48 2012 -0300 Updated spanish translation. --- lang/es.po | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lang/es.po b/lang/es.po index f86b65d..a417578 100644 --- a/lang/es.po +++ b/lang/es.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-08-01 22:09+0200\n" "PO-Revision-Date: \n" -"Last-Translator: Tapio Vierros <tap...@gm...>\n" +"Last-Translator: Alvaro Fernando García <alvarofernandogarcía@gmail.com>\n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" @@ -473,11 +473,11 @@ msgstr "" #: ../game/screen_intro.cc:64 msgid "Settings saved as system defaults." -msgstr "" +msgstr "Configuración guardada como predeterminada." #: ../game/screen_intro.cc:64 msgid "Settings saved." -msgstr "" +msgstr "Configuración guardada." #: ../game/screen_intro.cc:146 msgid "Ctrl + S to save, Ctrl + R to reset defaults" @@ -697,27 +697,29 @@ msgstr "Habilita el modo pantalla completa al iniciar la aplicación." #: /tmp/xml2gettext.kDjC6MN5nr:34 msgid "Stereoscopic 3D" -msgstr "" +msgstr "3D Esteroscópico" #: /tmp/xml2gettext.kDjC6MN5nr:35 msgid "Enable 3D rendering of Performous." -msgstr "" +msgstr "Habilitar renderizado 3D de Performous." #: /tmp/xml2gettext.kDjC6MN5nr:36 +#, fuzzy msgid "Stereo3D type" -msgstr "" +msgstr "Tipo de 3D Esteoscópico" #: /tmp/xml2gettext.kDjC6MN5nr:37 msgid "Some modes may only get activated in fullscreen mode." -msgstr "" +msgstr "Algunos modos pueden activarse solo en modo pantalla completa." #: /tmp/xml2gettext.kDjC6MN5nr:38 +#, fuzzy msgid "Stereo3D separation" -msgstr "" +msgstr "Separación de 3D Estereoscópico" #: /tmp/xml2gettext.kDjC6MN5nr:39 msgid "The strength of the effect. Experiment with different settings for best results." -msgstr "" +msgstr "Fuerza del efecto. Experimentar con diferentes configuraciones para mejores resultados." #: /tmp/xml2gettext.kDjC6MN5nr:40 msgid "Video playback" |