1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include "../cache.h" 2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include "progress.h" 3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstatic void nop_progress_update(u64 curr __maybe_unused, 5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng u64 total __maybe_unused, 6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng const char *title __maybe_unused) 7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng{ 8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng} 9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstatic struct ui_progress default_progress_fns = 11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng{ 12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng .update = nop_progress_update, 13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng}; 14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct ui_progress *progress_fns = &default_progress_fns; 16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid ui_progress__update(u64 curr, u64 total, const char *title) 18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng{ 19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng return progress_fns->update(curr, total, title); 20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng} 21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid ui_progress__finish(void) 23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng{ 24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng if (progress_fns->finish) 25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng progress_fns->finish(); 26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng} 27