[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