changeset 21694:2cb0dbd5154f

maint: Merge stable to default.
author John W. Eaton <jwe@octave.org>
date Fri, 13 May 2016 15:01:59 -0400
parents de138ebaa7a9 (current diff) 2c6d1ef071d1 (diff)
children 3e495750cf62
files libinterp/dldfcn/audioread.cc
diffstat 1 files changed, 18 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/dldfcn/audioread.cc	Fri May 13 14:22:56 2016 -0400
+++ b/libinterp/dldfcn/audioread.cc	Fri May 13 15:01:59 2016 -0400
@@ -344,10 +344,16 @@
   // float quality = 0.75;
   for (int i = 3; i < nargin; i += 2)
     {
-      if (args(i).string_value () == "BitsPerSample")
+      if (i >= nargin - 1)
+        error ("audiowrite: invalid number of arguments");
+
+      std::string keyword = args(i).string_value ();
+      octave_value value_arg = args(i+1);
+
+      if (keyword == "BitsPerSample")
         {
           info.format &= ~SF_FORMAT_SUBMASK;
-          int bits = args(i + 1).int_value ();
+          int bits = value_arg.int_value ();
           if (bits == 8)
             {
               if ((info.format & SF_FORMAT_TYPEMASK) == SF_FORMAT_WAV)
@@ -364,17 +370,18 @@
           else
             error ("audiowrite: wrong number of bits specified");
         }
-      else if (args(i).string_value () == "BitRate")
+      else if (keyword == "BitRate")
         ;
       // Quality is currently unused?
-      // else if (args(i).string_value () == "Quality")
-      //   quality = args(i + 1).int_value () * 0.01;
-      else if (args(i).string_value () == "Title")
-        title = args(i + 1).string_value ();
-      else if (args(i).string_value () == "Artist")
-        artist = args(i + 1).string_value ();
-      else if (args(i).string_value () == "Comment")
-        comment = args(i + 1).string_value ();
+      //
+      // else if (keyword == "Quality")
+      //   quality = value_arg.int_value () * 0.01;
+      else if (keyword == "Title")
+        title = value_arg.string_value ();
+      else if (keyword == "Artist")
+        artist = value_arg.string_value ();
+      else if (keyword == "Comment")
+        comment = value_arg.string_value ();
       else
         error ("audiowrite: wrong argument name");
     }