Browse Source

Re-added the no-argument variant of RecordingDevice:start().

It uses the samples / sample rate / bit depth / channel count previously set for the RecordingDevice, and errors if it hasn't been set before.

--HG--
branch : minor
Alex Szpakowski 8 years ago
parent
commit
bf7f082adb
1 changed files with 15 additions and 7 deletions
  1. 15 7
      src/modules/audio/wrap_RecordingDevice.cpp

+ 15 - 7
src/modules/audio/wrap_RecordingDevice.cpp

@@ -36,15 +36,23 @@ int w_RecordingDevice_start(lua_State *L)
 {
 	RecordingDevice *d = luax_checkrecordingdevice(L, 1);
 
-	int samples = (int) luaL_optinteger(L, 2, RecordingDevice::DEFAULT_SAMPLES);
-	int sampleRate = (int) luaL_optinteger(L, 3, RecordingDevice::DEFAULT_SAMPLE_RATE);
-	int bitDepth = (int) luaL_optinteger(L, 4, RecordingDevice::DEFAULT_BIT_DEPTH);
-	int channels = (int) (int) luaL_optinteger(L, 5, RecordingDevice::DEFAULT_CHANNELS);
+	int samples = d->getSampleCount();
+	int samplerate = d->getSampleRate();
+	int bitdepth = d->getBitDepth();
+	int channels = d->getChannels();
 
-	luax_catchexcept(L, [&](){
-		lua_pushboolean(L, d->start(samples, sampleRate, bitDepth, channels));
-	});
+	if (lua_gettop(L) > 1)
+	{
+		samples = (int) luaL_checkinteger(L, 2);
+		samplerate = (int) luaL_optinteger(L, 3, RecordingDevice::DEFAULT_SAMPLE_RATE);
+		bitdepth = (int) luaL_optinteger(L, 4, RecordingDevice::DEFAULT_BIT_DEPTH);
+		channels = (int) (int) luaL_optinteger(L, 5, RecordingDevice::DEFAULT_CHANNELS);
+	}
+
+	bool success = false;
+	luax_catchexcept(L, [&]() { success = d->start(samples, samplerate, bitdepth, channels); });
 
+	luax_pushboolean(L, success);
 	return 1;
 }