JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Printable Version +- Kodi Community Forum (https://forum.kodi.tv) +-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32) +--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93) +---- Forum: JSON-RPC (https://forum.kodi.tv/forumdisplay.php?fid=174) +---- Thread: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC (/showthread.php?tid=68263) Pages:
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
- Montellese - 2011-09-20 Tolriq Wrote:Long time since not posting in this thread Thanks for that list. Some of those values should now be available through Player.GetProperties but others aren't. In case you want to make only one request but need to call multiple methods you might wanna consider using batch requests. defender013 Wrote:hi all.. You are right, there is no access to any settings/guisettings in jsonrpc yet. I have already looked into it a while ago but it's not that easy to do it simple and right. The way the http-api (webapi) does it is more of a hack than a real implementation and might cause some odd behaviour in xbmc's GUI if you change a guisetting at the wrong moment. - topfs2 - 2011-09-20 Tolriq Wrote:"System.BuildVersion" and "System.ProfileName" to detect changes in profile and Xbmc version and ask users or auto change database on client side to avoid errors. Oh System.BuildVersion could be a great way to get application specific information into the API, I propose Application.Version or something similair which could return an object containing members: "name", "major", "minor", "revision". This would give us the opportunity to have clients look for JSONRPC.Version for the actual API version and what should be supported, then it can look at Application.Version to get a hint on what extra namespaces ought to exist (introspect is still the go-to here but nice to have a simply version and name compare). Also gives the possibility to see if its XBMC, Boxee or some other application using the API. - Montellese - 2011-09-20 Tuesday, September 20th 2011: Commits: 5abc022c3a353e206f78
This takes care of System.BuildVersion from GetInfoLabels AND it allows to differ between applications (like Boxee using our jsonrpc API). - topfs2 - 2011-09-20 Montellese Wrote:This takes care of System.BuildVersion from GetInfoLabels AND it allows to differ between applications (like Boxee using our jsonrpc API). Note to anyone reading this. You should NOT alter any of the already existing methods in any way (looking at you boxee!), doing so voids any and all compatibility with the specification and between applications. Anyone wanting to use our API are free to do so but PLEASE do not alter just extend. Also, equally important, always target a STABLE release of the API (even numbers from JSONRPC.Version). We will put in a README in the jsonrpc folder for this before eden but please, if anyone ever wish to use our API please consult me or Montellese and we'd be happy to explain what needs to be done to ensure compability. - sling100 - 2011-09-20 Montellese Wrote:Sunday, September 18th 2011: Is there a post somewhere listing the general changes to the methods for accessing these? Thanks Simon - Montellese - 2011-09-20 sling100 Wrote:Is there a post somewhere listing the general changes to the methods for accessing these? I'm not sure I understand. Most methods were either just renamed or moved to another namespace. Some methods were merged and only few methods were changed dramatically like Player.Open or Player.Seek. In general calling JSONRPC.Introspect will (as usual) provide you with detailed information on which methods are available and what parameters they take. If you have any specific questions to certain methods I'm happy to help out. - sling100 - 2011-09-20 Sorry - didn't realise that you had updated the introspect - suppose I should have looked first really .... I'll have a look later and post anything I can't fathom. Thanks Simon - Montellese - 2011-09-20 sling100 Wrote:Sorry - didn't realise that you had updated the introspect - suppose I should have looked first really .... Introspect is always updated because it is part of the whole implementation. It is the interface definition for developers using XBMC's jsonrpc API and we use it to automatically validate parameters in XBMC. - Tolriq - 2011-09-20 Montellese Wrote:Tuesday, September 20th 2011: Thanks for that Was hard to handle build with pre and other to load correct plugin to support all Xbmc versions I forgot one thing that i have remove from my code since it was not working correctly it was GetSystemInfo with param 667 to get the underlying OS but was getting lots of Busy instead of correct value. This information can be used to display os icons but also to detect changes on xbmc client. Since Yatse permit connexions to multiple Xbmc machine and have local database cache with thumb cache too, i used this to have one more check on if the user connects to the correct xmbc corresponding to the local database and not lost data and do a 1 or 2 GB of thumbs sync. - Montellese - 2011-09-20 And some more action. Pay special notice to the last change as it will probably affect every client/app using jsonrpc: Tuesday, September 20th 2011: Commits: a03c34b37ae64637a9fd, 2a848458dbfd36d87058, 481a6007e899bdba21f2
- lewisc - 2011-09-21 Has anyone tried creating a .net (C#) XBMC remote app in Windows 8 with the new developer preview tools. I've tried creating an app with both dstruktiv's and Montellese's XBMC JSON .Net libraries and it will not connect to XBMC. Not only that it breaks the XAML designer after you reference the dll's (either XbmcJson.dll or XBMCJsonRpcSharp.dll). I've tried this connecting to Dharma and the latest nightly builds also. Any ideas where I can start with this? - Montellese - 2011-09-21 My library is far from up-to-date with the latest nightly builds. It should work with Dharma though but obviously I didn't test it on Win8. - lewisc - 2011-09-21 It must be something to do with the way Windows 8 Metro style apps work differently to traditional Windows apps then as I couldn't get it to work with Dharma (although I could with a quick C#.net console application). I will keep investigating the problems with Windows 8. - sling100 - 2011-09-21 OK, so I've got my head around the new player/playlist methods and they work really well. The one thing I can't figure is how to obtain the playlist position of the currently playing item. Is this something I can add to the Player.OnPlay notification? It returns the current song ID, but not position. Thanks Simon - Montellese - 2011-09-21 sling100 Wrote:OK, so I've got my head around the new player/playlist methods and they work really well. The one thing I can't figure is how to obtain the playlist position of the currently playing item. Is this something I can add to the Player.OnPlay notification? It returns the current song ID, but not position. Well you can retrieve the current position using the "position" property in Player.GetProperties. That being said it might make sense to add that to the OnPlay notification. I'll think about it. |