summaryrefslogtreecommitdiffstats
path: root/apps/enc_config.h
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-11-06 18:18:05 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-11-06 18:18:05 +0000
commit5efee7c94adb691799becb605002e85e13bf11e5 (patch)
treec8f3e198cf40b5fad4f50ee558195ee906c261c5 /apps/enc_config.h
parent0f5cb94aa4a334366a746fcbb22f3335ca413265 (diff)
downloadrockbox-5efee7c94adb691799becb605002e85e13bf11e5.tar.gz
rockbox-5efee7c94adb691799becb605002e85e13bf11e5.tar.bz2
rockbox-5efee7c94adb691799becb605002e85e13bf11e5.zip
Forgot to use cvs add on a few new files in the fresh checkout I used. woops.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11453 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/enc_config.h')
-rw-r--r--apps/enc_config.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/apps/enc_config.h b/apps/enc_config.h
new file mode 100644
index 0000000000..53fa7638e9
--- /dev/null
+++ b/apps/enc_config.h
@@ -0,0 +1,73 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2006 Michael Sevakis
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#ifndef ENC_CONFIG_H
+#define ENC_CONFIG_H
+
+#include "misc.h"
+#include "enc_base.h"
+
+/** Capabilities **/
+
+/* Capabilities returned by enc_get_caps that depend upon encoder settings */
+struct encoder_caps
+{
+ unsigned long samplerate_caps; /* Mask composed of SAMPR_CAP_* flags */
+ unsigned long channel_caps; /* Mask composed of CHN_CAP_* flags */
+};
+
+/* for_config:
+ * true- the capabilities returned should be contextual based upon the
+ * settings in the config structure
+ * false- the overall capabilities are being requested
+ */
+bool enc_get_caps(const struct encoder_config *cfg,
+ struct encoder_caps *caps,
+ bool for_config);
+
+/** Configuration **/
+
+/* These translate to a back between the global format and the per-
+ instance format */
+void global_to_encoder_config(struct encoder_config *cfg);
+void encoder_config_to_global(const struct encoder_config *cfg);
+
+/* Initializes the config struct with default values.
+ set afmt member before calling. */
+bool enc_init_config(struct encoder_config *cfg);
+
+/** Encoder Menus **/
+
+/* Shows an encoder's config menu given an encoder config returned by one
+ of the enc_api functions. Modified settings are not saved to disk but
+ instead are placed in the structure. Call enc_save_config to commit
+ the data. */
+bool enc_config_menu(struct encoder_config *cfg);
+
+/** Global Settings **/
+
+/* Reset all codecs to defaults */
+void enc_global_settings_reset(void);
+
+/* Apply new settings */
+void enc_global_settings_apply(void);
+
+/* Show an encoder's config menu based on the global_settings.
+ Modified settings are placed in global_settings.enc_config. */
+bool enc_global_config_menu(void);
+#endif /* ENC_CONFIG_H */