Ignore:
Timestamp:
08/13/10 21:05:31 (22 months ago)
Author:
shiretu
Message:

-- work on apple streaming

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/applications/applestreamingclient/src/protocols/variant/variantappprotocolhandler.cpp

    r56 r74  
    2525#include "eventsink/varianteventsink.h" 
    2626#include "applestreamingclientapplication.h" 
     27 
     28#define GET_CONTEXT(pProtocol, request) \ 
     29uint32_t contextId = ASC_REQ_CONTEXT_ID(request); \ 
     30if (contextId == 0) {\ 
     31        ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); \ 
     32        return; \ 
     33} \ 
     34ClientContext *pContext = GetContext(contextId, pProtocol->GetType()); \ 
     35if (pContext == NULL) { \ 
     36        ASC_RES_BUILD_CONTEXT_NOT_FOUND(request); \ 
     37        return; \ 
     38} 
    2739 
    2840VariantAppProtocolHandler::VariantAppProtocolHandler(Variant &configuration) 
     
    6678        } else if (type == ASC_REQ_TYPE_INFO_LIST_ALL_STREAMS) { 
    6779                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); 
    6884        } else { 
    6985                WARN("Processing type `%s` not yet implemented", STR(type)); 
     
    92108void VariantAppProtocolHandler::ProcessContextClose(BaseVariantProtocol *pProtocol, 
    93109                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); 
    104111        ClientContext::ReleaseContext(contextId); 
    105112        ASC_RES_BUILD_OK(request, Variant()); 
     
    114121void VariantAppProtocolHandler::ProcessCommandPlay( 
    115122                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); 
    127124        string connectingString = ASC_REQ_COMMAND_PLAY_URI(request); 
    128125        if (ASC_REQ_COMMAND_PLAY_PASSWORD(request) != "") { 
     
    152149void VariantAppProtocolHandler::ProcessInfoListStreams( 
    153150                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); 
    164152        if (pContext->EventSink()->GetType() == EVENT_SYNC_VARIANT) { 
    165153                VariantEventSink *pSink = (VariantEventSink *) pContext->EventSink(); 
     
    196184        ASC_RES_BUILD_OK_INFO_LIST_ALL_STREAMS(request, allStreams); 
    197185} 
     186 
     187void 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 
     199void 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.