-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
133 lines (98 loc) · 4.54 KB
/
README
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
This project is about the port of VLC to the WinRT platform.
The goal is to target Windows 8/8.1 Modern environment, on x86 and ARM (Windows RT).
But also Windows Phone 8/8.1 and other devices running the WinRT platform.
Most of the media code engine is licensed under LGPL, like libVLC.
The application is dual-licensed under GPLv2/MPL and the license might change later,
if need be.
How to compile VLC for WinRT:
-----------------------------
You need:
* Visual Studio 2013 update 4
* Windows 8.1
If you are only on Windows, skip the step 0)
0) Cross-compile libvlc for WinRT
---------------------------------
You need:
* A very, very, very recent Linux
* build-essentials and all related build tools (make, autotools, git, etc...)
* Prodigious patience and tenacity :)
Build and install mingw-w64 SVN rev 5568 or higher (for libwinstorecompat).
Be sure to pass --disable-shared when configuring GCC.
Why? Statically linking to
libgcc.a will ensure that all unused methods get stripped. It will drastically
reduce the number of forbidden calls.
Run ./compile.sh and generate vlc.7z
1) Extract libVLC
-----------------
If you skipped step 0), take the most recent build, depending on your architecture.
For Win32 version, builds are located in http://people.videolan.org/~jb/WinRT/
For ARM version, builds are located in http://people.videolan.org/~hugo/
Extract the libVLC contents from the archive to vlc/Windows/vlc-<platform>/<configuration>
<platform> is either ARM or x86
<configuration> is Debug or Release
1a) Install Multilingual App Toolkit
------------------------------------
In order to open the solution, you must first install the Visual Studio Multilingual App Toolkit.
If you don't, the solution will fail to load.
You can download it at https://dev.windows.com/en-us/develop/multilingual-app-toolkit
2) Build and package the front-end
----------------------------------
Open the VLC_WinRT solution in app/VLC_WINRT.sln
3a) Get a developer signature from your account
--------------------------------------------------
If you don't have a dev account, see the next paragraph
3b) Local signature
-------------------
Package.appxmanifest, and generate a self-signed cert
Project → Store → Create App Packages...
Select target "Debug (Win32)"
Build the package.
Now we have to import the self-signed cert into the local computer:
Open MMC
File → Add/Remove Snap In...
Certificates → Add
Select "Computer account"
Select "Local computer" (already selected), press Finish
OK to close "Add/Remove Snap-ins" dialog
Certificates (Local Computer) → Trusted Root Certification Authorities → Certificates
Right click, All Tasks... → Import...
Next
Select your "VLC_WINRT_1.0.0.0_x86_Debug.cer"
Next
Finish
4) Install libvlcpp
-------------------
Clone libvlcpp from git://git.videolan.org/vlc-bindings/libvlcpp.git
into the wrapper/ directory
4b) Alternately, if you wish to manually install:
-------------------------------------------------
Useful in case of network drive, for instance.
Start → Programs → Microsoft Visual Studio 2012 → Visual Studio Tools → Debuggable Package Manager
Install VCRT dependency:
Add-AppxPackage Dependencies/x86/*
( or Add-AppxPackage Dependencies/x86/Microsoft.VCLibs.x86.Debug.11.00.appx if you feel like it )
Deploy VLC appx:
Add-AppxPackage VLC_WINRT_1.0.0.0_x86_Debug.appx
Enable debug mode for the app:
(note: use Get-AppxPackage to look up the full name of the app)
Enable-AppxDebug 9519ba58-7ad6-4c4e-97ed-bfc2135a0d19_1.0.0.0_x86__2c7ztm58ext6g
# Debugging has been enabled for 9519ba58-7ad6-4c4e-97ed-bfc2135a0d19_1.0.0.0_x86__2c7ztm58ext6g.
5) Build
--------
Click on Build Solution.
Click on Deploy Solution
Profit. \o/
6) Coding guidelines
--------------------
TextBox and FocusTextBox
FocusTextBox is a simple TextBox control. However, when the user writes something in the TextBox, it's also
listened by the KeyboardListenerService, which believes the user is entering a keyboard shortcut.
With FocusTextBox we prevent this behaviour.
Therefore ALL future patches should use FocusTextBox instead of TextBox.
7) Extra: Helpful snippets and tools
------------------------------------
Use http://technet.microsoft.com/en-us/sysinternals/bb896647 DebugView to view the debug logs
And Procmon ( http://technet.microsoft.com/en-ca/sysinternals/bb896645.aspx ) helps to see and debug events (like loading DLLs/modules/etc)
Quick one-liners to remove ugly mode changes and ugly CR-LF line endings.
git status -s | grep "^ M " | awk '{ print $2; }' | xargs chmod 644
git status -s | grep "^ M " | awk '{ print $2; }' | xargs dos2unix