Browse Source

Fix RecordingDevice:start().

--HG--
branch : minor
Alex Szpakowski 8 years ago
parent
commit
2c80cce00b

+ 5 - 0
src/modules/audio/RecordingDevice.h

@@ -76,6 +76,11 @@ public:
 	 **/
 	virtual int getSampleCount() const = 0;
 
+	/**
+	 * Gets the maximum number of samples that will be buffered, as set by start().
+	 **/
+	virtual int getMaxSamples() const = 0;
+
 	/**
 	 * @return Sample rate for recording.
 	 **/

+ 8 - 3
src/modules/audio/null/RecordingDevice.cpp

@@ -57,19 +57,24 @@ int RecordingDevice::getSampleCount() const
 	return 0;
 }
 
+int RecordingDevice::getMaxSamples() const
+{
+	return 0;
+}
+
 int RecordingDevice::getSampleRate() const
 {
-	return 8000;
+	return 0;
 }
 
 int RecordingDevice::getBitDepth() const
 {
-	return 16;
+	return 0;
 }
 
 int RecordingDevice::getChannels() const
 {
-	return 1;
+	return 0;
 }
 
 const char *RecordingDevice::getName() const

+ 1 - 0
src/modules/audio/null/RecordingDevice.h

@@ -40,6 +40,7 @@ public:
 	virtual void stop();
 	virtual love::sound::SoundData *getData();
 	virtual const char *getName() const;
+	virtual int getMaxSamples() const;
 	virtual int getSampleCount() const;
 	virtual int getSampleRate() const;
 	virtual int getBitDepth() const;

+ 6 - 5
src/modules/audio/openal/RecordingDevice.cpp

@@ -49,11 +49,7 @@ RecordingDevice::RecordingDevice(const char *name)
 
 RecordingDevice::~RecordingDevice()
 {
-	if (!isRecording())
-		return;
-
-	alcCaptureStop(device);
-	alcCaptureCloseDevice(device);
+	stop();
 }
 
 bool RecordingDevice::start(int samples, int sampleRate, int bitDepth, int channels)
@@ -121,6 +117,11 @@ int RecordingDevice::getSampleCount() const
 	return (int)samples;
 }
 
+int RecordingDevice::getMaxSamples() const
+{
+	return samples;
+}
+
 int RecordingDevice::getSampleRate() const
 {
 	return sampleRate;

+ 1 - 0
src/modules/audio/openal/RecordingDevice.h

@@ -57,6 +57,7 @@ public:
 	virtual love::sound::SoundData *getData();
 	virtual const char *getName() const;
 	virtual int getSampleCount() const;
+	virtual int getMaxSamples() const;
 	virtual int getSampleRate() const;
 	virtual int getBitDepth() const;
 	virtual int getChannels() const;

+ 1 - 1
src/modules/audio/wrap_RecordingDevice.cpp

@@ -36,7 +36,7 @@ int w_RecordingDevice_start(lua_State *L)
 {
 	RecordingDevice *d = luax_checkrecordingdevice(L, 1);
 
-	int samples = d->getSampleCount();
+	int samples = d->getMaxSamples();
 	int samplerate = d->getSampleRate();
 	int bitdepth = d->getBitDepth();
 	int channels = d->getChannels();