1/* 2 * Copyright 2003-2006, Haiku. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors in chronological order: 6 * Sikosis 7 * Jérôme Duval 8 */ 9 10 11#include "Media.h" 12 13#include <stdio.h> 14 15#include <Catalog.h> 16#include <Locale.h> 17#include <StorageKit.h> 18#include <String.h> 19 20 21Media::Media() 22 : 23 BApplication("application/x-vnd.Haiku-Media"), 24 fIcons(), 25 fWindow(NULL) 26{ 27 BRect rect(32, 64, 637, 462); 28 29 BPath path; 30 if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) == B_OK) { 31 path.Append(SETTINGS_FILE); 32 BFile file(path.Path(),B_READ_ONLY); 33 if (file.InitCheck()==B_OK) { 34 char buffer[255]; 35 ssize_t size = 0; 36 while ((size = file.Read(buffer, 255)) > 0) { 37 int32 i = 0; 38 while (buffer[i] == '#') { 39 while (i < size && buffer[i] != '\n') 40 i++; 41 i++; 42 } 43 int32 a, b, c, d; 44 const char* scanString = " rect = %li,%li,%li,%li"; 45 if (sscanf(&buffer[i], scanString, &a, &b, &c, &d) == 4) { 46 if (c - a >= rect.IntegerWidth()) { 47 rect.left = a; 48 rect.right = c; 49 } 50 if (d - b >= rect.IntegerHeight()) { 51 rect.top = b; 52 rect.bottom = d; 53 } 54 } 55 } 56 } 57 } 58 59 MediaListItem::SetIcons(&fIcons); 60 fWindow = new MediaWindow(rect); 61} 62 63 64status_t 65Media::InitCheck() 66{ 67 if (fWindow) 68 return fWindow->InitCheck(); 69 return B_OK; 70} 71 72 73// #pragma mark - 74 75 76int 77main(int, char**) 78{ 79 Media app; 80 if (app.InitCheck() == B_OK) 81 app.Run(); 82 83 return 0; 84} 85 86