aboutsummaryrefslogtreecommitdiffstats
path: root/examples/alrecord.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/alrecord.c')
-rw-r--r--examples/alrecord.c42
1 files changed, 22 insertions, 20 deletions
diff --git a/examples/alrecord.c b/examples/alrecord.c
index 43b26d35..a66e5471 100644
--- a/examples/alrecord.c
+++ b/examples/alrecord.c
@@ -27,7 +27,7 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
-#include <math.h>
+#include <errno.h>
#include "AL/al.h"
#include "AL/alc.h"
@@ -54,13 +54,14 @@ static float msvc_strtof(const char *str, char **end)
static void fwrite16le(ALushort val, FILE *f)
{
- ALubyte data[2] = { val&0xff, (val>>8)&0xff };
+ ALubyte data[2] = { (ALubyte)(val&0xff), (ALubyte)((val>>8)&0xff) };
fwrite(data, 1, 2, f);
}
static void fwrite32le(ALuint val, FILE *f)
{
- ALubyte data[4] = { val&0xff, (val>>8)&0xff, (val>>16)&0xff, (val>>24)&0xff };
+ ALubyte data[4] = { (ALubyte)(val&0xff), (ALubyte)((val>>8)&0xff), (ALubyte)((val>>16)&0xff),
+ (ALubyte)((val>>24)&0xff) };
fwrite(data, 1, 4, f);
}
@@ -73,9 +74,9 @@ typedef struct Recorder {
ALuint mDataSize;
float mRecTime;
- int mChannels;
- int mBits;
- int mSampleRate;
+ ALuint mChannels;
+ ALuint mBits;
+ ALuint mSampleRate;
ALuint mFrameSize;
ALbyte *mBuffer;
ALsizei mBufferSize;
@@ -133,13 +134,13 @@ int main(int argc, char **argv)
break;
else if(strcmp(argv[0], "--channels") == 0 || strcmp(argv[0], "-c") == 0)
{
- if(!(argc > 1))
+ if(argc < 2)
{
fprintf(stderr, "Missing argument for option: %s\n", argv[0]);
return 1;
}
- recorder.mChannels = strtol(argv[1], &end, 0);
+ recorder.mChannels = (ALuint)strtoul(argv[1], &end, 0);
if((recorder.mChannels != 1 && recorder.mChannels != 2) || (end && *end != '\0'))
{
fprintf(stderr, "Invalid channels: %s\n", argv[1]);
@@ -150,13 +151,13 @@ int main(int argc, char **argv)
}
else if(strcmp(argv[0], "--bits") == 0 || strcmp(argv[0], "-b") == 0)
{
- if(!(argc > 1))
+ if(argc < 2)
{
fprintf(stderr, "Missing argument for option: %s\n", argv[0]);
return 1;
}
- recorder.mBits = strtol(argv[1], &end, 0);
+ recorder.mBits = (ALuint)strtoul(argv[1], &end, 0);
if((recorder.mBits != 8 && recorder.mBits != 16 && recorder.mBits != 32) ||
(end && *end != '\0'))
{
@@ -168,13 +169,13 @@ int main(int argc, char **argv)
}
else if(strcmp(argv[0], "--rate") == 0 || strcmp(argv[0], "-r") == 0)
{
- if(!(argc > 1))
+ if(argc < 2)
{
fprintf(stderr, "Missing argument for option: %s\n", argv[0]);
return 1;
}
- recorder.mSampleRate = strtol(argv[1], &end, 0);
+ recorder.mSampleRate = (ALuint)strtoul(argv[1], &end, 0);
if(!(recorder.mSampleRate >= 8000 && recorder.mSampleRate <= 96000) || (end && *end != '\0'))
{
fprintf(stderr, "Invalid sample rate: %s\n", argv[1]);
@@ -185,7 +186,7 @@ int main(int argc, char **argv)
}
else if(strcmp(argv[0], "--time") == 0 || strcmp(argv[0], "-t") == 0)
{
- if(!(argc > 1))
+ if(argc < 2)
{
fprintf(stderr, "Missing argument for option: %s\n", argv[0]);
return 1;
@@ -202,7 +203,7 @@ int main(int argc, char **argv)
}
else if(strcmp(argv[0], "--outfile") == 0 || strcmp(argv[0], "-o") == 0)
{
- if(!(argc > 1))
+ if(argc < 2)
{
fprintf(stderr, "Missing argument for option: %s\n", argv[0]);
return 1;
@@ -285,15 +286,15 @@ int main(int argc, char **argv)
// 16-bit val, format type id (1 = integer PCM, 3 = float PCM)
fwrite16le((recorder.mBits == 32) ? 0x0003 : 0x0001, recorder.mFile);
// 16-bit val, channel count
- fwrite16le(recorder.mChannels, recorder.mFile);
+ fwrite16le((ALushort)recorder.mChannels, recorder.mFile);
// 32-bit val, frequency
fwrite32le(recorder.mSampleRate, recorder.mFile);
// 32-bit val, bytes per second
fwrite32le(recorder.mSampleRate * recorder.mFrameSize, recorder.mFile);
// 16-bit val, frame size
- fwrite16le(recorder.mFrameSize, recorder.mFile);
+ fwrite16le((ALushort)recorder.mFrameSize, recorder.mFile);
// 16-bit val, bits per sample
- fwrite16le(recorder.mBits, recorder.mFile);
+ fwrite16le((ALushort)recorder.mBits, recorder.mFile);
// 16-bit val, extra byte count
fwrite16le(0, recorder.mFile);
@@ -316,6 +317,7 @@ int main(int argc, char **argv)
recorder.mRecTime, (recorder.mRecTime != 1.0f) ? "s" : ""
);
+ err = ALC_NO_ERROR;
alcCaptureStart(recorder.mDevice);
while((double)recorder.mDataSize/(double)recorder.mSampleRate < recorder.mRecTime &&
(err=alcGetError(recorder.mDevice)) == ALC_NO_ERROR && !ferror(recorder.mFile))
@@ -330,7 +332,7 @@ int main(int argc, char **argv)
}
if(count > recorder.mBufferSize)
{
- ALbyte *data = calloc(recorder.mFrameSize, count);
+ ALbyte *data = calloc(recorder.mFrameSize, (ALuint)count);
free(recorder.mBuffer);
recorder.mBuffer = data;
recorder.mBufferSize = count;
@@ -364,7 +366,7 @@ int main(int argc, char **argv)
}
}
#endif
- recorder.mDataSize += (ALuint)fwrite(recorder.mBuffer, recorder.mFrameSize, count,
+ recorder.mDataSize += (ALuint)fwrite(recorder.mBuffer, recorder.mFrameSize, (ALuint)count,
recorder.mFile);
}
alcCaptureStop(recorder.mDevice);
@@ -384,7 +386,7 @@ int main(int argc, char **argv)
{
fwrite32le(recorder.mDataSize*recorder.mFrameSize, recorder.mFile);
if(fseek(recorder.mFile, 4, SEEK_SET) == 0)
- fwrite32le(total_size - 8, recorder.mFile);
+ fwrite32le((ALuint)total_size - 8, recorder.mFile);
}
fclose(recorder.mFile);