マイクとカメラ(OpenBSDのみ)

このコミットが含まれているのは:
守矢諏訪子 2024-06-18 14:06:43 +09:00
コミット 794dffcfe2
5個のファイルの変更56行の追加4行の削除

15
main.c
ファイルの表示

@ -4,11 +4,14 @@
#include "src/user.h"
#include "src/os.h"
#include "src/host.h"
#include "src/uptime.h"
#if defined(__linux__)
#include "src/distro.h"
#endif
#include "src/host.h"
#include "src/uptime.h"
#if defined(__OpenBSD__)
#include "src/recording.h"
#endif
#include "src/cpu.h"
#include "src/memory.h"
@ -45,6 +48,14 @@ int main() {
display_time();
printf("\n");
#if defined(__OpenBSD__)
printf("Recording: audio = ");
display_recording_audio();
printf(", video = ");
display_recording_video();
printf("\n");
#endif
printf("CPU: ");
display_cpu();
printf("\n");

ファイルの表示

@ -1,4 +1,4 @@
#include "memory.h"
#include "cpu.h"
#include <stdio.h>
#include <string.h>

32
src/recording.c ノーマルファイル
ファイルの表示

@ -0,0 +1,32 @@
#if defined(__OpenBSD__)
#include "recording.h"
#include <stdio.h>
#include <string.h>
#include <unistd.h>
void run_rec_command(const char *command) {
char buf[128];
FILE *p = popen(command, "r");
if (!p) {
fprintf(stderr, "録画コマンドを実効に失敗: %s", command);
return;
}
while (fgets(buf, sizeof(buf), p) != NULL) {
buf[strcspn(buf, "\n")] = '\0';
printf("%s", strncmp(buf, "0", strlen(buf)) ? "off" : "on");
}
pclose(p);
}
void display_recording_audio() {
run_rec_command("sysctl -n kern.audio.record");
}
void display_recording_video() {
run_rec_command("sysctl -n kern.video.record");
}
#endif

9
src/recording.h ノーマルファイル
ファイルの表示

@ -0,0 +1,9 @@
#if defined(__OpenBSD__)
#ifndef RECORDING_H
#define RECORDING_H
void display_recording_audio();
void display_recording_video();
#endif
#endif

ファイルの表示

@ -1,4 +1,4 @@
#include "memory.h"
#include "uptime.h"
#include <stdio.h>
#include <string.h>