Для http nhim sourceforge net Класс который следит за Windows Mobile M

 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
// Для http://nhim.sourceforge.net/
// Класс, который следит за Windows Mobile Media Player и отсылает название проигрываемой песни в формате XEP-0118 (User Tune).
using System;
using System.Threading;
using agsXMPP.protocol.client;
using agsXMPP.Xml.Dom;
using Microsoft.WindowsMobile.Status;
namespace NeboHodimo.IM.UI
{
class PEPTune
{
private Timer timer = null;
private JabberConnection con;
private string lastTune;
public PEPTune(JabberConnection con)
{
this.con = con;
}
public void SetEnabled(Boolean enabled)
{
if (enabled == true && timer == null) timer = new Timer(UpdateTune, null, 0, 20000);
if (enabled == false && timer != null) { timer.Dispose(); timer = null; }
}
private void UpdateTune(object state)
{
string artist = SystemState.MediaPlayerTrackArtist;
string title = SystemState.MediaPlayerTrackTitle;
string curTune = artist + " - " + title;
if (artist.Length > 0 && title.Length > 0 && curTune != lastTune && con.IsConnected)
{
lastTune = curTune;
IQ iq = new IQ();
iq.Type = IqType.set;
iq.GenerateId();
Element el1 = new Element("pubsub", null, agsXMPP.Uri.PUBSUB);
iq.AddChild(el1);
Element el2 = new Element("publish");
el2.SetAttribute("node", "http://jabber.org/protocol/tune");
el1.AddChild(el2);
Element el3 = new Element("item");
el2.AddChild(el3);
Element el4 = new Element("tune", null, "http://jabber.org/protocol/tune");
el3.AddChild(el4);
el4.AddTag("artist", artist);
el4.AddTag("title", title);
con.Send(iq);
}
}
}
}