+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "FLAC/metadata.h"
+#include "foreign_metadata.h"
+#include "utils.h"
+#include "share/compat.h"
+
+extern const int FLAC_ENCODE__DEFAULT_PADDING;
+
+typedef enum {
+ CST_BLOCKSIZE,
+ CST_COMPRESSION_LEVEL,
+ CST_DO_MID_SIDE,
+ CST_LOOSE_MID_SIDE,
+ CST_APODIZATION,
+ CST_MAX_LPC_ORDER,
+ CST_QLP_COEFF_PRECISION,
+ CST_DO_QLP_COEFF_PREC_SEARCH,
+ CST_DO_ESCAPE_CODING,
+ CST_DO_EXHAUSTIVE_MODEL_SEARCH,
+ CST_MIN_RESIDUAL_PARTITION_ORDER,
+ CST_MAX_RESIDUAL_PARTITION_ORDER,
+ CST_RICE_PARAMETER_SEARCH_DIST
+} compression_setting_type_t;
+
+typedef struct {
+ compression_setting_type_t type;
+ union {
+ FLAC__bool t_bool;
+ unsigned t_unsigned;
+ const char *t_string;
+ } value;
+} compression_setting_t;