-int getFromGraphBuf(uint8_t *buff);
-int GetClock(const char *str, int peak, int verbose);
-int GetNRZpskClock(const char *str, int peak, int verbose);
-void setGraphBuf(uint8_t *buff,int size);
+size_t getFromGraphBuf(uint8_t *buff);
+int GetAskClock(const char str[], bool printAns, bool verbose);
+int GetPskClock(const char str[], bool printAns, bool verbose);
+uint8_t GetPskCarrier(const char str[], bool printAns, bool verbose);
+uint8_t GetNrzClock(const char str[], bool printAns, bool verbose);
+uint8_t GetFskClock(const char str[], bool printAns, bool verbose);
+uint8_t fskClocks(uint8_t *fc1, uint8_t *fc2, uint8_t *rf1, bool verbose, int *firstClockEdge);
+//uint8_t fskClocks(uint8_t *fc1, uint8_t *fc2, uint8_t *rf1, bool verbose);
+bool graphJustNoise(int *BitStream, int size);
+void setGraphBuf(uint8_t *buff, size_t size);
+void save_restoreGB(uint8_t saveOpt);
+
+bool HasGraphData();
+void DetectHighLowInGraph(int *high, int *low, bool addFuzz);
+
+// Max graph trace len: 40000 (bigbuf) * 8 (at 1 bit per sample)
+#define MAX_GRAPH_TRACE_LEN (40000 * 8 )
+#define GRAPH_SAVE 1
+#define GRAPH_RESTORE 0