]> git.sesse.net Git - cubemap/blobdiff - input.h
Add suppor for raw (non-Metacube) inputs over HTTP. Only really useful for TS.
[cubemap] / input.h
diff --git a/input.h b/input.h
index 5b3bbd2744d144a3bc9b71fdc6bbc37aeadbb6c9..1b94e59ffef5faf1b8952e797caa62653f337af8 100644 (file)
--- a/input.h
+++ b/input.h
 class Input;
 class InputProto;
 
-// Extremely rudimentary URL parsing.
-bool parse_url(const std::string &url, std::string *protocol, std::string *host, std::string *port, std::string *path);
-
-// Figure out the right type of input based on the URL, and create a new Input of the right type.
-// Will return NULL if unknown.
-Input *create_input(const std::string &url);
-Input *create_input(const InputProto &serialized);
-
 // Digested statistics for writing to logs etc.
 struct InputStats {
        std::string url;
@@ -43,6 +35,9 @@ struct InputStats {
 
 class Input : public Thread {
 public:
+       // Must be in sync with StreamConfig::Encoding.
+       enum Encoding { INPUT_ENCODING_RAW = 0, INPUT_ENCODING_METACUBE };
+
        virtual ~Input();
        virtual InputProto serialize() const = 0;
        virtual std::string get_url() const = 0;
@@ -53,4 +48,12 @@ public:
        virtual InputStats get_stats() const = 0;
 };
 
+// Extremely rudimentary URL parsing.
+bool parse_url(const std::string &url, std::string *protocol, std::string *user, std::string *host, std::string *port, std::string *path);
+
+// Figure out the right type of input based on the URL, and create a new Input of the right type.
+// Will return NULL if unknown.
+Input *create_input(const std::string &url, Input::Encoding encoding);
+Input *create_input(const InputProto &serialized);
+
 #endif  // !defined(_INPUT_H)