Changeset 74 for trunk/sources/applications/applestreamingclient/src/protocols/variant/variantappprotocolhandler.cpp
- Timestamp:
- 08/13/10 21:05:31 (22 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/applications/applestreamingclient/src/protocols/variant/variantappprotocolhandler.cpp
r56 r74 25 25 #include "eventsink/varianteventsink.h" 26 26 #include "applestreamingclientapplication.h" 27 28 #define GET_CONTEXT(pProtocol, request) \ 29 uint32_t contextId = ASC_REQ_CONTEXT_ID(request); \ 30 if (contextId == 0) {\ 31 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); \ 32 return; \ 33 } \ 34 ClientContext *pContext = GetContext(contextId, pProtocol->GetType()); \ 35 if (pContext == NULL) { \ 36 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); \ 37 return; \ 38 } 27 39 28 40 VariantAppProtocolHandler::VariantAppProtocolHandler(Variant &configuration) … … 66 78 } else if (type == ASC_REQ_TYPE_INFO_LIST_ALL_STREAMS) { 67 79 ProcessInfoListAllStreams(pProtocol, lastReceived); 80 } else if (type == ASC_REQ_TYPE_INFO_BANDWIDTH) { 81 ProcessInfoBandwidth(pProtocol, lastReceived); 82 } else if (type == ASC_REQ_TYPE_INFO_PLAYBACK) { 83 ProcessInfoPlayback(pProtocol, lastReceived); 68 84 } else { 69 85 WARN("Processing type `%s` not yet implemented", STR(type)); … … 92 108 void VariantAppProtocolHandler::ProcessContextClose(BaseVariantProtocol *pProtocol, 93 109 Variant &request) { 94 uint32_t contextId = ASC_REQ_CONTEXT_ID(request); 95 if (contextId == 0) { 96 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); 97 return; 98 } 99 ClientContext *pContext = GetContext(contextId, pProtocol->GetType()); 100 if (pContext == NULL) { 101 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); 102 return; 103 } 110 GET_CONTEXT(pProtocol, request); 104 111 ClientContext::ReleaseContext(contextId); 105 112 ASC_RES_BUILD_OK(request, Variant()); … … 114 121 void VariantAppProtocolHandler::ProcessCommandPlay( 115 122 BaseVariantProtocol *pProtocol, Variant &request) { 116 uint32_t contextId = ASC_REQ_CONTEXT_ID(request); 117 if (contextId == 0) { 118 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); 119 return; 120 } 121 ClientContext *pContext = GetContext(contextId, pProtocol->GetType()); 122 if (pContext == NULL) { 123 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); 124 return; 125 } 126 123 GET_CONTEXT(pProtocol, request); 127 124 string connectingString = ASC_REQ_COMMAND_PLAY_URI(request); 128 125 if (ASC_REQ_COMMAND_PLAY_PASSWORD(request) != "") { … … 152 149 void VariantAppProtocolHandler::ProcessInfoListStreams( 153 150 BaseVariantProtocol *pProtocol, Variant &request) { 154 uint32_t contextId = ASC_REQ_CONTEXT_ID(request); 155 if (contextId == 0) { 156 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); 157 return; 158 } 159 ClientContext *pContext = GetContext(contextId, pProtocol->GetType()); 160 if (pContext == NULL) { 161 ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); 162 return; 163 } 151 GET_CONTEXT(pProtocol, request); 164 152 if (pContext->EventSink()->GetType() == EVENT_SYNC_VARIANT) { 165 153 VariantEventSink *pSink = (VariantEventSink *) pContext->EventSink(); … … 196 184 ASC_RES_BUILD_OK_INFO_LIST_ALL_STREAMS(request, allStreams); 197 185 } 186 187 void VariantAppProtocolHandler::ProcessInfoBandwidth( 188 BaseVariantProtocol *pProtocol, Variant &request) { 189 GET_CONTEXT(pProtocol, request); 190 ASC_RES_BUILD_OK_INFO_BANDWIDTH(request, 191 pContext->GetAvailableBandwidths(), 192 pContext->GetDetectedBandwidth(), 193 pContext->GetSelectedBandwidth(), 194 pContext->GetBufferLevel(), 195 pContext->GetMaxBufferLevel(), 196 pContext->GetBufferLevelPercent()); 197 } 198 199 void VariantAppProtocolHandler::ProcessInfoPlayback( 200 BaseVariantProtocol *pProtocol, Variant &request) { 201 GET_CONTEXT(pProtocol, request); 202 /* 203 * seek range 204 * current position 205 */ 206 // ASC_RES_BUILD_OK_INFO_PLAYBACK(request, 207 // pContext->GetMinTimestamp(), 208 // pContext->GetMaxTimestamp(), 209 // pContext->GetChunksCount(), 210 // pContext->GetCurrentTimestamp(), 211 // pContext->GetCurrentChunkIndex()); 212 ASC_RES_BUILD_NYI(request); 213 }
Note: See TracChangeset
for help on using the changeset viewer.
