Selaa lähdekoodia

X11: implement OS.get_unique_id

geequlim 7 vuotta sitten
vanhempi
commit
df1c16d0fe
2 muutettua tiedostoa jossa 17 lisäystä ja 0 poistoa
  1. 15 0
      platform/x11/os_x11.cpp
  2. 2 0
      platform/x11/os_x11.h

+ 15 - 0
platform/x11/os_x11.cpp

@@ -549,6 +549,21 @@ void OS_X11::set_ime_position(const Point2 &p_pos) {
 	XFree(preedit_attr);
 }
 
+String OS_X11::get_unique_id() const {
+
+	static String machine_id;
+	if (machine_id.empty()) {
+		if (FileAccess *f = FileAccess::open("/etc/machine-id", FileAccess::READ)) {
+			while (machine_id.empty() && !f->eof_reached()) {
+				machine_id = f->get_line().strip_edges();
+			}
+			f->close();
+			memdelete(f);
+		}
+	}
+	return machine_id;
+}
+
 void OS_X11::finalize() {
 
 	if (main_loop)

+ 2 - 0
platform/x11/os_x11.h

@@ -266,6 +266,8 @@ public:
 	virtual bool get_borderless_window();
 	virtual void set_ime_position(const Point2 &p_pos);
 
+	virtual String get_unique_id() const;
+
 	virtual void move_window_to_foreground();
 	virtual void alert(const String &p_alert, const String &p_title = "ALERT!");