~ubuntu-branches/ubuntu/saucy/nvidia-settings-updates/saucy

« back to all changes in this revision

Viewing changes to src/gtk+-2.x/ctkgpu.c

  • Committer: Package Import Robot
  • Author(s): Alberto Milone
  • Date: 2012-06-25 16:39:50 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20120625163950-qsci6udwk8mbyrdu
Tags: 302.17-0ubuntu1
* New upstream release.
* Refresh 04_nvidia-settings_natty_ftbs.patch.
* Drop 02_nvidia-settings-format-string.patch which
  is now upstream.
* debian/rules:
  - Make sure to install the new sources correctly.

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
            sizeof (CtkGpu),
55
55
            0, /* n_preallocs */
56
56
            NULL, /* instance_init */
 
57
            NULL  /* value_table */
57
58
        };
58
59
 
59
60
        ctk_gpu_type =
65
66
}
66
67
 
67
68
 
68
 
static gchar *make_display_device_list(NvCtrlAttributeHandle *handle,
69
 
                                       unsigned int display_devices)
 
69
static gchar *make_display_device_list(NvCtrlAttributeHandle *handle)
70
70
{
71
 
    gchar *displays = NULL;
72
 
    gchar *type;
73
 
    gchar *name;
74
 
    gchar *tmp_str;
75
 
    unsigned int mask;
76
 
    ReturnStatus ret;
77
 
    
78
 
 
79
 
    /* List of Display Device connected on GPU */
80
 
 
81
 
    for (mask = 1; mask; mask <<= 1) {
82
 
        
83
 
        if (!(mask & display_devices)) continue;
84
 
        
85
 
        type = display_device_mask_to_display_device_name(mask);
86
 
        name = NULL;
87
 
        
88
 
        ret =
89
 
            NvCtrlGetStringDisplayAttribute(handle,
90
 
                                            mask,
91
 
                                            NV_CTRL_STRING_DISPLAY_DEVICE_NAME,
92
 
                                            &name);
93
 
        if (ret != NvCtrlSuccess) {
94
 
            tmp_str = g_strdup_printf("Unknown (%s)", type);
95
 
        } else {
96
 
            tmp_str = g_strdup_printf("%s (%s)", name, type);
97
 
            XFree(name);
98
 
        }
99
 
        free(type);
100
 
        
101
 
        if (displays) {
102
 
            name = g_strdup_printf("%s,\n%s", tmp_str, displays);
103
 
            g_free(displays);
104
 
            g_free(tmp_str);
105
 
        } else {
106
 
            name = tmp_str;
107
 
        }
108
 
        displays = name;
109
 
    }
110
 
 
111
 
    if (!displays) {
112
 
        displays = g_strdup("None");
113
 
    }
114
 
 
115
 
    return displays;
 
71
    return create_display_name_list_string(handle,
 
72
                                           NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU);
116
73
 
117
74
} /* make_display_device_list() */
118
75
 
250
207
    gchar *link_width_str = NULL;
251
208
    gchar *pcie_gen_str = NULL;
252
209
 
253
 
    unsigned int display_devices;
254
210
    int xinerama_enabled;
255
211
    int *pData;
256
212
    int len;
394
350
        screens = g_strdup("Unknown");
395
351
    }
396
352
 
397
 
    /* List of Display Device connected on GPU */
398
 
 
399
 
    displays = NULL;
400
 
    ret = NvCtrlGetAttribute(handle, NV_CTRL_CONNECTED_DISPLAYS,
401
 
                             (int *)&display_devices);
402
 
    if (ret == NvCtrlSuccess) {
403
 
        displays = make_display_device_list(handle, display_devices);
404
 
    }
405
 
    
406
353
    /* now, create the object */
407
 
    
 
354
 
408
355
    object = g_object_new(CTK_TYPE_GPU, NULL);
409
356
    ctk_gpu = CTK_GPU(object);
410
357
 
525
472
                  0, 0, "X Screens:",
526
473
                  0, 0, screens);
527
474
    /* spacing */
 
475
    displays = make_display_device_list(handle);
 
476
 
528
477
    row += 3;
529
478
    ctk_gpu->displays =
530
479
        add_table_row(table, row,
662
611
static void probe_displays_received(GtkObject *object, gpointer arg1,
663
612
                                    gpointer user_data)
664
613
{
665
 
    CtkEventStruct *event_struct = (CtkEventStruct *) arg1;
666
614
    CtkGpu *ctk_object = CTK_GPU(user_data);
667
 
    unsigned int probed_displays = event_struct->value;
668
615
    gchar *str;
669
616
 
670
 
    str = make_display_device_list(ctk_object->handle, probed_displays);
 
617
    str = make_display_device_list(ctk_object->handle);
671
618
 
672
619
    gtk_label_set_text(GTK_LABEL(ctk_object->displays), str);
673
620