rmaslta.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:5k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: rmaslta.h,v 1.1 2003/05/30 02:18:01 gabest Exp $
  4.  *
  5.  *  Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
  6.  *  
  7.  *  http://www.real.com/devzone
  8.  *
  9.  *  This program contains proprietary nformation of RealNetworks, Inc, 
  10.  *  and is licensed subject to restrictions on use and distribution.
  11.  *
  12.  *
  13.  *  RealMedia Architecture Interfaces for Simulated Live Transfer Agent.
  14.  *
  15.  */
  16. #ifndef _RMASLTA_H
  17. #define _RMASLTA_H
  18. /****************************************************************************
  19.  * 
  20.  *  Interface:
  21.  * 
  22.  * IRMASLTA
  23.  * 
  24.  *  Purpose:
  25.  * 
  26.  * Slta that works with RMA.  Simulates a live stream from a file.
  27.  * 
  28.  *  IID_IRMASLTA
  29.  * 
  30.  * {00000D00-b4c8-11d0-9995-00a0248da5f0}
  31.  * 
  32.  */
  33. DEFINE_GUID(IID_IRMASLTA,   0x00000D00, 0xb4c8, 0x11d0, 0x99, 
  34.     0x95, 0x0, 0xa0, 0x24, 0x8d, 0xa5, 0xf0);
  35. DECLARE_INTERFACE_(IRMASLTA, IUnknown)
  36. {
  37.     /*
  38.      * IUnknown methods
  39.      */
  40.     STDMETHOD(QueryInterface) (THIS_
  41. REFIID riid,
  42. void** ppvObj) PURE;
  43.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  44.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  45.     /*
  46.      * IRMASLTA methods
  47.      */
  48.     /************************************************************************
  49.      * Method:
  50.      *     IRMASLTA::Connect
  51.      * Purpose:
  52.      *     Connects the slta to a server.
  53.      */
  54.     STDMETHOD(Connect) (THIS_
  55.     const char* host,
  56.     UINT16 uPort,
  57.     const char* username,
  58.     const char* passwd,
  59.     const char* livefile
  60. ) PURE;
  61.     /************************************************************************
  62.     * Method:
  63.     *     IRMASLTA::SetTAC
  64.     * Purpose:
  65.     *     Set the TAC info for the stream. This method MUST be called
  66.     * before Encode to have any effect.
  67.     */
  68.     STDMETHOD(SetTAC) (THIS_
  69.     const char* Title,
  70.     const char* Author,
  71.     const char* Copyright) PURE;
  72.     /************************************************************************
  73.     * Method:
  74.     *     IRMASLTA:Encode
  75.     * Purpose:
  76.     *     Start encoding the file to the server.
  77.     */
  78.     STDMETHOD(Encode)
  79. (THIS_
  80.     const char* filename
  81. ) PURE;
  82.     /************************************************************************
  83.     * Method:
  84.     *     IRMASLTA:Disconnect
  85.     * Purpose:
  86.     *     Disconnect the slta from the server.
  87.     */
  88.     STDMETHOD(Disconnect)   (THIS) PURE;
  89.     /************************************************************************
  90.     * Method:
  91.     *     IRMASLTA::SetTargetBandwidth
  92.     * Purpose:
  93.     *     Sets the target bw for rule subscription.
  94.     */
  95.     STDMETHOD(SetTargetBandwidth)   (THIS_
  96. UINT32 ulTargetBW)  PURE;
  97. };
  98. /****************************************************************************
  99.  * 
  100.  *  Interface:
  101.  * 
  102.  * IRMASltaEvent
  103.  * 
  104.  *  Purpose:
  105.  * 
  106.  * Allows events to be sent through an SLTA stream
  107.  * 
  108.  *  IID_IRMASltaEvent
  109.  * 
  110.  * {00000D01-b4c8-11d0-9995-00a0248da5f0}
  111.  * 
  112.  */
  113. DEFINE_GUID(IID_IRMASltaEvent,   0x00000D01, 0xb4c8, 0x11d0, 0x99, 
  114.     0x95, 0x0, 0xa0, 0x24, 0x8d, 0xa5, 0xf0);
  115. /* 
  116.  * Valid RMA event IDs.
  117.  */
  118. #define RMA_EVENT_TITLE             0x0000
  119. #define RMA_EVENT_AUTHOR            0x0001
  120. #define RMA_EVENT_COPYRIGHT         0x0002
  121. #define RMA_EVENT_SERVER_ALERT      0x0003
  122. #define RMA_EVENT_PROGRESS_MESSAGE  0x0004
  123. #define RMA_EVENT_TEXT_SIZE         0x0010
  124. #define RMA_EVENT_TEXT              0x0011
  125. #define RMA_EVENT_TEXT_ANCHOR       0x0012
  126. #define RMA_EVENT_BROWSER_OPEN_URL  0x0020
  127. #define RMA_EVENT_TOPIC             0x0030
  128. #define RMA_EVENT_EMPTY             0x0200
  129. #define RMA_EVENT_CUSTOM_BEGIN      0x0400
  130. DECLARE_INTERFACE_(IRMASltaEvent, IUnknown)
  131. {
  132.     /*
  133.      * IUnknown methods
  134.      */
  135.     STDMETHOD(QueryInterface) (THIS_
  136. REFIID riid,
  137. void** ppvObj) PURE;
  138.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  139.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  140.     /*
  141.      * IRMASltaEvent methods
  142.      */
  143.    /************************************************************************
  144.     * Method:
  145.     *     IRMASltaEvent::SetEvent
  146.     * Purpose:
  147.     *     Sends an event to the slta stream. 
  148.     *       nEventID must be one of the valid event IDs defined above.
  149.     */
  150.     STDMETHOD(SetEvent)             (THIS_
  151.                                      UINT16 nEventID,
  152.                                      const char* szEventText) PURE;
  153.    /************************************************************************
  154.     * Method:
  155.     *     IRMASltaEvent::SetRepeatedEvent
  156.     * Purpose:
  157.     *     Sets an event to be repeated every ulFrequency milliseconds.
  158.     *       nEventID must be one of the valid event IDs defined above.
  159.     */
  160.     STDMETHOD(SetRepeatedEvent)     (THIS_
  161.                                      UINT16 nEventID,
  162.                                      const char* szEventText,
  163.                                      UINT32 ulFrequency) PURE;
  164. };
  165. #endif