File: main.cpp

package info (click to toggle)
smplayer 24.5.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 37,348 kB
  • sloc: cpp: 52,011; ansic: 16,655; makefile: 246; sh: 123; xml: 66
file content (82 lines) | stat: -rw-r--r-- 2,474 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "../src/extensions.h"
#include "../src/version.h"
#include <QString>
#include <stdio.h>

void print_stringlist(const QStringList & l, int spaces) {
	QString sp;
	sp.fill(QChar(' '), spaces);

	foreach(QString v, l) {
		QString s = sp + v;
		printf("%s\n", s.toLatin1().constData());
	}
}

void print_string(const QString & s, int spaces = 4) {
	print_stringlist(QStringList() << s, spaces);
}

void print_key(const QString & key, const QString & value, int spaces = 4) {
	print_stringlist(QStringList() << QString("<key>%1</key>").arg(key) << QString("<string>%1</string>").arg(value), spaces);
}

void print_list(const QString & name, const QStringList & list, const QString & icon_name, int spaces = 4) {
	print_stringlist(QStringList()
		<< "<dict>", spaces);

	print_stringlist(QStringList()
		<< "<key>CFBundleTypeIconFile</key>"
		<< QString("<string>%1</string>").arg(icon_name)
		<< "<key>CFBundleTypeName</key>"
		<< QString("<string>%1</string>").arg(name)
		<< "<key>CFBundleTypeRole</key>"
		<< "<string>Viewer</string>"
		<< "<key>LSTypeIsPackage</key>"
		<< "<false/>"
		<< "<key>NSPersistentStoreTypeKey</key>"
		<< "<string>XML</string>"
		<< "<key>CFBundleTypeExtensions</key>"
		<< "<array>", spaces + 4);

	foreach (QString v, list) {
		print_string( QString("<string>%1</string>").arg(v), spaces + 8);
	}

	print_string("</array>", spaces + 4);
	print_string("</dict>", spaces);
}

int main( int argc, char ** argv )
{
	Q_UNUSED(argc);
	Q_UNUSED(argv);

	printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
           "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"
           "<plist version=\"1.0\">\n"
           "<dict>\n");
	print_key("CFBundleDevelopmentRegion", "English");

	printf("    <key>CFBundleDocumentTypes</key>\n    <array>\n");
	
	Extensions e;
	print_list("Video file", e.video(), "smplayer-document.icns");
	print_list("Audio file", e.audio(), "smplayer-document.icns");

	printf("    </array>\n");

	print_key("CFBundleExecutable", "smplayer");
	print_key("CFBundleHomepage", "https://www.smplayer.info");
	print_key("CFBundleIconFile", "smplayer.icns");
	print_key("CFBundleIdentifier", "info.smplayer.SMPlayer");
	print_key("CFBundleInfoDictionaryVersion", "6.0");
	print_key("CFBundleName", "SMPlayer");
	print_key("CFBundlePackageType", "APPL");
	print_key("CFBundleShortVersionString", Version::stable());

	printf("</dict>\n</plist>\n");

	return 0;
}