+
+void print_nvidia_value(struct text_object *obj, char *p, int p_max_size)
+{
+ int value;
+ struct nvidia_s *nvs = obj->data.opaque;
+
+ if (!nvs ||
+ (value = get_nvidia_value(nvs->type)) == -1) {
+ snprintf(p, p_max_size, "N/A");
+ return;
+ }
+ if (nvs->type == NV_TEMP)
+ temp_print(p, p_max_size, (double)value, TEMP_CELSIUS);
+ else if (nvs->print_as_float &&
+ value > 0 && value < 100)
+ snprintf(p, p_max_size, "%.1f", (float)value);
+ else
+ snprintf(p, p_max_size, "%d", value);
+}
+
+void free_nvidia(struct text_object *obj)
+{
+ if (obj->data.opaque) {
+ free(obj->data.opaque);
+ obj->data.opaque = NULL;
+ }
+}
+
+void set_nvidia_display(const char *disp)
+{
+ if(nvdisplay) {
+ XCloseDisplay(nvdisplay);
+ nvdisplay = NULL;
+ }
+ if(disp) {
+ if ((nvdisplay = XOpenDisplay(disp)) == NULL) {
+ CRIT_ERR(NULL, NULL, "can't open nvidia display: %s", XDisplayName(disp));
+ }
+ }
+}
+