]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
Merge branch 'refs/heads/t/ff'
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 14 Jul 2019 10:56:19 +0000 (12:56 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 14 Jul 2019 11:01:22 +0000 (13:01 +0200)
A short series which overhauls the ff server command.

Cooking for almost a year (for no good reason).

* refs/heads/t/ff:
  com_ff(): Fix bad grammar in help text.
  com_ff(): Depreciate "n-" syntax.
  com_ff(): Simplify code for jumping backwards.
  com_ff(): Avoid "unsigned i".

1  2 
NEWS.md
command.c

diff --combined NEWS.md
index 55ef3be947ee76d6b0937b33988b0cd960c0e985,55ef3be947ee76d6b0937b33988b0cd960c0e985..1aca9b0ae4825e295344c9dc29634785b79bcad3
+++ b/NEWS.md
@@@ -1,6 -1,6 +1,16 @@@
  NEWS
  ====
  
++----------------------------------------------
++0.6.3 (to be announced) "generalized activity"
++----------------------------------------------
++
++- The ff command now accepts a negative argument to instruct the
++  virtual streaming system to jump backwards in the current audio
++  stream. The old syntax (e.g., "ff 30-") is still supported but it
++  is deprecated and no longer documented. The compatibility code is
++  sheduled for removal after 0.7.0.
++
  --------------------------------------
  0.6.2 (2018-06-30) "elastic diversity"
  --------------------------------------
diff --combined command.c
index 67f6bf3c713b5de3d542d96f63848cb0014326dc,f8d679e7add601ed0e93489f38aa4d61318368d0..481fd0f637352fb21ff97536d426ece42ec0fda3
+++ b/command.c
@@@ -279,7 -279,7 +279,7 @@@ static int check_sender_args(struct com
  }
  
  /**
 - * Send a sideband packet through a blocking file descriptor.
 + * Receive a sideband packet from a blocking file descriptor.
   *
   * \param scc fd and crypto keys.
   * \param expected_band The expected band designator.
@@@ -663,8 -663,7 +663,7 @@@ EXPORT_SERVER_CMD_HANDLER(nomore)
  static int com_ff(struct command_context *cc, struct lls_parse_result *lpr)
  {
        long promille;
-       int ret, backwards = 0;
-       unsigned i;
+       int i, ret;
        char c, *errctx;
  
        ret = lls(lls_check_arg_count(lpr, 1, 1, &errctx));
                send_errctx(cc, errctx);
                return ret;
        }
-       if (!(ret = sscanf(lls_input(0, lpr), "%u%c", &i, &c)))
-               return -E_COMMAND_SYNTAX;
-       if (ret > 1 && c == '-')
-               backwards = 1; /* jmp backwards */
+       ret = para_atoi32(lls_input(0, lpr), &i);
+       if (ret < 0) {
+               if (ret != -E_ATOI_JUNK_AT_END)
+                       return ret;
+               /*
+                * Compatibility code to keep the historic syntax (ff 30-)
+                * working. This can be removed after 0.7.0.
+                */
+               ret = sscanf(lls_input(0, lpr), "%i%c", &i, &c);
+               if (ret <= 0)
+                       return -E_COMMAND_SYNTAX;
+               if (ret > 1 && c == '-') {
+                       PARA_WARNING_LOG("use of obsolete syntax\n");
+                       i = -i;
+               }
+       }
        mutex_lock(mmd_mutex);
        ret = -E_NO_AUDIO_FILE;
        if (!mmd->afd.afhi.chunks_total || !mmd->afd.afhi.seconds_total)
                goto out;
        ret = 1;
        promille = (1000 * mmd->current_chunk) / mmd->afd.afhi.chunks_total;
-       if (backwards)
-               promille -= 1000 * i / mmd->afd.afhi.seconds_total;
-       else
-               promille += 1000 * i / mmd->afd.afhi.seconds_total;
+       /*
+        * We need this cast because without it the expression on the right
+        * hand side is of unsigned type.
+        */
+       promille += 1000 * i / (int)mmd->afd.afhi.seconds_total;
        if (promille < 0)
                promille = 0;
        if (promille > 1000) {