Add python script to generate dvr api header for exporting

Bug: b/38379392
Test: Manually tested script to generate dvr_api.h
Change-Id: I02a7445061f5ade54e8024f3cbf43e85d000001d
diff --git a/libs/vr/libdvr/build_sdk.py b/libs/vr/libdvr/build_sdk.py
new file mode 100755
index 0000000..b3c2e44
--- /dev/null
+++ b/libs/vr/libdvr/build_sdk.py
@@ -0,0 +1,47 @@
+#!/usr/bin/python
+import sys
+import os
+import argparse
+
+# Run this script to generate dvr_api.h in the current directory.
+
+def make_argument_parser():
+  parser = argparse.ArgumentParser(
+      description='Process DVR API headers into exportable SDK files.')
+  return parser
+
+parser = make_argument_parser()
+
+in_file = open("include/dvr/dvr_api.h", "r")
+out_file = open("./dvr_api.h", "w")
+
+h_filename = ""
+for line in in_file:
+  if line.startswith("// dvr_") and line.endswith(".h\n"):
+    h_filename = "include/dvr/" + line[3:].strip()
+  if line.startswith("typedef ") and "(*Dvr" in line:
+    start = line.find("(*Dvr") + 5
+    end = line.find("Ptr)")
+    if end != -1:
+      name = "dvr" + line[start:end]
+      # Find the comments for this function and insert into output.
+      with open(h_filename, 'r') as h_file:
+        h_lines = h_file.readlines()
+        i = 1
+        while i < len(h_lines):
+          if name in h_lines[i]:
+            end_i = i
+            while h_lines[i - 1].startswith("//"): i -= 1
+            while i < end_i:
+              out_file.write(h_lines[i])
+              i += 1
+            break
+          i += 1
+  if line.startswith('#include "dvr_api_entries.h"'):
+    with open("include/dvr/dvr_api_entries.h") as f:
+      out_file.write(f.read())
+  else:
+    out_file.write(line)
+
+in_file.close()
+out_file.close()