| | |
| | | return n_threads > 0 ? (n_threads <= 4 ? n_threads : n_threads / 2) : 4; |
| | | } |
| | | |
| | | static sd_progress_cb_t sd_progress_cb = NULL; |
| | | void* sd_progress_cb_data = NULL; |
| | | |
| | | std::u32string utf8_to_utf32(const std::string& utf8_str) { |
| | | std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> converter; |
| | | return converter.from_bytes(utf8_str); |
| | |
| | | if (step == 0) { |
| | | return; |
| | | } |
| | | if (sd_progress_cb) { |
| | | sd_progress_cb(step,steps,time, sd_progress_cb_data); |
| | | return; |
| | | } |
| | | std::string progress = " |"; |
| | | int max_progress = 50; |
| | | int32_t current = (int32_t)(step * 1.f * max_progress / steps); |
| | |
| | | sd_log_cb = cb; |
| | | sd_log_cb_data = data; |
| | | } |
| | | void sd_set_progress_callback(sd_progress_cb_t cb, void* data) { |
| | | sd_progress_cb = cb; |
| | | sd_progress_cb_data = data; |
| | | } |
| | | |
| | | const char* sd_get_system_info() { |
| | | static char buffer[1024]; |