xref: /haiku/src/preferences/media/Media.cpp (revision 7482390ab4dc1e77ccb42b4f2c290b5bfe814f7f)
137ec4f04SAxel Dörfler /*
237ec4f04SAxel Dörfler  * Copyright 2003-2006, Haiku. All rights reserved.
337ec4f04SAxel Dörfler  * Distributed under the terms of the MIT License.
437ec4f04SAxel Dörfler  *
537ec4f04SAxel Dörfler  * Authors in chronological order:
637ec4f04SAxel Dörfler  *		Sikosis
737ec4f04SAxel Dörfler  *		Jérôme Duval
837ec4f04SAxel Dörfler  */
9a10cf76eSAxel Dörfler 
10a10cf76eSAxel Dörfler 
1137ec4f04SAxel Dörfler #include "Media.h"
1237ec4f04SAxel Dörfler 
13a10cf76eSAxel Dörfler #include <stdio.h>
14a10cf76eSAxel Dörfler 
15f8a1135cSAdrien Destugues #include <Catalog.h>
16f8a1135cSAdrien Destugues #include <Locale.h>
17f8a1135cSAdrien Destugues #include <StorageKit.h>
18f8a1135cSAdrien Destugues #include <String.h>
19f8a1135cSAdrien Destugues 
2037ec4f04SAxel Dörfler 
Media()21a10cf76eSAxel Dörfler Media::Media()
22a633251fSAlex Wilson 	:
23*7482390aSDario Casalinuovo 	BApplication("application/x-vnd.Haiku-Media"),
24e7b99741SAlex Wilson 	fIcons(),
25b63e3a34SAlex Wilson 	fWindow(NULL)
26a10cf76eSAxel Dörfler {
272af5f895SStephan Aßmus 	BRect rect(32, 64, 637, 462);
28a10cf76eSAxel Dörfler 
29a10cf76eSAxel Dörfler 	BPath path;
30a10cf76eSAxel Dörfler 	if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) == B_OK) {
31a10cf76eSAxel Dörfler 		path.Append(SETTINGS_FILE);
32a10cf76eSAxel Dörfler 		BFile file(path.Path(),B_READ_ONLY);
33a10cf76eSAxel Dörfler 		if (file.InitCheck()==B_OK) {
34a10cf76eSAxel Dörfler 			char buffer[255];
35a10cf76eSAxel Dörfler 			ssize_t size = 0;
36a10cf76eSAxel Dörfler 			while ((size = file.Read(buffer, 255)) > 0) {
37a10cf76eSAxel Dörfler 				int32 i = 0;
38a10cf76eSAxel Dörfler 				while (buffer[i] == '#') {
39a10cf76eSAxel Dörfler 					while (i < size && buffer[i] != '\n')
40a10cf76eSAxel Dörfler 						i++;
41a10cf76eSAxel Dörfler 					i++;
42a10cf76eSAxel Dörfler 				}
43a10cf76eSAxel Dörfler 				int32 a, b, c, d;
44a633251fSAlex Wilson 				const char* scanString = " rect = %li,%li,%li,%li";
45a633251fSAlex Wilson 				if (sscanf(&buffer[i], scanString, &a, &b, &c, &d) == 4) {
46a10cf76eSAxel Dörfler 					if (c - a >= rect.IntegerWidth()) {
47a10cf76eSAxel Dörfler 						rect.left = a;
48a10cf76eSAxel Dörfler 						rect.right = c;
49a10cf76eSAxel Dörfler 					}
50a10cf76eSAxel Dörfler 					if (d - b >= rect.IntegerHeight()) {
51a10cf76eSAxel Dörfler 						rect.top = b;
52a10cf76eSAxel Dörfler 						rect.bottom = d;
53a10cf76eSAxel Dörfler 					}
54a10cf76eSAxel Dörfler 				}
55a10cf76eSAxel Dörfler 			}
56a10cf76eSAxel Dörfler 		}
57a10cf76eSAxel Dörfler 	}
58a10cf76eSAxel Dörfler 
59e7b99741SAlex Wilson 	MediaListItem::SetIcons(&fIcons);
607afc7756SAlex Wilson 	fWindow = new MediaWindow(rect);
61a10cf76eSAxel Dörfler }
62a10cf76eSAxel Dörfler 
63a10cf76eSAxel Dörfler 
64a10cf76eSAxel Dörfler status_t
InitCheck()65a10cf76eSAxel Dörfler Media::InitCheck()
66a10cf76eSAxel Dörfler {
67b4a12470SJérôme Duval 	if (fWindow)
68b4a12470SJérôme Duval 		return fWindow->InitCheck();
69a10cf76eSAxel Dörfler 	return B_OK;
70a10cf76eSAxel Dörfler }
71a10cf76eSAxel Dörfler 
72a10cf76eSAxel Dörfler 
7337ec4f04SAxel Dörfler //	#pragma mark -
7437ec4f04SAxel Dörfler 
7537ec4f04SAxel Dörfler 
7637ec4f04SAxel Dörfler int
main(int,char **)7737ec4f04SAxel Dörfler main(int, char**)
78a10cf76eSAxel Dörfler {
7937ec4f04SAxel Dörfler 	Media app;
8037ec4f04SAxel Dörfler 	if (app.InitCheck() == B_OK)
8137ec4f04SAxel Dörfler 		app.Run();
8237ec4f04SAxel Dörfler 
83a10cf76eSAxel Dörfler 	return 0;
84a10cf76eSAxel Dörfler }
8537ec4f04SAxel Dörfler 
86