Gregory Petrosyan
2011-04-10 14:19:12 UTC
Hurray!
I'm pleased to announce cmus 2.4.0-rc0, first (and, hopefully, last :-)
release candidate for the long-awaited version 2.4.0.
With tons of changes to cmus' internals, three features really stand out for
end-users: live filtering, playback resume support and long format options,
including new %{codec} and %{bitrate}.
Live filtering is immensely useful and addictive feature, especially if you
have a huge music library. Press 'L' and start typing, and you'll understand
what I mean. To reset the live filter, type 'L<Enter>'. Also, there's no need
to e.g. type "Björk" to filter "Björk" â "bjork" (note: no 'ö') will do, cmus
is smart!
To enable resume support, simply add "set resume=true" to your ~/.cmus/rc.
All of these awesome features were contributed by Johannes WeiÃl, who has
written almost 150 patches for this release. Thanks Johannes!
I'd like to encourage everybody to test this RC as hard as possible, to help
make 2.4.0 the best release of cmus ever.
Grab the source tarball here:
https://sourceforge.net/projects/cmus/files/cmus-v2.4.0-rc0.tar.bz2/download
Or get cmus via git:
$ git clone git://gitorious.org/cmus/cmus.git
Installation is a classical "./configure && make && sudo make install", as
always.
P.S. Don't hesitate to point out any mistakes or omissions in this release
announcement!
Gregory
--
Adam Hoka (2):
Cast time_t to long long and use %lld so it works on platforms where time_t is 64bit.
isspace needs its argument casted to int.
Evan (1):
USE_FALLBACK_IP config option to enable catch-all input plugin
Gregory Petrosyan (28):
Merge branch 'maint'
output.c: simplify trivial forwarding functions
Merge branch 'jl/nowakeups'
Merge branch 'jw/remote'
Merge branch 'jw/search-wrap'
Merge commit 'jasonwoof/search-aa'
Update TODO
Merge branch 'maint'
Merge branch 'maint'
http: add 'uri' field to struct http_uri
http: support HTTP proxies via $http_proxy
http: add Basic proxy authorization support
Merge branch 'xc/valgrind'
track.c: remove unused reshuffle() function
track.c: remove misleading comment
cache: fix cache invalidation bug caused by commit 594aa
Merge branch 'rbtree2'
Merge branch 'maint'
pulse: don't set useless stream properties
Merge branch 'ffmpeg-fallback'
Merge branch 'maint'
tree: better album date calculation
tree: properly update artist/album position when changing their sort attributes
roar: silence 'defined but not used' compiler warning
Make u_casefold_char() work properly on OS X and Windows
id3: fix id3_skiplen() for UTF-16 and UTF-16BE
id3: fix heavily broken comments parsing
cmus 2.4.0-rc0
Jan-Philipp Litza (1):
Use pthread_cond_* while waiting for beginning of playback
Jason Woofenden (3):
Make search wrap when reaching the end/beginning
Make albumartist tag searchable
add :w and :wq aliases
Johannes WeiÃl (143):
server: write info_msg() and error_msg() to client
save: add -q option for saving queue
save: add -L flag, which outputs filtered library
save: filename "-" outputs to stdout
server: move escape() from server.c to misc.c
save: add -e option for extended output
doc: save -e -L -q, cmus-remote examples
configure: add -Wformat-security to gcc options
speedup: code reordering in comments.c
speedup: use rbtree for sorted and shuffle list
rbtree: rename loop defines
fix segfault when adding to queue
fix order of sorted view (has been reversed)
add Mutt-like filter shortcuts
utils: add N_ELEMENTS macro
utf8_encode: rename to convert.[ch], generalize
strip unneeded extern keyword
faster version of u_strlen()
make using_utf8 and charset global
introduce collation comparison
do not mind diacritical marks (accents) when searching / filtering
gen_decomp.py: expand special mapping
improve string handling for short filter expressions
bugfix: recognize boolean keys in short filters
ffmpeg: fix compiler warning
ffmpeg: use new metadata API
bugfix: do_u_strncase_equal() ignores last character
track_info.c: cosmetic change
track_info_cmp(): compare filename with strcoll() instead of strcasecmp()
ui_curses.c: remove code duplication
bugfix: reintroduce safe u_strlen()
convert filter and search expressions to UTF-8
u_strcasestr_filename(): correctly handle non-utf8 cases
fix gcc-4.6 warnings
cmdline: add ctrl-w and friends
tree: add artist_new() and album_new() functions
use rbtree for the library tree view
fix sorted view (again)
editable: use rbtree for sorting
fix: put tracks with blank artist on top in view 2
speedup track info comparison
track_info_cmp(): use collation keys
tree: use collation keys for sort names
compiler.h: make __builtin_expect depend on __GNUC__
better offsetof() and container_of() macros
scripts/checks.sh: fix function test
config/checks.sh: detect -rdynamic flag
only enable colors if use_default_colors() is there
fix gcc compile warning on mipsel platforms
uchar: faster (and more usable) version of u_get_char()
portability fix: standard conform use of anonymous member
fix: sidestep glibc anomaly when using non-gnu compilers
silence tcc warning
portability: wrap add_ti_cb callback in struct
cosmetic change: replace xmalloc with xnew where possible
portability: remove conditionals with omitted operands
portability: replace zero-length arrays with flexible array members
portability: include missing headers
mp4: add com.apple.iTunes freeform tags
mpc: fix replay gain calculation
fix clang warning
utils.sh: comment $CROSS variable
checks.sh: better check for endianness
configure: use pkg-config for flac detection
expr.c: better recognition of short filter expressions
add live filter command (:live-filter)
add overlay status info for live filter
remove item from TODO
wav.c: add RIFF metadata support
utils.h: use builtin byte swapping functions
player.c: add support for 32bit softvol scaling
flac.c: use swapping functions in utils.h
oss.c: support sample size of 32bit
wav.c: add extensible wave support
wav.c: support 32bit wave files
wav.c: support seeking for other than 2ch 16/8bit
mad: only use xing.nr_frames when != 0
speedup: do fast filtering if no filter is set
ffmpeg.c: reset frame_size to AVCODEC_MAX_AUDIO_FRAME_SIZE in loop
ffmpeg.c: correctly scale seeking position
ffmpeg.c: add .mka extension
fix build error on NetBSD (bswap16/32)
cache: fix writing of tracks with more than 32 tags
flac: fix segfault when playing corrupt flac files
pulse: fix playback of multi-channel audio files
pulse: fix deadlock
roar: don't write warning messages to stderr
output.c: better autodetect output plugin
change order of output plugins
tree.c: fix infinite loop when searching
tree.c: collapse artists after continuing search
plugins: handle missing dependencies more gracefully
add backwards tab completion (s-tab)
ffmpeg.c: correctly detect sample format
player.c: support 24bit scaling
format_print.h: avoid code duplication
add long track format options
enable display / sorting of replay gain values
Doc: update sort keys / format strings
support percentage for format width
options.c: change default format_playlist
add bitrate to format options / sort keys
add codec to format options / sort keys
add input plugin priorities and better fallback
ffmpeg.c: add more file types
input.c: fix frame_size check in BUG_ON
oss: support multi channel audio
oss: better oss_buffer_space()
pcm: use native byte order
vorbis: always use native byte order
mikmod: fix playback on bigendian systems
modplug: fix playback on bigendian systems
ffmpeg: fix playback on bigendian systems
make iconv dependency optional
configure: better check when using app_config
compiler.h: use __builtin_offsetof only for gcc version > 3
ffmpeg: enable compilation for libavcodec < 51.65
id3: better date parsing
player.c: replay gain scaling works without peak
mad: enable LAME replay gain info
tree: do not use artistsort for compilations
tree: fix smart artist sort name behaviour
tree: fix sorting of albums
fix segfault when changing sort keys while adding tracks
fix live filtering for integer expressions
lib.c: do not consider live filter when doing lib_for_each()
oss.c: support sample size of 24bit
expr.c: add bitrate and codec to filter expressions
Doc: update sort keys / format strings
expr.c: fix filtering for unset date
mikmod: fix mik_read_comments()
mikmod: return codec name
modplug: return codec names
modplug: remove compressed types
add option to resume playback on startup
resume: also restore current live-filter
resume: save queue to $CMUS_HOME/queue.pl
add :shell command
spawn status_display_program in the background
ui_curses.c: cleanup usage of player_info
cmdline: change filename delimiter to just '/'
track_info_cmp: fix comparison of doubles
ui_curses.c: fix severe display errors if iconv fails
Mikhail Gonchar (1):
id3: fix UTF-16 handling
Philipp Schafft (1):
Add RoarAudio output plugin
Xavier Chantry (6):
gitignore : add backup files *~
Fix a few pointer types warning
history : fix invalid read and memory leak
track_info : fix invalid read
player : add new buffer_free on exit
ffmpeg : fix memleak in ffmpeg_input_free
I'm pleased to announce cmus 2.4.0-rc0, first (and, hopefully, last :-)
release candidate for the long-awaited version 2.4.0.
With tons of changes to cmus' internals, three features really stand out for
end-users: live filtering, playback resume support and long format options,
including new %{codec} and %{bitrate}.
Live filtering is immensely useful and addictive feature, especially if you
have a huge music library. Press 'L' and start typing, and you'll understand
what I mean. To reset the live filter, type 'L<Enter>'. Also, there's no need
to e.g. type "Björk" to filter "Björk" â "bjork" (note: no 'ö') will do, cmus
is smart!
To enable resume support, simply add "set resume=true" to your ~/.cmus/rc.
All of these awesome features were contributed by Johannes WeiÃl, who has
written almost 150 patches for this release. Thanks Johannes!
I'd like to encourage everybody to test this RC as hard as possible, to help
make 2.4.0 the best release of cmus ever.
Grab the source tarball here:
https://sourceforge.net/projects/cmus/files/cmus-v2.4.0-rc0.tar.bz2/download
Or get cmus via git:
$ git clone git://gitorious.org/cmus/cmus.git
Installation is a classical "./configure && make && sudo make install", as
always.
P.S. Don't hesitate to point out any mistakes or omissions in this release
announcement!
Gregory
--
Adam Hoka (2):
Cast time_t to long long and use %lld so it works on platforms where time_t is 64bit.
isspace needs its argument casted to int.
Evan (1):
USE_FALLBACK_IP config option to enable catch-all input plugin
Gregory Petrosyan (28):
Merge branch 'maint'
output.c: simplify trivial forwarding functions
Merge branch 'jl/nowakeups'
Merge branch 'jw/remote'
Merge branch 'jw/search-wrap'
Merge commit 'jasonwoof/search-aa'
Update TODO
Merge branch 'maint'
Merge branch 'maint'
http: add 'uri' field to struct http_uri
http: support HTTP proxies via $http_proxy
http: add Basic proxy authorization support
Merge branch 'xc/valgrind'
track.c: remove unused reshuffle() function
track.c: remove misleading comment
cache: fix cache invalidation bug caused by commit 594aa
Merge branch 'rbtree2'
Merge branch 'maint'
pulse: don't set useless stream properties
Merge branch 'ffmpeg-fallback'
Merge branch 'maint'
tree: better album date calculation
tree: properly update artist/album position when changing their sort attributes
roar: silence 'defined but not used' compiler warning
Make u_casefold_char() work properly on OS X and Windows
id3: fix id3_skiplen() for UTF-16 and UTF-16BE
id3: fix heavily broken comments parsing
cmus 2.4.0-rc0
Jan-Philipp Litza (1):
Use pthread_cond_* while waiting for beginning of playback
Jason Woofenden (3):
Make search wrap when reaching the end/beginning
Make albumartist tag searchable
add :w and :wq aliases
Johannes WeiÃl (143):
server: write info_msg() and error_msg() to client
save: add -q option for saving queue
save: add -L flag, which outputs filtered library
save: filename "-" outputs to stdout
server: move escape() from server.c to misc.c
save: add -e option for extended output
doc: save -e -L -q, cmus-remote examples
configure: add -Wformat-security to gcc options
speedup: code reordering in comments.c
speedup: use rbtree for sorted and shuffle list
rbtree: rename loop defines
fix segfault when adding to queue
fix order of sorted view (has been reversed)
add Mutt-like filter shortcuts
utils: add N_ELEMENTS macro
utf8_encode: rename to convert.[ch], generalize
strip unneeded extern keyword
faster version of u_strlen()
make using_utf8 and charset global
introduce collation comparison
do not mind diacritical marks (accents) when searching / filtering
gen_decomp.py: expand special mapping
improve string handling for short filter expressions
bugfix: recognize boolean keys in short filters
ffmpeg: fix compiler warning
ffmpeg: use new metadata API
bugfix: do_u_strncase_equal() ignores last character
track_info.c: cosmetic change
track_info_cmp(): compare filename with strcoll() instead of strcasecmp()
ui_curses.c: remove code duplication
bugfix: reintroduce safe u_strlen()
convert filter and search expressions to UTF-8
u_strcasestr_filename(): correctly handle non-utf8 cases
fix gcc-4.6 warnings
cmdline: add ctrl-w and friends
tree: add artist_new() and album_new() functions
use rbtree for the library tree view
fix sorted view (again)
editable: use rbtree for sorting
fix: put tracks with blank artist on top in view 2
speedup track info comparison
track_info_cmp(): use collation keys
tree: use collation keys for sort names
compiler.h: make __builtin_expect depend on __GNUC__
better offsetof() and container_of() macros
scripts/checks.sh: fix function test
config/checks.sh: detect -rdynamic flag
only enable colors if use_default_colors() is there
fix gcc compile warning on mipsel platforms
uchar: faster (and more usable) version of u_get_char()
portability fix: standard conform use of anonymous member
fix: sidestep glibc anomaly when using non-gnu compilers
silence tcc warning
portability: wrap add_ti_cb callback in struct
cosmetic change: replace xmalloc with xnew where possible
portability: remove conditionals with omitted operands
portability: replace zero-length arrays with flexible array members
portability: include missing headers
mp4: add com.apple.iTunes freeform tags
mpc: fix replay gain calculation
fix clang warning
utils.sh: comment $CROSS variable
checks.sh: better check for endianness
configure: use pkg-config for flac detection
expr.c: better recognition of short filter expressions
add live filter command (:live-filter)
add overlay status info for live filter
remove item from TODO
wav.c: add RIFF metadata support
utils.h: use builtin byte swapping functions
player.c: add support for 32bit softvol scaling
flac.c: use swapping functions in utils.h
oss.c: support sample size of 32bit
wav.c: add extensible wave support
wav.c: support 32bit wave files
wav.c: support seeking for other than 2ch 16/8bit
mad: only use xing.nr_frames when != 0
speedup: do fast filtering if no filter is set
ffmpeg.c: reset frame_size to AVCODEC_MAX_AUDIO_FRAME_SIZE in loop
ffmpeg.c: correctly scale seeking position
ffmpeg.c: add .mka extension
fix build error on NetBSD (bswap16/32)
cache: fix writing of tracks with more than 32 tags
flac: fix segfault when playing corrupt flac files
pulse: fix playback of multi-channel audio files
pulse: fix deadlock
roar: don't write warning messages to stderr
output.c: better autodetect output plugin
change order of output plugins
tree.c: fix infinite loop when searching
tree.c: collapse artists after continuing search
plugins: handle missing dependencies more gracefully
add backwards tab completion (s-tab)
ffmpeg.c: correctly detect sample format
player.c: support 24bit scaling
format_print.h: avoid code duplication
add long track format options
enable display / sorting of replay gain values
Doc: update sort keys / format strings
support percentage for format width
options.c: change default format_playlist
add bitrate to format options / sort keys
add codec to format options / sort keys
add input plugin priorities and better fallback
ffmpeg.c: add more file types
input.c: fix frame_size check in BUG_ON
oss: support multi channel audio
oss: better oss_buffer_space()
pcm: use native byte order
vorbis: always use native byte order
mikmod: fix playback on bigendian systems
modplug: fix playback on bigendian systems
ffmpeg: fix playback on bigendian systems
make iconv dependency optional
configure: better check when using app_config
compiler.h: use __builtin_offsetof only for gcc version > 3
ffmpeg: enable compilation for libavcodec < 51.65
id3: better date parsing
player.c: replay gain scaling works without peak
mad: enable LAME replay gain info
tree: do not use artistsort for compilations
tree: fix smart artist sort name behaviour
tree: fix sorting of albums
fix segfault when changing sort keys while adding tracks
fix live filtering for integer expressions
lib.c: do not consider live filter when doing lib_for_each()
oss.c: support sample size of 24bit
expr.c: add bitrate and codec to filter expressions
Doc: update sort keys / format strings
expr.c: fix filtering for unset date
mikmod: fix mik_read_comments()
mikmod: return codec name
modplug: return codec names
modplug: remove compressed types
add option to resume playback on startup
resume: also restore current live-filter
resume: save queue to $CMUS_HOME/queue.pl
add :shell command
spawn status_display_program in the background
ui_curses.c: cleanup usage of player_info
cmdline: change filename delimiter to just '/'
track_info_cmp: fix comparison of doubles
ui_curses.c: fix severe display errors if iconv fails
Mikhail Gonchar (1):
id3: fix UTF-16 handling
Philipp Schafft (1):
Add RoarAudio output plugin
Xavier Chantry (6):
gitignore : add backup files *~
Fix a few pointer types warning
history : fix invalid read and memory leak
track_info : fix invalid read
player : add new buffer_free on exit
ffmpeg : fix memleak in ffmpeg_input_free