aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Encoder/enc_flac/AudioCoderFlac.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Encoder/enc_flac/AudioCoderFlac.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Plugins/Encoder/enc_flac/AudioCoderFlac.h')
-rw-r--r--Src/Plugins/Encoder/enc_flac/AudioCoderFlac.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/Src/Plugins/Encoder/enc_flac/AudioCoderFlac.h b/Src/Plugins/Encoder/enc_flac/AudioCoderFlac.h
new file mode 100644
index 00000000..e28eba96
--- /dev/null
+++ b/Src/Plugins/Encoder/enc_flac/AudioCoderFlac.h
@@ -0,0 +1,29 @@
+#pragma once
+#include "../nsv/enc_if.h"
+#include <FLAC/stream_encoder.h>
+#include "StreamFileWin32.h"
+
+typedef struct {
+ unsigned int compression; // 0-8
+} configtype;
+
+class AudioCoderFlac : public AudioCoder
+{
+public:
+ AudioCoderFlac(unsigned int nch, unsigned int bps, unsigned int samplerate, unsigned int compression);
+ ~AudioCoderFlac();
+ int Encode(int framepos, void *in, int in_avail, int *in_used, void *out, int out_avail); //returns bytes in out
+ void PrepareToFinish();
+ void Finish(const wchar_t *destination);
+ bool OK();
+
+private:
+ FLAC__StreamEncoder *encoder;
+ FLAC__StreamMetadata *padding;
+ Win32_State win32State;
+ unsigned int nch;
+ unsigned int bps;
+ wchar_t tempFile[MAX_PATH];
+ bool finished;
+ FLAC__uint64 finishedBytes;
+}; \ No newline at end of file