sbDeviceStreamingHandler.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 :miv */
3 /*
4  *=BEGIN SONGBIRD GPL
5  *
6  * This file is part of the Songbird web player.
7  *
8  * Copyright(c) 2005-2010 POTI, Inc.
9  * http://www.songbirdnest.com
10  *
11  * This file may be licensed under the terms of of the
12  * GNU General Public License Version 2 (the ``GPL'').
13  *
14  * Software distributed under the License is distributed
15  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
16  * express or implied. See the GPL for the specific language
17  * governing rights and limitations.
18  *
19  * You should have received a copy of the GPL along with this
20  * program. If not, go to http://www.gnu.org/licenses/gpl.html
21  * or write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23  *
24  *=END SONGBIRD GPL
25  */
26 
27 #ifndef _SB_DEVICE_STREAMING_HANDLER_H_
28 #define _SB_DEVICE_STREAMING_HANDLER_H_
29 
30 //------------------------------------------------------------------------------
31 //------------------------------------------------------------------------------
32 //
33 // Device streaming handler defs.
34 //
35 //------------------------------------------------------------------------------
36 //------------------------------------------------------------------------------
37 
43 //------------------------------------------------------------------------------
44 //
45 // Device streaming handler imported services.
46 //
47 //------------------------------------------------------------------------------
48 
49 // Songbird imports.
50 #include <sbIMediaItem.h>
51 #include <sbIMediaItemController.h>
52 
53 // Mozilla imports.
54 #include <prmon.h>
55 
56 
57 //------------------------------------------------------------------------------
58 //
59 // Device streaming handler classes.
60 //
61 //------------------------------------------------------------------------------
62 
69 {
70  //----------------------------------------------------------------------------
71  //
72  // Public interface.
73  //
74  //----------------------------------------------------------------------------
75 
76 public:
77 
78  //
79  // Implemented interfaces.
80  //
81 
83  NS_DECL_SBIMEDIAITEMCONTROLLERLISTENER
84 
85 
86  //
87  // Public services.
88  //
89 
100  static nsresult
101  New(sbDeviceStreamingHandler** aDeviceStreamingHandler,
102  sbIMediaItem* aMediaItem,
103  PRMonitor* aCompleteNotifyMonitor);
104 
105 
111  nsresult CheckTransferable();
112 
117  PRBool IsComplete();
118 
123  PRBool IsStreamingItemSupported();
124 
125 
135  PRMonitor* aCompleteNotifyMonitor);
136 
137 
142  virtual ~sbDeviceStreamingHandler();
143 
144 
145  //----------------------------------------------------------------------------
146  //
147  // Private interface.
148  //
149  //----------------------------------------------------------------------------
150 
151 private:
152 
153  //
154  // mCompleteNotifyMonitor Monitor to notify upon validate completion.
155  // mIsComplete True if validation has completed.
156  // mIsSupported True if the streaming item is supported by the
157  // device.
158  //
159 
160  PRMonitor* mCompleteNotifyMonitor;
161  sbIMediaItem* mMediaItem;
162  PRBool mIsComplete;
163  PRBool mIsSupported;
164 };
165 
166 
167 #endif /* _SB_DEVICE_STREAMING_HANDLER_H_ */
168 
sbDeviceStreamingHandler(sbIMediaItem *aMediaItem, PRMonitor *aCompleteNotifyMonitor)
Interface to receive events from a mediaItemController.
Interface that defines a single item of media in the system.
NS_DECL_ISUPPORTS static NS_DECL_SBIMEDIAITEMCONTROLLERLISTENER nsresult New(sbDeviceStreamingHandler **aDeviceStreamingHandler, sbIMediaItem *aMediaItem, PRMonitor *aCompleteNotifyMonitor)