ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/DecentralizedMedia/DecentralizedMedia.cpp
Revision: 470
Committed: 2005-06-07T20:45:08-07:00 (20 years ago) by douglas
File size: 1209 byte(s)
Log Message:
Woo!

File Contents

# Content
1 // Decentralized Media
2 //
3 // Douglas Thrift
4 //
5 // $Id$
6
7 #include <menes/standard.hh>
8
9 #include <menes-waf/server.hpp>
10
11 #include "BeepRemote.hpp"
12
13 class DecentralizedMedia : public waf::Server
14 {
15 public:
16 BeepRemote bmp;
17 private:
18 _H<api::Thread> block;
19 _H<api::Process> process;
20 int Destroy() { return process->Join(); }
21 protected:
22 virtual void Process(const net::Http::Request& request, net::Http::Response& response)
23 {
24 if (request.method_ == "PLAY")
25 api::Cout << "PLAY" << ios::NewLine;
26 else if (request.method_ == "PAUSE")
27 api::Cout << "PAUSE" << ios::NewLine;
28 else
29 waf::Server::Process(request, response);
30 }
31 public:
32 // XXX: "../Web" can be "Web" when we take out the evil juju
33 DecentralizedMedia() : waf::Server("../Web"), process(bmp.IsRunning() ? NULL : new api::Process("/usr/X11R6/bin/beep-media-player"))
34 {
35 AddPort(6996);
36 }
37 ~DecentralizedMedia()
38 {
39 if (!process.IsEmpty())
40 {
41 _H<api::Thread> thread(new api::Thread(etl::BindAll(&DecentralizedMedia::Destroy, this)));
42
43 bmp.Quit();
44
45 thread->Join();
46 }
47 }
48 };
49
50 int Main(const app::Options& options)
51 {
52 // XXX: evil juju to make waf::Server behave nicely
53 ::chdir("menes");
54
55 DecentralizedMedia media;
56
57 return 0;
58 }

Properties

Name Value
svn:eol-style native
svn:keywords Id