common.h File
Included Headers
#include "qar_streaming.h"
#include <inttypes.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Functions Index
| static int | example_obtain_session (QarRuntime *runtime, const char *pairing_code, const char *id_file_path, const char *display_name, QarOnboardingId *out_onboarding_id, QarSession **out_session) |
|
[example_onboarding_persistence] More... | |
| static const char * | get_dir_from_path (const char *path, char *out_dir, size_t out_sz) |
|
[example_obtain_session] More... | |
| static bool | load_onboarding_id (const char *path, QarOnboardingId *out_id) |
|
[example_onboarding_persistence] More... | |
| static void | log_result (const char *label, QarResult r) |
| static void | print_hex_id (const uint8_t *data, size_t len) |
|
Print a fixed-size identifier as hex bytes separated by colons. More... | |
| static void | save_onboarding_id (const char *path, const QarOnboardingId *id) |
|
Persist an onboarding id (UUID text) so the next run can rejoin. More... | |
Functions
example_obtain_session()
| static |
[example_onboarding_persistence]
[example_obtain_session]
Obtain a session the canonical way: rejoin with the persisted onboarding id when one exists, otherwise onboard with the pairing code currently shown on the hub's onboarding screen.
Returns 0 on success; on success *out_session and *out_onboarding_id are set and the id has been persisted to id_file_path for the next run.
get_dir_from_path()
| static |
load_onboarding_id()
| static |
log_result()
| static |
print_hex_id()
| static |
save_onboarding_id()
| static |
File Listing
The file content with the documentation metadata removed is:
2#include "qar_streaming.h"
11print_hex_id(const uint8_t* data, size_t len)
25log_result(const char* label, QarResult r)
27 if(qar_result_is_success(r))
29 printf("%s: SUCCESS (code=%d)\n", label, (int)r.code);
34 qar_result_message(r, msg, sizeof(msg));
35 printf("%s: ERROR (code=%d) msg='%s'\n", label, (int)r.code, msg);
43load_onboarding_id(const char* path, QarOnboardingId* out_id)
58 QarResult parse_result = qar_uuid_from_string(text, out_id->data);
59 return qar_result_is_success(parse_result);
64save_onboarding_id(const char* path, const QarOnboardingId* id)
67 if(qar_result_is_error(qar_uuid_to_string(id->data, text, sizeof(text))))
92 QarRuntime* runtime,
96 QarOnboardingId* out_onboarding_id,
97 QarSession** out_session
100 QarPeerPresentation presentation = qar_peer_presentation_default();
101 presentation.display_name = display_name;
104 QarOnboardingId saved_id = qar_onboarding_id_default();
105 if(load_onboarding_id(id_file_path, &saved_id))
107 QarRejoinInit rejoin_init = qar_rejoin_init_default();
108 rejoin_init.onboarding_id = saved_id;
109 rejoin_init.presentation = presentation;
111 QarResult rejoin_result =
112 qar_runtime_rejoin(runtime, &rejoin_init, NULL, NULL, NULL, out_session);
113 log_result("qar_runtime_rejoin", rejoin_result);
114 if(qar_result_is_success(rejoin_result))
119 if(!qar_result_has_code(rejoin_result, QAR_STATUS_ONBOARDING_SESSION_NOT_FOUND))
137 QarOnboardInit onboard_init = qar_onboard_init_default();
138 QarOnboardCodeExt onboard_code = qar_onboard_code_ext_default();
139 onboard_init.presentation = presentation;
140 onboard_code.code = pairing_code;
143 QarOnboardingId new_id = qar_onboarding_id_default();
144 QarResult onboard_result =
145 qar_runtime_onboard(runtime, &onboard_init, NULL, NULL, NULL, &new_id, out_session);
146 log_result("qar_runtime_onboard", onboard_result);
147 if(qar_result_is_error(onboard_result))
149 if(qar_result_has_code(onboard_result, QAR_STATUS_PAKE_ERROR))
160 save_onboarding_id(id_file_path, &new_id);
169get_dir_from_path(const char* path, char* out_dir, size_t out_sz)
Generated via doxygen2docusaurus 2.2.1 by Doxygen 1.9.8.