1*a10cf76eSAxel Dörfler // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 2*a10cf76eSAxel Dörfler // 3*a10cf76eSAxel Dörfler // Copyright (c) 2003, OpenBeOS 4*a10cf76eSAxel Dörfler // 5*a10cf76eSAxel Dörfler // This software is part of the OpenBeOS distribution and is covered 6*a10cf76eSAxel Dörfler // by the OpenBeOS license. 7*a10cf76eSAxel Dörfler // 8*a10cf76eSAxel Dörfler // 9*a10cf76eSAxel Dörfler // File: Media.cpp 10*a10cf76eSAxel Dörfler // Author: Sikosis, Jérôme Duval 11*a10cf76eSAxel Dörfler // Description: Media Preferences 12*a10cf76eSAxel Dörfler // Created : June 25, 2003 13*a10cf76eSAxel Dörfler // 14*a10cf76eSAxel Dörfler // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 15*a10cf76eSAxel Dörfler 16*a10cf76eSAxel Dörfler 17*a10cf76eSAxel Dörfler // Includes -------------------------------------------------------------------------------------------------- // 18*a10cf76eSAxel Dörfler #include <StorageKit.h> 19*a10cf76eSAxel Dörfler #include <Roster.h> 20*a10cf76eSAxel Dörfler #include <String.h> 21*a10cf76eSAxel Dörfler #include <stdio.h> 22*a10cf76eSAxel Dörfler #include "Media.h" 23*a10cf76eSAxel Dörfler 24*a10cf76eSAxel Dörfler // Media -- constructor 25*a10cf76eSAxel Dörfler Media::Media() 26*a10cf76eSAxel Dörfler : BApplication (APP_SIGNATURE) 27*a10cf76eSAxel Dörfler { 28*a10cf76eSAxel Dörfler BRect rect(32,64,637,442); 29*a10cf76eSAxel Dörfler 30*a10cf76eSAxel Dörfler BPath path; 31*a10cf76eSAxel Dörfler if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) == B_OK) { 32*a10cf76eSAxel Dörfler path.Append(SETTINGS_FILE); 33*a10cf76eSAxel Dörfler BFile file(path.Path(),B_READ_ONLY); 34*a10cf76eSAxel Dörfler if (file.InitCheck()==B_OK) { 35*a10cf76eSAxel Dörfler char buffer[255]; 36*a10cf76eSAxel Dörfler ssize_t size = 0; 37*a10cf76eSAxel Dörfler while ((size = file.Read(buffer, 255)) > 0) { 38*a10cf76eSAxel Dörfler int32 i=0; 39*a10cf76eSAxel Dörfler while(buffer[i]=='#') { 40*a10cf76eSAxel Dörfler while(i<size&&buffer[i]!='\n') 41*a10cf76eSAxel Dörfler i++; 42*a10cf76eSAxel Dörfler i++; 43*a10cf76eSAxel Dörfler } 44*a10cf76eSAxel Dörfler int32 a,b,c,d; 45*a10cf76eSAxel Dörfler if (sscanf(&buffer[i], " rect = %li,%li,%li,%li", &a, &b, &c, &d) > 0) { 46*a10cf76eSAxel Dörfler if (c-a >= rect.IntegerWidth()) { 47*a10cf76eSAxel Dörfler rect.left = a; 48*a10cf76eSAxel Dörfler rect.right = c; 49*a10cf76eSAxel Dörfler } 50*a10cf76eSAxel Dörfler if (d-b >= rect.IntegerHeight()) { 51*a10cf76eSAxel Dörfler rect.top = b; 52*a10cf76eSAxel Dörfler rect.bottom = d; 53*a10cf76eSAxel Dörfler } 54*a10cf76eSAxel Dörfler } 55*a10cf76eSAxel Dörfler } 56*a10cf76eSAxel Dörfler } 57*a10cf76eSAxel Dörfler } 58*a10cf76eSAxel Dörfler 59*a10cf76eSAxel Dörfler mWindow = new MediaWindow(rect); 60*a10cf76eSAxel Dörfler mWindow->SetSizeLimits(605.0, 10000.0, 378.0, 10000.0); 61*a10cf76eSAxel Dörfler 62*a10cf76eSAxel Dörfler be_roster->StartWatching(BMessenger(this)); 63*a10cf76eSAxel Dörfler } 64*a10cf76eSAxel Dörfler // ---------------------------------------------------------------------------------------------------------- // 65*a10cf76eSAxel Dörfler 66*a10cf76eSAxel Dörfler Media::~Media() 67*a10cf76eSAxel Dörfler { 68*a10cf76eSAxel Dörfler be_roster->StopWatching(BMessenger(this)); 69*a10cf76eSAxel Dörfler } 70*a10cf76eSAxel Dörfler 71*a10cf76eSAxel Dörfler 72*a10cf76eSAxel Dörfler status_t 73*a10cf76eSAxel Dörfler Media::InitCheck() 74*a10cf76eSAxel Dörfler { 75*a10cf76eSAxel Dörfler if (mWindow) 76*a10cf76eSAxel Dörfler return mWindow->InitCheck(); 77*a10cf76eSAxel Dörfler return B_OK; 78*a10cf76eSAxel Dörfler } 79*a10cf76eSAxel Dörfler 80*a10cf76eSAxel Dörfler 81*a10cf76eSAxel Dörfler // Media::MessageReceived -- handles incoming messages 82*a10cf76eSAxel Dörfler void Media::MessageReceived (BMessage *message) 83*a10cf76eSAxel Dörfler { 84*a10cf76eSAxel Dörfler switch(message->what) 85*a10cf76eSAxel Dörfler { 86*a10cf76eSAxel Dörfler case B_SOME_APP_LAUNCHED: 87*a10cf76eSAxel Dörfler case B_SOME_APP_QUIT: 88*a10cf76eSAxel Dörfler mWindow->PostMessage(message); 89*a10cf76eSAxel Dörfler break; 90*a10cf76eSAxel Dörfler default: 91*a10cf76eSAxel Dörfler BApplication::MessageReceived(message); // pass it along ... 92*a10cf76eSAxel Dörfler break; 93*a10cf76eSAxel Dörfler } 94*a10cf76eSAxel Dörfler } 95*a10cf76eSAxel Dörfler // ---------------------------------------------------------------------------------------------------------- // 96*a10cf76eSAxel Dörfler 97*a10cf76eSAxel Dörfler // Media Main 98*a10cf76eSAxel Dörfler int main(void) 99*a10cf76eSAxel Dörfler { 100*a10cf76eSAxel Dörfler Media theApp; 101*a10cf76eSAxel Dörfler if (theApp.InitCheck() == B_OK) 102*a10cf76eSAxel Dörfler theApp.Run(); 103*a10cf76eSAxel Dörfler return 0; 104*a10cf76eSAxel Dörfler } 105*a10cf76eSAxel Dörfler // end ------------------------------------------------------------------------------------------------------ // 106