diff isshouni.js @ 1:617063bc96f7

Fix some sync issues.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Wed, 22 Feb 2012 20:40:29 +0100
parents 156c2fd7c626
children 88eb49491a1e
line wrap: on
line diff
--- a/isshouni.js
+++ b/isshouni.js
@@ -28,6 +28,7 @@ var spawn = require('child_process').spa
 
 var cl = new xmpp.Client(config);
 var mplayer = spawn('mplayer', args);
+var paused = false;
 
 var connect = function() {
   cl.send(new xmpp.Element('presence', {to: config.muc + '/' + config.nick})
@@ -81,9 +82,10 @@ cl.on('stanza', function(stanza) {
 
   //send_command('osd_show_text "' + from.resource + ' did ' + payload.name + '"');
 
-  if (payload.name === 'pause')
+  if (payload.name === 'pause') {
     send_command('pause');
-  else if (payload.name === 'seek')
+    paused = !paused;
+  } else if (payload.name === 'seek')
     send_command('seek ' + payload.getText());
   else if (payload.name === 'synchro')
     send_command('seek ' + payload.getText() + ' 2');
@@ -99,7 +101,10 @@ var commands = {
   'm': 'mute',
   ' ': function() {
     send_message('pause');
-    send_command('get_time_pos');
+    paused = !paused;
+    console.log(paused);
+    if (paused)
+      send_command('get_time_pos');
     return 'pause';
   },
   'q': function() {
@@ -109,18 +114,23 @@ var commands = {
   },
 };
 
+var seek = function(time) {
+  send_message('seek', time);
+  send_command('seek ' + time);
+};
+
 process.stdin.resume();
 tty.setRawMode(true);
 process.stdin.on('keypress', function(char, key) {
   if (!char) {
     if (key.name == 'right')
-      send_command('seek 10');
+      seek(10);
     else if (key.name == 'left')
-      send_command('seek -10');
+      seek(-10);
     else if (key.name == 'up')
-      send_command('seek 60');
+      seek(60);
     else if (key.name == 'down')
-      send_command('seek -60');
+      seek(-60);
   } else if (char in commands) {
     var command = commands[char];
     if (typeof command === 'function')