Colin Guthrie [Sun, 31 Jan 2010 16:35:41 +0000 (16:35 +0000)]
augment-properties: Search for .desktop files in subfolders too.
Arun Raghavan [Wed, 29 Sep 2010 15:26:48 +0000 (20:56 +0530)]
build: Copy orc dist files to the correct directory
Arun Raghavan [Mon, 27 Sep 2010 11:27:01 +0000 (16:57 +0530)]
echo-cancel: Use S16NE for adrian module
This forces us to get native-endian samples in the adrian module so that
we can rely on the existing endianness conversion mechanisms instead of
doing it in the module.
Arun Raghavan [Thu, 23 Sep 2010 12:16:00 +0000 (17:46 +0530)]
echo-cancel: Ensure correct handling of endianness
The adrian module was using home-brewed endianness conversion instead of
the appropriate mactos, and speex assumed a little-endian host. This
fixes both of these.
Arun Raghavan [Mon, 13 Sep 2010 13:11:30 +0000 (18:41 +0530)]
echo-cancel: orc-ify some bits for optimisation
This uses Orc to optimise an inner loop in the core NLMS function of the
Adrian echo canceller.
Arun Raghavan [Tue, 21 Sep 2010 15:12:32 +0000 (20:42 +0530)]
echo-cancel: Add SSE optimisation to the adrian module
Optimises the core inner-product function, which takes the most CPU. The
SSE-optimised bits of the adrian echo canceller only if the CPU that PA
is running on actually supports SSE.
Arun Raghavan [Tue, 14 Sep 2010 09:51:49 +0000 (15:21 +0530)]
cpu: Add CPU information to pa_core
This retains CPU information (processor type and supported features) in
pa_core, so that this information can be used by modules at init time to
figure out what optimisations may be used.
Arun Raghavan [Thu, 23 Sep 2010 11:46:41 +0000 (17:16 +0530)]
build: Fix make distcheck
src/utils/qpaeq was not being dist'ed
Arun Raghavan [Mon, 20 Sep 2010 08:37:44 +0000 (14:07 +0530)]
echo-cancel: Fix out-of-tree build
Colin Guthrie [Sat, 18 Sep 2010 10:12:56 +0000 (11:12 +0100)]
x11: Use the default screen for X11 properties.
This commit restores the functionality originally included in 65e807
by Leszek Koltunski.
Colin Guthrie [Sat, 18 Sep 2010 09:37:11 +0000 (10:37 +0100)]
xcb: xcb_get_setup() can return 0, so make sure we check it before using
Colin Guthrie [Sat, 18 Sep 2010 09:35:38 +0000 (10:35 +0100)]
xcb: Ensure the XCB connection is valid before using it.
Colin Guthrie [Sat, 29 May 2010 18:33:54 +0000 (19:33 +0100)]
x11: Partially convert to XCB.
This commit mostly converts the X11 handling to XCB. There are still
some uses of XLib to deal with the X11 session handling modules, however all
client-side code should now be free of XLib and thus this should fix Bug #799
Note that this removes the screen-based changes by Leszek Koltunski
in 65e80, however this will be restored in due course.
Colin Guthrie [Tue, 14 Sep 2010 18:44:57 +0000 (19:44 +0100)]
alsa: Only set the 'first' flag to false when we actually call snd_pcm_start()
Previously, if work_done was false, we could conceivably not call snd_pcm_start().
Colin Guthrie [Sat, 4 Sep 2010 10:58:05 +0000 (11:58 +0100)]
alsa: Set the rewind safeguard proportionally to sample spec
Currently when rewinding alsa, a fixed value of 256 bytes is used,
which represents 1.33ms @ 48kHz (2ch, 16bit). This is typically fine
and due to DMA constraints we would not want to rewind less than this.
However with more demanding sample specs, (e.g. 8ch 192kHz 32bit)
256 bytes is likely not sufficient, so calculate what 1.33ms would
be and use which ever value is bigger.
Discussed with David Henningsson and Pierre-Louis Bossart here:
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/7286
Daniel Mack [Sat, 11 Sep 2010 02:06:00 +0000 (10:06 +0800)]
alsa-mixer: add profile for Traktor Kontrol S4
This new audio interface from Native Instruments has 2 stereo channels
for both input and output direction. This patch adds mappings for them.
Rico Tzschichholz [Fri, 10 Sep 2010 10:56:40 +0000 (12:56 +0200)]
echo-cancel: Fix make distcheck
Add missing files to module_echo_cancel_la_SOURCES
Add Adrian license file to EXTRA_DIST
Wim Taymans [Thu, 9 Sep 2010 14:20:20 +0000 (16:20 +0200)]
echo-cancel: pause timer when echo canceling is off
While the sink or source is in the suspended state, disable the timer
callback because we are not doing any echo canceling then.
Wim Taymans [Thu, 9 Sep 2010 10:39:15 +0000 (12:39 +0200)]
echo-cancel: improve accuracy
Make the echo canceler drift up to 1ms now that things are more accurate.
Add 10 samples of headroom to allow for timing inaccuracies.
Wim Taymans [Thu, 9 Sep 2010 10:29:59 +0000 (12:29 +0200)]
alsa: make defines for smoother configuration
Make new defines for the smoother window size and adjust time constants instead
of reusing some unrelated constant.
Increase the smoother window size even more because the bigger it is, the
better. Since we have a 200ms max update interval and the max smoother history
is 64 entries, 10seconds is a good default.
Decrease the smoother adjust time to 1 second. The previous value of 4 seconds
was too much to adapt quickly after a resume.
Wim Taymans [Wed, 8 Sep 2010 16:49:48 +0000 (18:49 +0200)]
echo-cancel: rework alignment code
Rework the code to align capture and playback samples so that we can keep more
accurate timings.
Wim Taymans [Wed, 8 Sep 2010 11:26:39 +0000 (13:26 +0200)]
alsa: work around slightly broken _delay implementations
Use snd_pcm_avail_delay() in pa_alsa_safe_delay() so that we can check the delay
value against the avail value and patch it up when it looks invalid. Only do
this for capture.
Wim Taymans [Mon, 6 Sep 2010 15:48:56 +0000 (17:48 +0200)]
alsa-time-test: make test usable for capture too
Extend the test to also work for capture devices.
Wim Taymans [Mon, 6 Sep 2010 13:26:19 +0000 (15:26 +0200)]
alsa-source: refactor smoother and device start
Move the code to start the capture and the smoother closer together to improve
smoother accuracy.
Rework things to look more like the alsa sink where the device is started in
only one place.
Wim Taymans [Mon, 6 Sep 2010 13:22:26 +0000 (15:22 +0200)]
smoother: avoid losing precision
Avoid losing precision by subtracting uint64 values before converting them to
doubles.
Arun Raghavan [Tue, 7 Sep 2010 09:37:39 +0000 (15:07 +0530)]
echo-cancel: Mark immutable parameters as const in vfunc
Marks the recording and playback streams as const in the
pa_echo_canceller->run method for clarity.
Arun Raghavan [Tue, 7 Sep 2010 09:25:38 +0000 (14:55 +0530)]
echo-cancel: Make blocksize a module-wide parameter
Since all algorithms will need to specify a block size (the amount of
data to be processed together), we make this a common parameter and have
the implementation set it at initialisation time.
Arun Raghavan [Tue, 7 Sep 2010 08:32:32 +0000 (14:02 +0530)]
echo-cancel: Allow selection of AEC method using modargs
This adds an "aec_method" module argument to allow us to select the AEC
implementation to use.
Arun Raghavan [Tue, 7 Sep 2010 08:13:58 +0000 (13:43 +0530)]
echo-cancel: Add alternative echo-cancellation implementation
This adds Andre Adrian's AEC implementation from his intercom project
(http://andreadrian.de/intercom/) as an alternative to the speex echo
cancellation routines. Since the implementation was in C++ and not in
the form of a library, I have converted the code to C and made a local
copy of the implementation.
The implementation actually works on floating point data, so we can
tweak it to work with both integer and floating point samples (currently
we just use S16LE).
Arun Raghavan [Mon, 6 Sep 2010 16:53:51 +0000 (22:23 +0530)]
echo-cancel: Let AEC module determine source/sink spec
Since the source and sink specification will need to be determined by
the AEC algorithm (can it handle multi-channel audio, does it work with
a fixed sample rate, etc.), we negotiate these using inout parameters at
initialisation time.
There is opportunity to make the sink-handling more elegant. Since the
sink data isn't used for playback (just processing), we could pass
through the data as-is and resample to the required spec before using in
the cancellation algorithm. This isn't too important immediately, but
would be nice to have.
Arun Raghavan [Mon, 6 Sep 2010 15:54:55 +0000 (21:24 +0530)]
echo-cancel: Pass arguments to the specific canceller module
This allows us to tweak module parameters for whichever AEC module is
chosen.
Arun Raghavan [Mon, 6 Sep 2010 10:21:20 +0000 (15:51 +0530)]
echo-cancel: Split out speex code from the core module
This splits out the echo-cancelling core from the PA-specific bits to
allow us to plug in other echo-cancellation engines.
Arun Raghavan [Mon, 6 Sep 2010 08:09:25 +0000 (13:39 +0530)]
echo-cancel: Move the module into it's own directory
This will make splitting out the canceller parts cleaner.
Colin Guthrie [Sat, 4 Sep 2010 16:07:23 +0000 (17:07 +0100)]
cli: Allow .include on directories as well as files.
When .including a directory, all files with the extension '.pa'
in that folder will be parsed in alphabetical order.
Wim Taymans [Fri, 3 Sep 2010 14:47:44 +0000 (16:47 +0200)]
alsa: increase the smoother window
40ms for the smoother window is too small. Increase the size to 4 seconds, like
we do for the sinks.
Wim Taymans [Tue, 31 Aug 2010 16:04:33 +0000 (18:04 +0200)]
echo-cancel: keep frame_size a power of 2
The speex echo canceler prefers a power of 2 for the frame size. Round down the
ideal frame_size to the nearest power of two. This makes sure we don't create
more than the requested frame_size_ms latency while still providing a power of 2
to the speex echo canceller.
Wim Taymans [Tue, 24 Aug 2010 11:29:18 +0000 (13:29 +0200)]
echo-cancel: improve debug
Wim Taymans [Tue, 24 Aug 2010 09:46:18 +0000 (11:46 +0200)]
echo-cancel: tweak the resync code a little
Try to keep the drift between source and sink within 4ms now that we have more
accurate timings.
Don't force a resync on latency changes but let the drift code handle it.
Wim Taymans [Tue, 24 Aug 2010 09:22:20 +0000 (11:22 +0200)]
echo-cancel: use the phone media role
Tag the source and sink with the phone media roles so that they automatially
connect to phone streams such as Empathy when using the intended-rols module.
Tanu Kaskinen [Mon, 30 Aug 2010 15:34:41 +0000 (18:34 +0300)]
alsa-sink/source: Use the "namereg_fail" module argument.
This allows the name registry to mangle the names of auto-detected sinks and
sources to be unique, which makes it possible to load multiple identical sound
cards using module-udev-detect.
At least for now the module argument can only be passed through
module-alsa-card.
Tanu Kaskinen [Tue, 24 Aug 2010 14:47:25 +0000 (17:47 +0300)]
alsa-sink: Get rid of a compiler warning regarding rewind_safeguard type.
GCC gave a warning, because the pointer given to pa_modargs_get_value_u32() had
type size_t instead of uint32_t.
Tanu Kaskinen [Tue, 24 Aug 2010 15:17:19 +0000 (18:17 +0300)]
module-udev-detect: When loading module-alsa-card, use namereg_fail=false.
Tanu Kaskinen [Tue, 24 Aug 2010 14:33:58 +0000 (17:33 +0300)]
module-alsa-card: New argument: namereg_fail.
This is added so that module-udev-detect can load multiple module-alsa-card
instances with the same card name - forcing namereg_fail to false allows the
name registry to mangle the card names to be unique.
Wim Taymans [Mon, 23 Aug 2010 15:47:03 +0000 (17:47 +0200)]
echo-cancel: take into account snapshot delay
Take into account the delay between taking the snapshot from the source and the
sink. Improves the quality of the timings.
Wim Taymans [Mon, 23 Aug 2010 14:38:47 +0000 (16:38 +0200)]
make echo-cancel module that exposes a new sink and source
Make a new echo-cancel module that exposes a new sink and source. All data sent
to the sink is matched against the data captured from the source and
echo-canceled using the speex echo canceler.
Wim Taymans [Mon, 23 Aug 2010 09:59:13 +0000 (11:59 +0200)]
alsa: resume smoother after unsuspend
The smoother is paused when the device is suspended but never resumed on
unsuspend. Pass the paused = FALSE flag to the pa_smoother_reset() call to make
it unpause when unsuspending. This patch improves source timings quite a bit.
Tanu Kaskinen [Fri, 13 Aug 2010 10:25:41 +0000 (13:25 +0300)]
core: New function: pa_module_update_proplist().
Tanu Kaskinen [Thu, 1 Jul 2010 12:49:38 +0000 (15:49 +0300)]
loopback: Make stream names and roles configurable.
Pierre-Louis Bossart [Fri, 16 Jul 2010 21:46:28 +0000 (16:46 -0500)]
AC3 passthrough support
Second version after Tanu's feedback
TODO:
- notify client that volume control is disabled
- change sink rate in passthrough mode if needed
- automatic detection of passthrough mode instead of hard
coded profile names
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Tanu Kaskinen [Mon, 2 Aug 2010 11:12:26 +0000 (14:12 +0300)]
dbusiface-core: Track sinks and sources using synchronous hooks instead of asynchronous subscription events.
Using the subscription events caused an assertion crash sometimes when a sink
was removed and a new sink was created (i.e. card profile change) and a stream
was moved from the removed sink to the new sink. The stream dbus object's
subscription callback got a change event before the core dbus object's
subscription callback got the sink remove/creation events. The stream's
subscription callback then queried the core for the object path of the new
sink, and since the core was not yet aware of the new sink, an assertion was
hit in pa_dbusiface_device_get_path().
Now that the core uses synchronous hooks to keep the sink and source lists up
to date, this particular problem can't occur anymore.
Lennart Poettering [Sun, 18 Jul 2010 23:27:15 +0000 (01:27 +0200)]
udev: fix hex decoding
Pierre-Louis Bossart [Wed, 14 Jul 2010 16:34:45 +0000 (11:34 -0500)]
alsa: add missing iec958 files from previous commit
Pierre-Louis Bossart [Mon, 12 Jul 2010 17:24:22 +0000 (12:24 -0500)]
alsa: fix mixer profiles, add passthrough config
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Pierre-Louis Bossart [Tue, 13 Jul 2010 20:27:40 +0000 (15:27 -0500)]
alsa: disable rewinds when using ALSA plugins
This is required to when playing on a52: device, rewind is broken
in those plugins.
Credits to Michael Rans <mcarans@yahoo.co.uk> for finding this
workaround, and Tanu Kaskinen <tanuk@iki.fi> for providing
valuable feedback.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Colin Guthrie [Sun, 6 Jun 2010 20:19:34 +0000 (21:19 +0100)]
alsa: Fix assertion on mmap_write (triggered via a52 plugin)
Colin Guthrie [Sat, 5 Jun 2010 17:21:31 +0000 (18:21 +0100)]
Merge remote branch 'tanuk2/fixes'
Daniel Mack [Fri, 19 Mar 2010 16:32:21 +0000 (17:32 +0100)]
modules/coreaudio: replace deprecated functions
All API calls are now consolidated in AudioObject* calls, the old model
has been deprecated in 10.6. Follow that change.
Tanu Kaskinen [Thu, 29 Apr 2010 12:06:44 +0000 (15:06 +0300)]
dbus: Stop polling every 10 seconds to check whether all clients are still alive.
Instead, watch for org.freedesktop.DBus.Disconnected signals.
Tanu Kaskinen [Thu, 15 Apr 2010 10:11:57 +0000 (13:11 +0300)]
stream-restore: When changing restore entries with D-Bus, apply the changes immediately.
Tanu Kaskinen [Tue, 6 Apr 2010 09:19:46 +0000 (12:19 +0300)]
dbus: Fix slightly messed up assertions.
Tanu Kaskinen [Tue, 6 Apr 2010 07:58:30 +0000 (10:58 +0300)]
dbus: Use a struct as the hashmap items for listening_signals.
Previously we used libdbus's memory as keys in listening_signals, which caused
that the memory of the hashmap keys got overwritten, which led to that signals
weren't sent properly.
Tanu Kaskinen [Thu, 1 Apr 2010 08:17:52 +0000 (11:17 +0300)]
stream-restore: Fix segfaulting. The dbus entry callbacks expect a dbus_entry pointer instead of a userdata pointer.
Tanu Kaskinen [Mon, 29 Mar 2010 05:25:42 +0000 (08:25 +0300)]
dbus: Fix segfault when receiving a property access call that isn't permitted.
Tanu Kaskinen [Mon, 29 Mar 2010 05:23:33 +0000 (08:23 +0300)]
dbus: Initialize properly the type field of new server structs.
Tanu Kaskinen [Wed, 17 Mar 2010 11:35:01 +0000 (13:35 +0200)]
dbus: Make it possible to allow remote connections from outside localhost.
Tanu Kaskinen [Thu, 25 Feb 2010 06:39:42 +0000 (08:39 +0200)]
cli: Increase the command maximum length from 1024 to 2048.
Tanu Kaskinen [Fri, 8 Jan 2010 09:09:25 +0000 (11:09 +0200)]
alsa: Fix log output to inform about positive base volumes correctly.
Positive base volume can happen, if the alsa volume range has been limited. For
example, in an embedded environment it may be known that the sound device is
capable of louder output than what the speakers can handle, so setting the max
volume below 0 dB makes sense.
Tanu Kaskinen [Tue, 29 Dec 2009 12:53:40 +0000 (14:53 +0200)]
alsa-mixer: Replace erroneous PA_ALSA_VOLUME_IGNORE with PA_ALSA_ENUMERATION_IGNORE.
This fix doesn't have any concrete effect, because the two constants have the
same value.
Tanu Kaskinen [Wed, 16 Dec 2009 09:51:27 +0000 (11:51 +0200)]
alsa-mixer: Use pa_xfree() instead of pa_xstrdup() for freeing a string.
Colin Guthrie [Sat, 8 May 2010 12:47:19 +0000 (13:47 +0100)]
rtp: Fix bracketing in pa_rtp_recv.
The syntactically correct error meant that the timestamp was always
marked as found and only the first header was checked.
In the case where the timestamp was the first header, things
would have worked as expected.
Thanks to pino for reporting via bug refs #818
Jez Austin [Mon, 22 Mar 2010 15:09:34 +0000 (16:09 +0100)]
socket-client: properly handle asyncns failures
We fail to detect when people disable IPv6 in there kernels. This patch
makes sure we don't ignore this error condition.
http://pulseaudio.org/ticket/752
https://bugzilla.mozilla.org/show_bug.cgi?id=533470
http://bugs.freedesktop.org/show_bug.cgi?id=25742
Colin Guthrie [Wed, 17 Mar 2010 15:30:32 +0000 (15:30 +0000)]
intended-roles: Do not pick monitor sources when doing automatic role-based device selection
Daniel T Chen [Wed, 10 Mar 2010 23:14:11 +0000 (18:14 -0500)]
alsa: Handle 'Digital Mic' as an 'Input Source'
BugLink: https://launchpad.net/bugs/533877
Some laptops have 'Digital Mic' exposed as an 'Input Source', e.g., Dell
XPS 1330, so handle these, too.
Kees Cook [Wed, 3 Mar 2010 05:33:34 +0000 (21:33 -0800)]
core-util: ensure that we chmod only the dir we ourselves created
Lennart Poettering [Fri, 7 May 2010 23:50:05 +0000 (01:50 +0200)]
tests: fix once test
Pierre-Louis Bossart [Thu, 29 Apr 2010 15:48:11 +0000 (10:48 -0500)]
add rewind-safeguard parameter
Rewinding the ring buffer completely causes audible issues with DMAs.
Previous solution didn't work with tsched=0, and used tsched_watermark
for guardband, which isn't linked to hardware and could become really high
if underflows occurred.
Added separate parameter that can be tuned to hardware limitations and size
of DMA bursts.
David Henningsson [Mon, 3 May 2010 09:41:47 +0000 (11:41 +0200)]
jack: Prevent crash on jack server shutdown
Lennart Poettering [Mon, 3 May 2010 11:28:15 +0000 (13:28 +0200)]
thread: name all threads so that the names appear in /proc/$PID/task/$TID/comm
Colin Guthrie [Thu, 25 Feb 2010 14:00:08 +0000 (14:00 +0000)]
build-sys: Mention dbus support in the summary
Lennart Poettering [Thu, 25 Feb 2010 01:41:09 +0000 (02:41 +0100)]
virtual: when fixed block sizes are used the memblockq must have a silence block
Lennart Poettering [Thu, 25 Feb 2010 01:26:03 +0000 (02:26 +0100)]
virtual: document how to implement fixed block size filters
Lennart Poettering [Thu, 25 Feb 2010 01:10:45 +0000 (02:10 +0100)]
memblockq: implement new call pa_memblockq_peek_fixed_size()
Lennart Poettering [Wed, 24 Feb 2010 23:39:56 +0000 (00:39 +0100)]
virtual: minor simplifications for the virtual sink
Lennart Poettering [Wed, 24 Feb 2010 23:39:06 +0000 (00:39 +0100)]
equalizer: various smaller cleanups for m-e-s
Lennart Poettering [Tue, 23 Feb 2010 17:41:18 +0000 (18:41 +0100)]
core: rework how stream volumes affect sink volumes
Lennart Poettering [Tue, 23 Feb 2010 02:23:22 +0000 (03:23 +0100)]
alsa: don't make use of tsched related variables when tsched is disabled
Lennart Poettering [Mon, 22 Feb 2010 23:48:35 +0000 (00:48 +0100)]
esd,simple: use pa_memblockq_pop_missing()
We need to use pa_memblockq_pop_missing() for all request handling,
including the initial request, because otherwise the counters will be
stay off during the entire runtime.
This should fix:
https://bugzilla.redhat.com/show_bug.cgi?id=559467
Lennart Poettering [Tue, 23 Feb 2010 00:23:41 +0000 (01:23 +0100)]
various modernizations
Lennart Poettering [Tue, 23 Feb 2010 00:20:20 +0000 (01:20 +0100)]
iochannel: remove fd from poll() when we don't care from events
This should make it unlikely that we loop on SIGHUP indefinitely.
Also, this makes it possible for callbacks not to process all events and
still not busy loop.
Lennart Poettering [Mon, 22 Feb 2010 02:40:29 +0000 (03:40 +0100)]
native: improve logging for buffer_attrs
Lennart Poettering [Mon, 22 Feb 2010 02:22:28 +0000 (03:22 +0100)]
suspend-on-idle: resume audio device even for initially corked streams
We need to resume audio devices even for streams that are created in
corked stat, so that the latency ranges of the audio device are known
during the initial latency negotiation. If we don't the latency
negotiation will be based on placeholder data and changed later on which
clients do not expect.
This should fix issues with Skype.
https://bugzilla.redhat.com/show_bug.cgi?id=554929
Lennart Poettering [Mon, 22 Feb 2010 03:54:24 +0000 (04:54 +0100)]
alsa: reset max_rewind/max_request while suspending
Lennart Poettering [Sun, 21 Feb 2010 21:00:49 +0000 (22:00 +0100)]
alsa-util: strip spaces from ALSA card/pcm names
http://pulseaudio.org/ticket/778
Lennart Poettering [Sun, 21 Feb 2010 21:00:16 +0000 (22:00 +0100)]
conf-parser: make use of pa_strip() wherever applicable
Lennart Poettering [Sun, 21 Feb 2010 20:59:53 +0000 (21:59 +0100)]
core-util: introduce generic function pa_strip()
Matthijs Kooijman [Sun, 21 Feb 2010 20:46:06 +0000 (21:46 +0100)]
http: support HTTP HEAD
http://pulseaudio.org/ticket/781
Lennart Poettering [Sun, 21 Feb 2010 20:16:33 +0000 (21:16 +0100)]
i18n: run make update-po
Lennart Poettering [Sun, 21 Feb 2010 20:15:10 +0000 (21:15 +0100)]
i18n: update LINGUAS
Cheng-Chia Tseng [Sat, 20 Feb 2010 09:58:28 +0000 (09:58 +0000)]
l10n: Updates to Chinese (Taiwan) (zh_TW) translation
Transmitted-via: Transifex (www.transifex.net)
Cheng-Chia Tseng [Sat, 20 Feb 2010 04:57:35 +0000 (04:57 +0000)]
l10n: Updates to Chinese (Taiwan) (zh_TW) translation
Transmitted-via: Transifex (www.transifex.net)