[Vorbis-dev] ogg123 - remote control interface
"-+:cundrak" at mail.bluetone.cz
"-+:cundrak" at mail.bluetone.cz
Tue Dec 19 11:24:06 PST 2006
Hi Conrad, I have checked the svn version and found out few bugs in the
interface. Check out the patch I sent you. I made these changes:
- when a vorbis file is playing and you try to load another one, the
interface sent @P 0, that means stop, I comented out that code.
- when a vorbis file is playing and you send stop, the interface just
stopped playing, now it also sends @P 0, there is probably some issue
with stopping, because when I issued STOP and then QUIT, the interface
hangs....
- when a vorbis file starts to play, the interface sends @P 2 (playing)
The stop output should be also probably sent when EOF, but thats not
happening, it doesn't affect my interface, but might affect others,
because I think mpg123 send's this. Ask your friend to test it with the
mpg123 front end and let's see. Otherwise great job.
Another thing I found out is, that the SVN version can't HTTP stream,
but don't know if it's my build bug, or something has been removed from
the code. I'll investigate this.
Honza
-------------- next part --------------
--- vorbis-tools-svn/ogg123/remote.c 2006-12-18 11:31:30.000000000 +0100
+++ vorbis-tools-devel/ogg123/remote.c 2006-12-19 16:35:04.000000000 +0100
@@ -309,6 +309,7 @@ void remote_mainloop(void) {
send_msg("I %s", fname);
send_msg("S 0.0 0 00000 xxxxxx 0 0 0 0 0 0 0 0");
+ send_msg("P 2");
pthread_mutex_lock(&main_lock);
setstatus(PLAY);
s = getstatus();
@@ -334,17 +335,18 @@ void remote_mainloop(void) {
s = getstatus();
pthread_mutex_unlock(&main_lock);
- if (s == NEXT) {
+/* don't know why this was here, sending "play stoped" on NEXT wasn't good idea... */
+// if (s == NEXT) {
/* Send "play stopped" */
- send_msg("P 0");
- send_log("P 0");
- } else {
+// send_msg("P 0");
+// send_log("P 0");
+// } else {
/* Send "play stopped at eof" */
- send_msg("P 0 EOF");
- send_log("P 0 EOF");
- }
+// send_msg("P 0 EOF");
+// send_log("P 0 EOF");
+// }
}
else {
@@ -404,6 +406,10 @@ int remote_playloop(void) {
send_msg("P 2");
}
+ /* Send stop msg to the frontend */
+ /* this probably should be done after the audio buffer is flushed and no audio is actually playing, but don't know how */
+ if ((s == STOP) || (s == QUIT)) send_msg("P 0");
+
send_log("playloop exit s=%d", s);
return ((s == NEXT) || (s == STOP) || (s == QUIT));
More information about the Vorbis-dev
mailing list