diff options
Diffstat (limited to 'src/tools/perf/ui/setup.c')
-rw-r--r-- | src/tools/perf/ui/setup.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/tools/perf/ui/setup.c b/src/tools/perf/ui/setup.c new file mode 100644 index 0000000..47d9a57 --- /dev/null +++ b/src/tools/perf/ui/setup.c @@ -0,0 +1,52 @@ +#include <pthread.h> + +#include "../util/cache.h" +#include "../util/debug.h" +#include "../util/hist.h" + +pthread_mutex_t ui__lock = PTHREAD_MUTEX_INITIALIZER; + +void setup_browser(bool fallback_to_pager) +{ + if (use_browser < 2 && (!isatty(1) || dump_trace)) + use_browser = 0; + + /* default to TUI */ + if (use_browser < 0) + use_browser = 1; + + switch (use_browser) { + case 2: + if (perf_gtk__init() == 0) + break; + /* fall through */ + case 1: + use_browser = 1; + if (ui__init() == 0) + break; + /* fall through */ + default: + use_browser = 0; + if (fallback_to_pager) + setup_pager(); + + perf_hpp__init(); + break; + } +} + +void exit_browser(bool wait_for_ok) +{ + switch (use_browser) { + case 2: + perf_gtk__exit(wait_for_ok); + break; + + case 1: + ui__exit(wait_for_ok); + break; + + default: + break; + } +} |