MOC .cue sheet support vol.2

http://moc.daper.net/node/355 — here is discussion about .cue sheet support, but in current version from SVN I've installed few days ago this feature is not exist, but it would be very useful. Does anybody know is it in TODO list or something?

p.s.: my friend is developer of GNU Gk, so I will ask him to help in writing this patch for MOC (but don't know how soon he accept this, unfortenatuly). It is all that I can do to help because my programming skills in C are very poor :)

Thanks for your answers.

Forums:

update: user kotlik in thread that I've read said that he can generate the patch, but it was 4 months ago (

patch doesn't work any more

Hi, I was working on this for some time and it's in usable state. I will send patch soon.

Lukas

It is really great, thank you :)

Hi all,
sorry for long delay. Here is first version of cue sheet support patch against actual svn version. It's not very much tested and there is possibility of crashing, but for me it works fine. Hope that for you too ;-)

kotlik

Hello, I've tried to compile moc after downloading and patching sources from SVN (revision 2161), but make command have crashed with the following error:

In file included from ../../decoder.h:4,
from sidplay2.h:26,
from sidplay2.cc:14:
../../audio.h:245: error: use of enum 'file_type' without previous declaration
../../audio.h:245: error: invalid type in declaration before ';' token
make[3]: *** [libsidplay2_decoder_la-sidplay2.lo] Error 1
make[3]: Leaving directory `/opt/trunk/decoder_plugins/sidplay2'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/trunk/decoder_plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/trunk'
make: *** [all] Error 2

My gcc version is 4.3.2 (Debian 4.3.2-1.1). Thanks in advance.

Hi,

thanks for quick feedback. What about this patch? I added playlist.h include to audio.h header.

kotlik

Thanks for your quick reply too :) Now all is clear with compilation. As you said it works at most, but I've got one crash. This is strace output when adding is going well:

...
send(3, "P\0\0\0E\0\0\0/home/posix/music/Lamb/La"..., 137, MSG_DONTWAIT) = 137
recv(3, "$\0\0\0"..., 4, 0) = 4
recv(3, "E\0\0\0"..., 4, 0) = 4
recv(3, "/home/posix/music/Lamb/Lamb - Fea"..., 69, 0) = 69
recv(3, "\27\0\0\0"..., 4, 0) = 4
recv(3, "(cue) 14 Lamb - Lullaby"..., 23, 0) = 23
stat64("/home/posix/music/Lamb/Lamb - Fear of Fours/Lamb - Fear of Fours.flac", {st_dev=makedev(8, 6), st_ino=7045125, st_mode=S_IFREG|0755, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=720424, st_size=368492291, st_atime=2009/08/14-08:48:30, st_mtime=2008/05/27-00:00:00, st_ctime=2009/07/26-17:14:56}) = 0
...

And when mocp crashed:
...
open("/home/posix/music/Radiohead-lossless/2001 - Amnesiac/Radiohead - Amnesiac.cue", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=1404, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6d2c000
read(4, "REM DATE 2001\r\nREM GENRE Alt. Roc"..., 4096) = 1404
stat64("/home/posix/music/Radiohead-lossless/2001 - Amnesiac/Radiohead - Amnesiac.wav", 0xbfcff524) = -1 ENOENT (No such file or directory)
open("/home/posix/music/Radiohead-lossless/2001 - Amnesiac/Radiohead - Amnesiac.wav", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
close(-1) = -1 EBADF (Bad file descriptor)
--- SIGFPE (Floating point exception) @ 0 (0) ---
Process 18545 detached

I've checked file permissions but all files are owned by my user in system. Maybe it is because of .wav format, how do you think?

p.s.
Thank you so much once more, do you have a webmoney wallet? I want to donate next week :)

hmm I think it was an error in cue sheet parser, it's rewriten and should detect errors when parsing now. New patch is available here. Really thanks for help posix, and for donation :-))) $_$

I'm sorry I have had no time to review and merge this patch, it's so big, but I hope I'll do it soon. Thanks for your work!

I've wrote small article how to install and configure moc from SVN with lastfm scrobbler and cue sheet support for russian users whose language skills are not very good. Hope this will be useful.
http://vprokofyev.wordpress.com/2009/08/14/

For russian users:
Написал небольшую статью-руководство по установке и настройке moc из SVN c поддержкой cue sheet и скробблера lastfm для тех, кто испытывает трудности с английским языком. Надеюсь пригодится кому-нибудь.
http://vprokofyev.wordpress.com/2009/08/14/

Hello!

I patched the MOC this patch.
Compiling finished without errors. When you run the displayed this error: "FATAL_ERROR: Unknown event: 0x00"
And the server mocp enabled, but the client does not work. How to get it to work?
OS: Slackware64
GCC 4.4.4
Enclose Debug logs.
http://rapidshare.com/files/413723838/mocp_client_log
http://rapidshare.com/files/413723924/mocp_server_log

For russian users:
Здраствуйте!
Я пропатчил MOC этим патчем.
Компиляция прошла без ошибок. При запуске программы отображается ошибка: "FATAL_ERROR: Unknown event: 0x00"
Причем сервер mocp включен, а клиент не работает. Как заставить его работать?
ОС: Slackware64
GCC 4.4.4
Приложите Debug журналов.
http://rapidshare.com/files/413723838/mocp_client_log
http://rapidshare.com/files/413723924/mocp_server_log