1688f2f5bSNamhyung Kim #include "../cache.h" 2688f2f5bSNamhyung Kim #include "progress.h" 3688f2f5bSNamhyung Kim 4*4d3001fdSArnaldo Carvalho de Melo static void null_progress__update(struct ui_progress *p __maybe_unused) 5688f2f5bSNamhyung Kim { 6688f2f5bSNamhyung Kim } 7688f2f5bSNamhyung Kim 84779a2e9SArnaldo Carvalho de Melo static struct ui_progress_ops null_progress__ops = 9688f2f5bSNamhyung Kim { 104779a2e9SArnaldo Carvalho de Melo .update = null_progress__update, 11688f2f5bSNamhyung Kim }; 12688f2f5bSNamhyung Kim 134779a2e9SArnaldo Carvalho de Melo struct ui_progress_ops *ui_progress__ops = &null_progress__ops; 14688f2f5bSNamhyung Kim 15*4d3001fdSArnaldo Carvalho de Melo void ui_progress__update(struct ui_progress *p, u64 adv) 16688f2f5bSNamhyung Kim { 17*4d3001fdSArnaldo Carvalho de Melo p->curr += adv; 18*4d3001fdSArnaldo Carvalho de Melo 19*4d3001fdSArnaldo Carvalho de Melo if (p->curr >= p->next) { 20*4d3001fdSArnaldo Carvalho de Melo p->next += p->step; 21*4d3001fdSArnaldo Carvalho de Melo ui_progress__ops->update(p); 22*4d3001fdSArnaldo Carvalho de Melo } 23*4d3001fdSArnaldo Carvalho de Melo } 24*4d3001fdSArnaldo Carvalho de Melo 25*4d3001fdSArnaldo Carvalho de Melo void ui_progress__init(struct ui_progress *p, u64 total, const char *title) 26*4d3001fdSArnaldo Carvalho de Melo { 27*4d3001fdSArnaldo Carvalho de Melo p->curr = 0; 28*4d3001fdSArnaldo Carvalho de Melo p->next = p->step = total / 16; 29*4d3001fdSArnaldo Carvalho de Melo p->total = total; 30*4d3001fdSArnaldo Carvalho de Melo p->title = title; 31*4d3001fdSArnaldo Carvalho de Melo 32688f2f5bSNamhyung Kim } 33a5580f3eSNamhyung Kim 34a5580f3eSNamhyung Kim void ui_progress__finish(void) 35a5580f3eSNamhyung Kim { 364779a2e9SArnaldo Carvalho de Melo if (ui_progress__ops->finish) 374779a2e9SArnaldo Carvalho de Melo ui_progress__ops->finish(); 38a5580f3eSNamhyung Kim } 39