summaryrefslogtreecommitdiff
path: root/setup.h
diff options
context:
space:
mode:
Diffstat (limited to 'setup.h')
-rw-r--r--setup.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/setup.h b/setup.h
new file mode 100644
index 0000000..39735eb
--- /dev/null
+++ b/setup.h
@@ -0,0 +1,57 @@
+/*
+ * See the README file for copyright information and how to reach the author.
+ *
+ * $Id$
+ */
+
+#ifndef SETUP_H
+#define SETUP_H
+
+#include "audio.h"
+#include "omxdevice.h"
+
+class cMenuSetupPage;
+
+class cRpiSetup
+{
+
+public:
+
+ static bool HwInit(void);
+
+ static cAudioDecoder::ePort GetAudioPort(void) {
+ return (GetInstance()->m_audioPort) ? cAudioDecoder::eHDMI : cAudioDecoder::eLocal; }
+ static bool IsAudioPassthrough(void) { return GetInstance()->m_passthrough; }
+ static bool HasAudioSetupChanged(void);
+
+ static bool IsAudioFormatSupported(cAudioDecoder::eCodec codec, int channels, int samplingRate);
+
+ static bool IsVideoCodecSupported(cOmxDevice::eVideoCodec codec) {
+ return codec == cOmxDevice::eMPEG2 ? GetInstance()->m_mpeg2Enabled :
+ codec == cOmxDevice::eH264 ? true : false;
+ }
+
+ static int GetDisplaySize(int &width, int &height, double &aspect);
+
+ static cRpiSetup* GetInstance(void);
+ static void DropInstance(void);
+
+ cMenuSetupPage* GetSetupPage(void);
+ bool Parse(const char *name, const char *value);
+
+private:
+
+ cRpiSetup() : m_audioSetupChanged(false), m_mpeg2Enabled(false) { }
+ virtual ~cRpiSetup() { }
+
+ static cRpiSetup* s_instance;
+
+ int m_audioPort;
+ int m_passthrough;
+
+ bool m_audioSetupChanged;
+
+ bool m_mpeg2Enabled;
+};
+
+#endif