diff --git a/src/bin/Jamfile b/src/bin/Jamfile index ab56ac6daa..34a63a3a53 100644 --- a/src/bin/Jamfile +++ b/src/bin/Jamfile @@ -128,6 +128,7 @@ SubInclude OBOS_TOP src bin patch ; SubInclude OBOS_TOP src bin pc ; SubInclude OBOS_TOP src bin playsound ; SubInclude OBOS_TOP src bin rmd160 ; +SubInclude OBOS_TOP src bin screen_blanker ; SubInclude OBOS_TOP src bin sed ; SubInclude OBOS_TOP src bin sharutils ; SubInclude OBOS_TOP src bin strace ; diff --git a/src/bin/screen_blanker/Jamfile b/src/bin/screen_blanker/Jamfile new file mode 100644 index 0000000000..534e7cf98c --- /dev/null +++ b/src/bin/screen_blanker/Jamfile @@ -0,0 +1,11 @@ +SubDir OBOS_TOP src bin screen_blanker ; + +UsePrivateHeaders screen_saver ; + +BinCommand screen_blanker : + ScreenSaverApp.cpp + SSAwindow.cpp + pwWindow.cpp + : be game libscreensaver.so +; + diff --git a/src/servers/screensaver/SSAwindow.cpp b/src/bin/screen_blanker/SSAwindow.cpp similarity index 51% rename from src/servers/screensaver/SSAwindow.cpp rename to src/bin/screen_blanker/SSAwindow.cpp index e853a9d6fe..d4986b874c 100644 --- a/src/servers/screensaver/SSAwindow.cpp +++ b/src/bin/screen_blanker/SSAwindow.cpp @@ -1,18 +1,20 @@ +/* + * Copyright 2003, Michael Phipps. All rights reserved. + * Distributed under the terms of the MIT License. + */ + #include "SSAwindow.h" -#include "Locker.h" -#include "View.h" -#include -#include -#include +#include // This is the BDirectWindow subclass that rendering occurs in. // A view is added to it so that BView based screensavers will work. -SSAwindow::SSAwindow(BRect frame) : BDirectWindow(frame, "ScreenSaver Window", - B_BORDERED_WINDOW, B_NOT_RESIZABLE|B_NOT_ZOOMABLE) , fSaver(NULL) +SSAwindow::SSAwindow(BRect frame) + : BDirectWindow(frame, "ScreenSaver Window", + B_BORDERED_WINDOW, B_NOT_RESIZABLE|B_NOT_ZOOMABLE) , fSaver(NULL) { frame.OffsetTo(0,0); - fView=new BView(frame,"ScreenSaver View",B_FOLLOW_ALL,B_WILL_DRAW); - AddChild (fView); + fView = new BView(frame,"ScreenSaver View",B_FOLLOW_ALL,B_WILL_DRAW); + AddChild(fView); } @@ -29,9 +31,11 @@ SSAwindow::QuitRequested(void) return true; } + void SSAwindow::DirectConnected(direct_buffer_info *info) { if (fSaver) fSaver->DirectConnected(info); } + diff --git a/src/servers/screensaver/SSAwindow.h b/src/bin/screen_blanker/SSAwindow.h similarity index 57% rename from src/servers/screensaver/SSAwindow.h rename to src/bin/screen_blanker/SSAwindow.h index f26a776096..440b714537 100644 --- a/src/servers/screensaver/SSAwindow.h +++ b/src/bin/screen_blanker/SSAwindow.h @@ -1,4 +1,9 @@ -#include "DirectWindow.h" +/* + * Copyright 2003, Michael Phipps. All rights reserved. + * Distributed under the terms of the MIT License. + */ + +#include #include "ScreenSaver.h" class SSAwindow : public BDirectWindow { @@ -7,9 +12,10 @@ public: ~SSAwindow(); virtual bool QuitRequested(); virtual void DirectConnected(direct_buffer_info *info); - void SetSaver(BScreenSaver *s) {fSaver=s;} + void SetSaver(BScreenSaver *s) {fSaver = s;} BView *fView; private: BScreenSaver *fSaver; }; + diff --git a/src/servers/screensaver/ScreenSaverApp.cpp b/src/bin/screen_blanker/ScreenSaverApp.cpp similarity index 57% rename from src/servers/screensaver/ScreenSaverApp.cpp rename to src/bin/screen_blanker/ScreenSaverApp.cpp index 08085a9cc2..6a28fcc761 100755 --- a/src/servers/screensaver/ScreenSaverApp.cpp +++ b/src/bin/screen_blanker/ScreenSaverApp.cpp @@ -1,16 +1,20 @@ -#ifndef SCREEN_SAVER_H -#include "ScreenSaverApp.h" -#endif +/* + * Copyright 2003, Michael Phipps. All rights reserved. + * Distributed under the terms of the MIT License. + */ + #include -#include "Screen.h" -#include "image.h" -#include "StorageDefs.h" -#include "FindDirectory.h" -#include "SupportDefs.h" -#include "File.h" -#include "Path.h" -#include "string.h" -#include "Beep.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include // Start the server application. Set pulse to fire once per second. @@ -23,9 +27,11 @@ int main(int, char**) } // Construct the server app. Doesn't do much, at this point. -ScreenSaverApp::ScreenSaverApp() : BApplication("application/x-vnd.OBOS-ScreenSaverApp"),fWin(NULL) +ScreenSaverApp::ScreenSaverApp() + : BApplication("application/x-vnd.OBOS-ScreenSaverApp"), + fWin(NULL) { - fBlankTime=real_time_clock(); + fBlankTime = system_time(); } @@ -36,35 +42,35 @@ ScreenSaverApp::ReadyToRun(void) exit(1); else { // If everything works OK, create a BDirectWindow and start the render thread. BScreen theScreen(B_MAIN_SCREEN_ID); - fWin=new SSAwindow(theScreen.Frame()); - fPww=new pwWindow(); - fThrd=new ScreenSaverThread(fWin,fWin->fView,&fPref); + fWin = new SSAwindow(theScreen.Frame()); + fPww = new PasswordWindow(); + fThrd = new ScreenSaverThread(fWin,fWin->fView,&fPref); - fSaver=fThrd->LoadAddOn(); + fSaver = fThrd->LoadAddOn(); if (!fSaver) exit(1); fWin->SetSaver(fSaver); fWin->SetFullScreen(true); fWin->Show(); - fThreadID=spawn_thread(threadFunc,"ScreenSaverRenderer",0,fThrd); + fThreadID = spawn_thread(ScreenSaverThread::ThreadFunc,"ScreenSaverRenderer",0,fThrd); resume_thread(fThreadID); HideCursor(); - } + } } void ScreenSaverApp::ShowPW(void) { - fWin->Lock(); - suspend_thread(fThreadID); - if (B_OK==fWin->SetFullScreen(false)) { - fWin->Sync(); - ShowCursor(); - fPww->Show(); - fPww->Sync(); - } - fWin->Unlock(); + fWin->Lock(); + suspend_thread(fThreadID); + if (B_OK==fWin->SetFullScreen(false)) { + fWin->Sync(); + ShowCursor(); + fPww->Show(); + fPww->Sync(); + } + fWin->Unlock(); } @@ -82,14 +88,14 @@ ScreenSaverApp::MessageReceived(BMessage *message) } else { printf ("Quitting!\n"); - shutdown(); + Shutdown(); } break; case 'MOO1': if (real_time_clock()-fBlankTime>fPref.PasswordTime()) ShowPW(); else - shutdown(); + Shutdown(); break; default: BApplication::MessageReceived(message); @@ -99,7 +105,7 @@ ScreenSaverApp::MessageReceived(BMessage *message) void -ScreenSaverApp::shutdown(void) +ScreenSaverApp::Shutdown(void) { if (fWin) fWin->Hide(); diff --git a/src/servers/screensaver/ScreenSaverApp.h b/src/bin/screen_blanker/ScreenSaverApp.h similarity index 54% rename from src/servers/screensaver/ScreenSaverApp.h rename to src/bin/screen_blanker/ScreenSaverApp.h index c2977c4421..6fb6a83dcd 100755 --- a/src/servers/screensaver/ScreenSaverApp.h +++ b/src/bin/screen_blanker/ScreenSaverApp.h @@ -1,9 +1,12 @@ -#ifndef SCREEN_SAVER_H -#define SCREEN_SAVER_H +/* + * Copyright 2003, Michael Phipps. All rights reserved. + * Distributed under the terms of the MIT License. + */ + +#ifndef SCREEN_SAVER_APP_H +#define SCREEN_SAVER_APP_H -#ifndef _APPLICATION_H #include -#endif #include "SSAwindow.h" #include "ScreenSaverPrefs.h" #include "ScreenSaverThread.h" @@ -13,23 +16,23 @@ class ScreenSaverApp : public BApplication { public: ScreenSaverApp(); - bool LoadAddOn(void); - void ReadyToRun(void); -// bool QuitRequested(void); -// void Quit(void); + bool LoadAddOn(); + void ReadyToRun(); +// bool QuitRequested(); +// void Quit(); virtual void MessageReceived(BMessage *message); - void ShowPW(void); + void ShowPW(); private: ScreenSaverPrefs fPref; SSAwindow *fWin; BScreenSaver *fSaver; ScreenSaverThread *fThrd; - pwWindow *fPww; + PasswordWindow *fPww; thread_id fThreadID; uint32 fBlankTime; - void shutdown(void); + void Shutdown(); }; -#endif //SCREEN_SAVER_H +#endif //SCREEN_SAVER_APP_H diff --git a/src/servers/screensaver/pwWindow.cpp b/src/bin/screen_blanker/pwWindow.cpp similarity index 75% rename from src/servers/screensaver/pwWindow.cpp rename to src/bin/screen_blanker/pwWindow.cpp index 0aed483de4..6c55e68bc5 100644 --- a/src/servers/screensaver/pwWindow.cpp +++ b/src/bin/screen_blanker/pwWindow.cpp @@ -1,10 +1,15 @@ +/* + * Copyright 2003, Michael Phipps. All rights reserved. + * Distributed under the terms of the MIT License. + */ + +#include +#include #include "pwWindow.h" -#include "Screen.h" -#include -#include "Application.h" + void -pwWindow::setup(void) +PasswordWindow::Setup() { BScreen theScreen(B_MAIN_SCREEN_ID); MoveTo((theScreen.Frame().IntegerWidth()-Bounds().IntegerWidth())/2,(theScreen.Frame().IntegerHeight()-Bounds().IntegerHeight())/2); @@ -20,7 +25,7 @@ pwWindow::setup(void) fCustomBox->SetLabel("Unlock screen saver"); fBgd->AddChild(fCustomBox); - fPassword=new BTextControl(BRect(10,28,255,47),"pwdCntrl","Enter fPassword:",NULL,B_FOLLOW_NONE); + fPassword = new BTextControl(BRect(10,28,255,47),"pwdCntrl","Enter fPassword:",NULL,B_FOLLOW_NONE); fPassword->SetDivider(100); fCustomBox->AddChild(fPassword); diff --git a/src/bin/screen_blanker/pwWindow.h b/src/bin/screen_blanker/pwWindow.h new file mode 100644 index 0000000000..eb33be42e8 --- /dev/null +++ b/src/bin/screen_blanker/pwWindow.h @@ -0,0 +1,30 @@ +/* + * Copyright 2003, Michael Phipps. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef PASSWORDWINDOW_H +#define PASSWORDWINDOW_H + +#include +#include +#include +#include + +class PasswordWindow : public BWindow +{ + public: + PasswordWindow() : BWindow(BRect(100,100,400,230),"pwView",B_NO_BORDER_WINDOW_LOOK, B_FLOATING_ALL_WINDOW_FEEL , + B_NOT_MOVABLE | B_NOT_CLOSABLE |B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS , + B_ALL_WORKSPACES), fDie(false) { Setup(); } + void Setup(void); + const char *GetPassword(void) {return fPassword->Text();} + + bool fDie; + private: + BView *fBgd; + BBox *fCustomBox; + BTextControl *fPassword; + BButton *fUnlock; +}; + +#endif // PASSWORDWINDOW_H diff --git a/src/servers/Jamfile b/src/servers/Jamfile index d7922a0442..acfc053449 100644 --- a/src/servers/Jamfile +++ b/src/servers/Jamfile @@ -11,5 +11,4 @@ SubInclude OBOS_TOP src servers midi ; SubInclude OBOS_TOP src servers power ; SubInclude OBOS_TOP src servers print ; SubInclude OBOS_TOP src servers registrar ; -SubInclude OBOS_TOP src servers screensaver ; SubInclude OBOS_TOP src servers syslog_daemon ; diff --git a/src/servers/screensaver/Jamfile b/src/servers/screensaver/Jamfile deleted file mode 100644 index 9c3c712478..0000000000 --- a/src/servers/screensaver/Jamfile +++ /dev/null @@ -1,10 +0,0 @@ -SubDir OBOS_TOP src servers screensaver ; - -UsePrivateHeaders screen_saver ; - -Server OBOSscreensaver : - ScreenSaverApp.cpp - SSAwindow.cpp - pwWindow.cpp -; -LinkSharedOSLibs OBOSscreensaver : be game libscreensaver.so ; diff --git a/src/servers/screensaver/pwWindow.h b/src/servers/screensaver/pwWindow.h deleted file mode 100644 index c68f0fc884..0000000000 --- a/src/servers/screensaver/pwWindow.h +++ /dev/null @@ -1,22 +0,0 @@ -#include "Window.h" -#include "Box.h" -#include "TextControl.h" -#include "Button.h" - -class pwWindow : public BWindow -{ - public: - pwWindow (void) : BWindow(BRect(100,100,400,230),"pwView",B_NO_BORDER_WINDOW_LOOK, B_FLOATING_ALL_WINDOW_FEEL , - B_NOT_MOVABLE | B_NOT_CLOSABLE |B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS , - B_ALL_WORKSPACES), fDie(false) {setup();} - void setup(void); - const char *GetPassword(void) {return fPassword->Text();} - - bool fDie; - private: - BView *fBgd; - BBox *fCustomBox; - BTextControl *fPassword; - BButton *fUnlock; -}; -