📄 play_monitoring.c
字号:
/* * * Copyright (c) Sigma Designs, Inc. 2005. All rights reserved. * *//** * @file play_monitoring.c * @brief Simple application which demonstates the use of librmmonitoring. * * @author Sylvain Garrigues */#include <stdio.h>#include <signal.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#define ALLOW_OS_CODE 1#include "../rmdef/rmdef.h"#include "../librmmonitoring/include/librmmonitoring.h"#define REFRESH_RATE_US 500000void stop(int);void usage(char *);void parse_cmdline(int, char **, RMuint32 *);RMbool stopped = FALSE;char *scalers[] = {"OSD scaler", "GFX scaler", "main video scaler", "VCR scaler", "CRT scaler", "subpicture scaler"};void usage(char *prog_name) { printf("Usage: %s [-oscaler n]\nwhere n represents the scaler to use to display monitoring information:\n\ 0: OSD scaler (default) 1: GFX scaler\n\ 2: main video scaler 3: VCR scaler\n\ 4: CRT scaler 5: subpicture scaler\n", prog_name); exit(0);}void parse_cmdline(int argc, char *argv[], RMuint32 *pScaler) { if (argc == 1) *pScaler = 0; else if (argc == 3) if (strcmp("-oscaler", argv[1]) == 0) { if (strlen(argv[2]) > 1) usage(argv[0]); else if ('0' <= argv[2][0] && argv[2][0] <= '5') *pScaler = argv[2][0] - '0'; else usage(argv[0]); } else usage(argv[0]); else usage(argv[0]);}void stop(int a){ puts("\nStopping monitoring."); stopped = TRUE;}int main(int argc, char *argv[]){ RMstatus err; RMuint32 scaler_index; parse_cmdline(argc, argv, &scaler_index); printf("Starting monitoring using %s.\n", scalers[scaler_index]); err = start_monitoring(scaler_index); if (RMFAILED(err)) { fputs("Error starting monitoring.\n", stderr); return 1; } signal(SIGINT, stop); printf("Monitoring"); while (!stopped) { update_monitoring(); usleep(REFRESH_RATE_US); } stop_monitoring(); if (RMFAILED(err)) { fputs("Error stopping monitoring.\n", stderr); return 1; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -