1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:07:45 +00:00

WindowServer: Put a clock in the top right corner of the screen.

This way we don't even need the Clock app anymore. Very cool :^)
This commit is contained in:
Andreas Kling 2019-02-13 09:10:32 +01:00
parent cac8153436
commit c5a00a56c8
7 changed files with 106 additions and 14 deletions

View file

@ -64,6 +64,19 @@ static unsigned days_in_years_since_epoch(unsigned year)
return days;
}
void read_registers(unsigned& year, unsigned& month, unsigned& day, unsigned& hour, unsigned& minute, unsigned& second)
{
while (update_in_progress())
;
year = (CMOS::read(0x32) * 100) + CMOS::read(0x09);
month = CMOS::read(0x08);
day = CMOS::read(0x07);
hour = CMOS::read(0x04);
minute = CMOS::read(0x02);
second = CMOS::read(0x00);
}
time_t now()
{
// FIXME: We should probably do something more robust here.
@ -72,12 +85,8 @@ time_t now()
while (update_in_progress())
;
unsigned year = (CMOS::read(0x32) * 100) + CMOS::read(0x09);
unsigned month = CMOS::read(0x08);
unsigned day = CMOS::read(0x07);
unsigned hour = CMOS::read(0x04);
unsigned minute = CMOS::read(0x02);
unsigned second = CMOS::read(0x00);
unsigned year, month, day, hour, minute, second;
read_registers(year, month, day, hour, minute, second);
ASSERT(year >= 2018);

View file

@ -7,6 +7,7 @@ namespace RTC {
void initialize();
time_t now();
time_t boot_time();
void read_registers(unsigned& year, unsigned& month, unsigned& day, unsigned& hour, unsigned& minute, unsigned& second);
}

View file

@ -28,7 +28,6 @@
//#define SPAWN_GUITEST
#define SPAWN_LAUNCHER
//#define SPAWN_GUITEST2
#define SPAWN_CLOCK
#define SPAWN_FILE_MANAGER
//#define SPAWN_FONTEDITOR
//#define SPAWN_MULTIPLE_SHELLS
@ -116,9 +115,6 @@ static void init_stage2()
#ifdef SPAWN_LAUNCHER
Process::create_user_process("/bin/Launcher", (uid_t)100, (gid_t)100, (pid_t)0, error, { }, { }, tty0);
#endif
#ifdef SPAWN_CLOCK
Process::create_user_process("/bin/Clock", (uid_t)100, (gid_t)100, (pid_t)0, error, { }, { }, tty0);
#endif
#ifdef SPAWN_FILE_MANAGER
Process::create_user_process("/bin/FileManager", (uid_t)100, (gid_t)100, (pid_t)0, error, { }, { }, tty0);
#endif