Cog/Plugins/Flac/FlacDecoder.h
Christopher Snowhill 6222e25adc Experimental tag support redesign
This redesign completely changes how tags are stored in memory. Now all
arbitrary tag names are supported, where possible. Some extra work will
be needed to support arbitrary tags with TagLib, such as replacing it
with a different library.

Translation pending for a couple of strings.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-08 16:34:50 -07:00

61 lines
1.1 KiB
Objective-C

//
// FlacFile.h
// zyVorbis
//
// Created by Vincent Spader on 1/25/05.
// Copyright 2005 Vincent Spader All rights reserved.
//
#import "FLAC/all.h"
#import <Cocoa/Cocoa.h>
#define SAMPLES_PER_WRITE 512
#define FLAC__MAX_SUPPORTED_CHANNELS 8
#define SAMPLE_blockBuffer_SIZE ((FLAC__MAX_BLOCK_SIZE + SAMPLES_PER_WRITE) * FLAC__MAX_SUPPORTED_CHANNELS * (24 / 8))
#import "Plugin.h"
@interface FlacDecoder : NSObject <CogDecoder> {
FLAC__StreamDecoder *decoder;
void *blockBuffer;
int blockBufferFrames;
id<CogSource> source;
BOOL endOfStream;
int bitsPerSample;
int channels;
uint32_t channelConfig;
float frequency;
long totalFrames;
long fileSize;
BOOL hasStreamInfo;
BOOL streamOpened;
BOOL abortFlag;
NSDictionary *metaDict;
NSDictionary *icyMetaDict;
NSData *albumArt;
BOOL cuesheetFound;
NSString *cuesheet;
}
- (void)setSource:(id<CogSource>)s;
- (id<CogSource>)source;
- (void)setEndOfStream:(BOOL)eos;
- (BOOL)endOfStream;
- (void)setSize:(long)size;
- (FLAC__StreamDecoder *)decoder;
- (char *)blockBuffer;
- (int)blockBufferFrames;
- (void)setBlockBufferFrames:(int)frames;
@end