The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

t/ctl: Refactor code to make more tidy

authored by

Jakob Bornecrantz and committed by
Jakob Bornecrantz
7b9d7091 4e6a137c

+79 -57
+79 -57
src/xrt/targets/ctl/main.c
··· 20 20 MODE_GET, 21 21 MODE_SET_PRIMARY, 22 22 MODE_SET_FOCUSED, 23 + } op_mode_t; 23 24 24 - } op_mode_t; 25 + int 26 + get_mode(struct ipc_connection *ipc_c) 27 + { 28 + struct ipc_client_list clients; 25 29 30 + xrt_result_t r; 31 + 32 + r = ipc_call_system_get_clients(ipc_c, &clients); 33 + if (r != XRT_SUCCESS) { 34 + printf("failed to get client list.\n"); 35 + exit(1); 36 + } 37 + 38 + for (uint32_t i = 0; i < IPC_MAX_CLIENTS; i++) { 39 + if (clients.ids[i] < 0) { 40 + continue; 41 + } 42 + 43 + struct ipc_app_state cs; 44 + r = ipc_call_system_get_client_info(ipc_c, i, &cs); 45 + if (r != XRT_SUCCESS) { 46 + printf( 47 + "failed to get client info " 48 + "for client %d.\n", 49 + i); 50 + return 1; 51 + } 52 + 53 + printf( 54 + "id: %d\tact: %d\tdisp: " 55 + "%d\tfoc: %d\tovly: %d\tz: " 56 + "%d\tpid: " 57 + "%d\t %s\t\n", 58 + clients.ids[i], cs.session_active, cs.session_visible, 59 + cs.session_focused, cs.session_overlay, cs.z_order, cs.pid, 60 + cs.info.application_name); 61 + } 62 + 63 + return 0; 64 + } 65 + 66 + int 67 + set_primary(struct ipc_connection *ipc_c, int client_id) 68 + { 69 + xrt_result_t r; 70 + 71 + r = ipc_call_system_set_primary_client(ipc_c, client_id); 72 + if (r != XRT_SUCCESS) { 73 + printf("failed to set active client to %d.\n", client_id); 74 + return 1; 75 + } 76 + 77 + return 0; 78 + } 79 + 80 + int 81 + set_focused(struct ipc_connection *ipc_c, int client_id) 82 + { 83 + xrt_result_t r; 84 + 85 + r = ipc_call_system_set_focused_client(ipc_c, client_id); 86 + if (r != XRT_SUCCESS) { 87 + printf("failed to set focused client to %d.\n", client_id); 88 + return 1; 89 + } 90 + 91 + return 0; 92 + } 26 93 27 94 int 28 95 main(int argc, char *argv[]) ··· 99 166 sizeof(cs.info.application_name), "%s", "monado-ctl"); 100 167 101 168 xrt_result_t r = ipc_call_system_set_client_info(&ipc_c, &cs); 102 - 103 169 if (r != XRT_SUCCESS) { 104 170 printf("failed to set client info.\n"); 105 171 exit(1); 106 172 } 107 - switch (op_mode) { 108 - case MODE_GET: { 109 173 110 - struct ipc_client_list clients; 111 - xrt_result_t r = 112 - ipc_call_system_get_clients(&ipc_c, &clients); 113 - if (r != XRT_SUCCESS) { 114 - printf("failed to get client list.\n"); 115 - exit(1); 116 - } 117 - 118 - for (uint32_t i = 0; i < IPC_MAX_CLIENTS; i++) { 119 - if (clients.ids[i] >= 0) { 120 - struct ipc_app_state cs; 121 - xrt_result_t r = 122 - ipc_call_system_get_client_info( 123 - &ipc_c, i, &cs); 124 - if (r != XRT_SUCCESS) { 125 - printf( 126 - "failed to get client info " 127 - "for client %d.\n", 128 - i); 129 - exit(1); 130 - } 131 - printf( 132 - "id: %d\tact: %d\tdisp: " 133 - "%d\tfoc: %d\tovly: %d\tz: " 134 - "%d\tpid: " 135 - "%d\t %s\t\n", 136 - clients.ids[i], cs.session_active, 137 - cs.session_visible, 138 - cs.session_focused, 139 - cs.session_overlay, cs.z_order, 140 - cs.pid, cs.info.application_name); 141 - } 142 - } 143 - 144 - } break; 145 - case MODE_SET_PRIMARY: { 146 - xrt_result_t r = 147 - ipc_call_system_set_primary_client(&ipc_c, s_val); 148 - if (r != XRT_SUCCESS) { 149 - printf("failed to set active client to %d.\n", 150 - s_val); 151 - exit(1); 152 - } 153 - } break; 154 - case MODE_SET_FOCUSED: { 155 - xrt_result_t r = 156 - ipc_call_system_set_focused_client(&ipc_c, s_val); 157 - if (r != XRT_SUCCESS) { 158 - printf("failed to set focused client to %d.\n", 159 - s_val); 160 - exit(1); 161 - } 162 - } break; 174 + switch (op_mode) { 175 + case MODE_GET: 176 + exit(get_mode(&ipc_c)); 177 + break; 178 + case MODE_SET_PRIMARY: 179 + exit(set_primary(&ipc_c, s_val)); 180 + break; 181 + case MODE_SET_FOCUSED: 182 + exit(set_focused(&ipc_c, s_val)); 183 + break; 163 184 default: printf("Unrecognised operation mode.\n"); exit(1); 164 185 } 165 186 } 187 + 166 188 close(fd); 167 189 }