home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / openh323.tar.gz / openh323.tar / openh323 / src / h245_1.cxx < prev    next >
C/C++ Source or Header  |  2004-06-22  |  402KB  |  14,767 lines

  1. //
  2. // h245_1.cxx
  3. //
  4. // Code automatically generated by asnparse.
  5. //
  6.  
  7. #ifdef __GNUC__
  8. #pragma implementation "h245.h"
  9. #endif
  10.  
  11. #include <ptlib.h>
  12. #include "h245.h"
  13.  
  14. #define new PNEW
  15.  
  16.  
  17. #if ! H323_DISABLE_H245
  18.  
  19. //
  20. // MultimediaSystemControlMessage
  21. //
  22.  
  23. H245_MultimediaSystemControlMessage::H245_MultimediaSystemControlMessage(unsigned tag, PASN_Object::TagClass tagClass)
  24.   : PASN_Choice(tag, tagClass, 4, TRUE
  25. #ifndef PASN_NOPRINTON
  26.       , "request "
  27.         "response "
  28.         "command "
  29.         "indication "
  30. #endif
  31.     )
  32. {
  33. }
  34.  
  35.  
  36. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  37. H245_MultimediaSystemControlMessage::operator H245_RequestMessage &() const
  38. #else
  39. H245_MultimediaSystemControlMessage::operator H245_RequestMessage &()
  40. {
  41. #ifndef PASN_LEANANDMEAN
  42.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMessage::Class()), PInvalidCast);
  43. #endif
  44.   return *(H245_RequestMessage *)choice;
  45. }
  46.  
  47.  
  48. H245_MultimediaSystemControlMessage::operator const H245_RequestMessage &() const
  49. #endif
  50. {
  51. #ifndef PASN_LEANANDMEAN
  52.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMessage::Class()), PInvalidCast);
  53. #endif
  54.   return *(H245_RequestMessage *)choice;
  55. }
  56.  
  57.  
  58. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  59. H245_MultimediaSystemControlMessage::operator H245_ResponseMessage &() const
  60. #else
  61. H245_MultimediaSystemControlMessage::operator H245_ResponseMessage &()
  62. {
  63. #ifndef PASN_LEANANDMEAN
  64.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ResponseMessage::Class()), PInvalidCast);
  65. #endif
  66.   return *(H245_ResponseMessage *)choice;
  67. }
  68.  
  69.  
  70. H245_MultimediaSystemControlMessage::operator const H245_ResponseMessage &() const
  71. #endif
  72. {
  73. #ifndef PASN_LEANANDMEAN
  74.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ResponseMessage::Class()), PInvalidCast);
  75. #endif
  76.   return *(H245_ResponseMessage *)choice;
  77. }
  78.  
  79.  
  80. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  81. H245_MultimediaSystemControlMessage::operator H245_CommandMessage &() const
  82. #else
  83. H245_MultimediaSystemControlMessage::operator H245_CommandMessage &()
  84. {
  85. #ifndef PASN_LEANANDMEAN
  86.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommandMessage::Class()), PInvalidCast);
  87. #endif
  88.   return *(H245_CommandMessage *)choice;
  89. }
  90.  
  91.  
  92. H245_MultimediaSystemControlMessage::operator const H245_CommandMessage &() const
  93. #endif
  94. {
  95. #ifndef PASN_LEANANDMEAN
  96.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommandMessage::Class()), PInvalidCast);
  97. #endif
  98.   return *(H245_CommandMessage *)choice;
  99. }
  100.  
  101.  
  102. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  103. H245_MultimediaSystemControlMessage::operator H245_IndicationMessage &() const
  104. #else
  105. H245_MultimediaSystemControlMessage::operator H245_IndicationMessage &()
  106. {
  107. #ifndef PASN_LEANANDMEAN
  108.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IndicationMessage::Class()), PInvalidCast);
  109. #endif
  110.   return *(H245_IndicationMessage *)choice;
  111. }
  112.  
  113.  
  114. H245_MultimediaSystemControlMessage::operator const H245_IndicationMessage &() const
  115. #endif
  116. {
  117. #ifndef PASN_LEANANDMEAN
  118.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IndicationMessage::Class()), PInvalidCast);
  119. #endif
  120.   return *(H245_IndicationMessage *)choice;
  121. }
  122.  
  123.  
  124. BOOL H245_MultimediaSystemControlMessage::CreateObject()
  125. {
  126.   switch (tag) {
  127.     case e_request :
  128.       choice = new H245_RequestMessage();
  129.       return TRUE;
  130.     case e_response :
  131.       choice = new H245_ResponseMessage();
  132.       return TRUE;
  133.     case e_command :
  134.       choice = new H245_CommandMessage();
  135.       return TRUE;
  136.     case e_indication :
  137.       choice = new H245_IndicationMessage();
  138.       return TRUE;
  139.   }
  140.  
  141.   choice = NULL;
  142.   return FALSE;
  143. }
  144.  
  145.  
  146. PObject * H245_MultimediaSystemControlMessage::Clone() const
  147. {
  148. #ifndef PASN_LEANANDMEAN
  149.   PAssert(IsClass(H245_MultimediaSystemControlMessage::Class()), PInvalidCast);
  150. #endif
  151.   return new H245_MultimediaSystemControlMessage(*this);
  152. }
  153.  
  154.  
  155. //
  156. // RequestMessage
  157. //
  158.  
  159. H245_RequestMessage::H245_RequestMessage(unsigned tag, PASN_Object::TagClass tagClass)
  160.   : PASN_Choice(tag, tagClass, 11, TRUE
  161. #ifndef PASN_NOPRINTON
  162.       , "nonStandard "
  163.         "masterSlaveDetermination "
  164.         "terminalCapabilitySet "
  165.         "openLogicalChannel "
  166.         "closeLogicalChannel "
  167.         "requestChannelClose "
  168.         "multiplexEntrySend "
  169.         "requestMultiplexEntry "
  170.         "requestMode "
  171.         "roundTripDelayRequest "
  172.         "maintenanceLoopRequest "
  173.         "communicationModeRequest "
  174.         "conferenceRequest "
  175.         "multilinkRequest "
  176.         "logicalChannelRateRequest "
  177. #endif
  178.     )
  179. {
  180. }
  181.  
  182.  
  183. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  184. H245_RequestMessage::operator H245_NonStandardMessage &() const
  185. #else
  186. H245_RequestMessage::operator H245_NonStandardMessage &()
  187. {
  188. #ifndef PASN_LEANANDMEAN
  189.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  190. #endif
  191.   return *(H245_NonStandardMessage *)choice;
  192. }
  193.  
  194.  
  195. H245_RequestMessage::operator const H245_NonStandardMessage &() const
  196. #endif
  197. {
  198. #ifndef PASN_LEANANDMEAN
  199.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  200. #endif
  201.   return *(H245_NonStandardMessage *)choice;
  202. }
  203.  
  204.  
  205. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  206. H245_RequestMessage::operator H245_MasterSlaveDetermination &() const
  207. #else
  208. H245_RequestMessage::operator H245_MasterSlaveDetermination &()
  209. {
  210. #ifndef PASN_LEANANDMEAN
  211.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDetermination::Class()), PInvalidCast);
  212. #endif
  213.   return *(H245_MasterSlaveDetermination *)choice;
  214. }
  215.  
  216.  
  217. H245_RequestMessage::operator const H245_MasterSlaveDetermination &() const
  218. #endif
  219. {
  220. #ifndef PASN_LEANANDMEAN
  221.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDetermination::Class()), PInvalidCast);
  222. #endif
  223.   return *(H245_MasterSlaveDetermination *)choice;
  224. }
  225.  
  226.  
  227. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  228. H245_RequestMessage::operator H245_TerminalCapabilitySet &() const
  229. #else
  230. H245_RequestMessage::operator H245_TerminalCapabilitySet &()
  231. {
  232. #ifndef PASN_LEANANDMEAN
  233.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySet::Class()), PInvalidCast);
  234. #endif
  235.   return *(H245_TerminalCapabilitySet *)choice;
  236. }
  237.  
  238.  
  239. H245_RequestMessage::operator const H245_TerminalCapabilitySet &() const
  240. #endif
  241. {
  242. #ifndef PASN_LEANANDMEAN
  243.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySet::Class()), PInvalidCast);
  244. #endif
  245.   return *(H245_TerminalCapabilitySet *)choice;
  246. }
  247.  
  248.  
  249. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  250. H245_RequestMessage::operator H245_OpenLogicalChannel &() const
  251. #else
  252. H245_RequestMessage::operator H245_OpenLogicalChannel &()
  253. {
  254. #ifndef PASN_LEANANDMEAN
  255.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannel::Class()), PInvalidCast);
  256. #endif
  257.   return *(H245_OpenLogicalChannel *)choice;
  258. }
  259.  
  260.  
  261. H245_RequestMessage::operator const H245_OpenLogicalChannel &() const
  262. #endif
  263. {
  264. #ifndef PASN_LEANANDMEAN
  265.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannel::Class()), PInvalidCast);
  266. #endif
  267.   return *(H245_OpenLogicalChannel *)choice;
  268. }
  269.  
  270.  
  271. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  272. H245_RequestMessage::operator H245_CloseLogicalChannel &() const
  273. #else
  274. H245_RequestMessage::operator H245_CloseLogicalChannel &()
  275. {
  276. #ifndef PASN_LEANANDMEAN
  277.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CloseLogicalChannel::Class()), PInvalidCast);
  278. #endif
  279.   return *(H245_CloseLogicalChannel *)choice;
  280. }
  281.  
  282.  
  283. H245_RequestMessage::operator const H245_CloseLogicalChannel &() const
  284. #endif
  285. {
  286. #ifndef PASN_LEANANDMEAN
  287.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CloseLogicalChannel::Class()), PInvalidCast);
  288. #endif
  289.   return *(H245_CloseLogicalChannel *)choice;
  290. }
  291.  
  292.  
  293. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  294. H245_RequestMessage::operator H245_RequestChannelClose &() const
  295. #else
  296. H245_RequestMessage::operator H245_RequestChannelClose &()
  297. {
  298. #ifndef PASN_LEANANDMEAN
  299.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelClose::Class()), PInvalidCast);
  300. #endif
  301.   return *(H245_RequestChannelClose *)choice;
  302. }
  303.  
  304.  
  305. H245_RequestMessage::operator const H245_RequestChannelClose &() const
  306. #endif
  307. {
  308. #ifndef PASN_LEANANDMEAN
  309.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelClose::Class()), PInvalidCast);
  310. #endif
  311.   return *(H245_RequestChannelClose *)choice;
  312. }
  313.  
  314.  
  315. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  316. H245_RequestMessage::operator H245_MultiplexEntrySend &() const
  317. #else
  318. H245_RequestMessage::operator H245_MultiplexEntrySend &()
  319. {
  320. #ifndef PASN_LEANANDMEAN
  321.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySend::Class()), PInvalidCast);
  322. #endif
  323.   return *(H245_MultiplexEntrySend *)choice;
  324. }
  325.  
  326.  
  327. H245_RequestMessage::operator const H245_MultiplexEntrySend &() const
  328. #endif
  329. {
  330. #ifndef PASN_LEANANDMEAN
  331.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySend::Class()), PInvalidCast);
  332. #endif
  333.   return *(H245_MultiplexEntrySend *)choice;
  334. }
  335.  
  336.  
  337. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  338. H245_RequestMessage::operator H245_RequestMultiplexEntry &() const
  339. #else
  340. H245_RequestMessage::operator H245_RequestMultiplexEntry &()
  341. {
  342. #ifndef PASN_LEANANDMEAN
  343.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntry::Class()), PInvalidCast);
  344. #endif
  345.   return *(H245_RequestMultiplexEntry *)choice;
  346. }
  347.  
  348.  
  349. H245_RequestMessage::operator const H245_RequestMultiplexEntry &() const
  350. #endif
  351. {
  352. #ifndef PASN_LEANANDMEAN
  353.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntry::Class()), PInvalidCast);
  354. #endif
  355.   return *(H245_RequestMultiplexEntry *)choice;
  356. }
  357.  
  358.  
  359. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  360. H245_RequestMessage::operator H245_RequestMode &() const
  361. #else
  362. H245_RequestMessage::operator H245_RequestMode &()
  363. {
  364. #ifndef PASN_LEANANDMEAN
  365.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMode::Class()), PInvalidCast);
  366. #endif
  367.   return *(H245_RequestMode *)choice;
  368. }
  369.  
  370.  
  371. H245_RequestMessage::operator const H245_RequestMode &() const
  372. #endif
  373. {
  374. #ifndef PASN_LEANANDMEAN
  375.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMode::Class()), PInvalidCast);
  376. #endif
  377.   return *(H245_RequestMode *)choice;
  378. }
  379.  
  380.  
  381. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  382. H245_RequestMessage::operator H245_RoundTripDelayRequest &() const
  383. #else
  384. H245_RequestMessage::operator H245_RoundTripDelayRequest &()
  385. {
  386. #ifndef PASN_LEANANDMEAN
  387.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RoundTripDelayRequest::Class()), PInvalidCast);
  388. #endif
  389.   return *(H245_RoundTripDelayRequest *)choice;
  390. }
  391.  
  392.  
  393. H245_RequestMessage::operator const H245_RoundTripDelayRequest &() const
  394. #endif
  395. {
  396. #ifndef PASN_LEANANDMEAN
  397.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RoundTripDelayRequest::Class()), PInvalidCast);
  398. #endif
  399.   return *(H245_RoundTripDelayRequest *)choice;
  400. }
  401.  
  402.  
  403. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  404. H245_RequestMessage::operator H245_MaintenanceLoopRequest &() const
  405. #else
  406. H245_RequestMessage::operator H245_MaintenanceLoopRequest &()
  407. {
  408. #ifndef PASN_LEANANDMEAN
  409.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopRequest::Class()), PInvalidCast);
  410. #endif
  411.   return *(H245_MaintenanceLoopRequest *)choice;
  412. }
  413.  
  414.  
  415. H245_RequestMessage::operator const H245_MaintenanceLoopRequest &() const
  416. #endif
  417. {
  418. #ifndef PASN_LEANANDMEAN
  419.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopRequest::Class()), PInvalidCast);
  420. #endif
  421.   return *(H245_MaintenanceLoopRequest *)choice;
  422. }
  423.  
  424.  
  425. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  426. H245_RequestMessage::operator H245_CommunicationModeRequest &() const
  427. #else
  428. H245_RequestMessage::operator H245_CommunicationModeRequest &()
  429. {
  430. #ifndef PASN_LEANANDMEAN
  431.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommunicationModeRequest::Class()), PInvalidCast);
  432. #endif
  433.   return *(H245_CommunicationModeRequest *)choice;
  434. }
  435.  
  436.  
  437. H245_RequestMessage::operator const H245_CommunicationModeRequest &() const
  438. #endif
  439. {
  440. #ifndef PASN_LEANANDMEAN
  441.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommunicationModeRequest::Class()), PInvalidCast);
  442. #endif
  443.   return *(H245_CommunicationModeRequest *)choice;
  444. }
  445.  
  446.  
  447. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  448. H245_RequestMessage::operator H245_ConferenceRequest &() const
  449. #else
  450. H245_RequestMessage::operator H245_ConferenceRequest &()
  451. {
  452. #ifndef PASN_LEANANDMEAN
  453.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceRequest::Class()), PInvalidCast);
  454. #endif
  455.   return *(H245_ConferenceRequest *)choice;
  456. }
  457.  
  458.  
  459. H245_RequestMessage::operator const H245_ConferenceRequest &() const
  460. #endif
  461. {
  462. #ifndef PASN_LEANANDMEAN
  463.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceRequest::Class()), PInvalidCast);
  464. #endif
  465.   return *(H245_ConferenceRequest *)choice;
  466. }
  467.  
  468.  
  469. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  470. H245_RequestMessage::operator H245_MultilinkRequest &() const
  471. #else
  472. H245_RequestMessage::operator H245_MultilinkRequest &()
  473. {
  474. #ifndef PASN_LEANANDMEAN
  475.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest::Class()), PInvalidCast);
  476. #endif
  477.   return *(H245_MultilinkRequest *)choice;
  478. }
  479.  
  480.  
  481. H245_RequestMessage::operator const H245_MultilinkRequest &() const
  482. #endif
  483. {
  484. #ifndef PASN_LEANANDMEAN
  485.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest::Class()), PInvalidCast);
  486. #endif
  487.   return *(H245_MultilinkRequest *)choice;
  488. }
  489.  
  490.  
  491. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  492. H245_RequestMessage::operator H245_LogicalChannelRateRequest &() const
  493. #else
  494. H245_RequestMessage::operator H245_LogicalChannelRateRequest &()
  495. {
  496. #ifndef PASN_LEANANDMEAN
  497.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateRequest::Class()), PInvalidCast);
  498. #endif
  499.   return *(H245_LogicalChannelRateRequest *)choice;
  500. }
  501.  
  502.  
  503. H245_RequestMessage::operator const H245_LogicalChannelRateRequest &() const
  504. #endif
  505. {
  506. #ifndef PASN_LEANANDMEAN
  507.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateRequest::Class()), PInvalidCast);
  508. #endif
  509.   return *(H245_LogicalChannelRateRequest *)choice;
  510. }
  511.  
  512.  
  513. BOOL H245_RequestMessage::CreateObject()
  514. {
  515.   switch (tag) {
  516.     case e_nonStandard :
  517.       choice = new H245_NonStandardMessage();
  518.       return TRUE;
  519.     case e_masterSlaveDetermination :
  520.       choice = new H245_MasterSlaveDetermination();
  521.       return TRUE;
  522.     case e_terminalCapabilitySet :
  523.       choice = new H245_TerminalCapabilitySet();
  524.       return TRUE;
  525.     case e_openLogicalChannel :
  526.       choice = new H245_OpenLogicalChannel();
  527.       return TRUE;
  528.     case e_closeLogicalChannel :
  529.       choice = new H245_CloseLogicalChannel();
  530.       return TRUE;
  531.     case e_requestChannelClose :
  532.       choice = new H245_RequestChannelClose();
  533.       return TRUE;
  534.     case e_multiplexEntrySend :
  535.       choice = new H245_MultiplexEntrySend();
  536.       return TRUE;
  537.     case e_requestMultiplexEntry :
  538.       choice = new H245_RequestMultiplexEntry();
  539.       return TRUE;
  540.     case e_requestMode :
  541.       choice = new H245_RequestMode();
  542.       return TRUE;
  543.     case e_roundTripDelayRequest :
  544.       choice = new H245_RoundTripDelayRequest();
  545.       return TRUE;
  546.     case e_maintenanceLoopRequest :
  547.       choice = new H245_MaintenanceLoopRequest();
  548.       return TRUE;
  549.     case e_communicationModeRequest :
  550.       choice = new H245_CommunicationModeRequest();
  551.       return TRUE;
  552.     case e_conferenceRequest :
  553.       choice = new H245_ConferenceRequest();
  554.       return TRUE;
  555.     case e_multilinkRequest :
  556.       choice = new H245_MultilinkRequest();
  557.       return TRUE;
  558.     case e_logicalChannelRateRequest :
  559.       choice = new H245_LogicalChannelRateRequest();
  560.       return TRUE;
  561.   }
  562.  
  563.   choice = NULL;
  564.   return FALSE;
  565. }
  566.  
  567.  
  568. PObject * H245_RequestMessage::Clone() const
  569. {
  570. #ifndef PASN_LEANANDMEAN
  571.   PAssert(IsClass(H245_RequestMessage::Class()), PInvalidCast);
  572. #endif
  573.   return new H245_RequestMessage(*this);
  574. }
  575.  
  576.  
  577. //
  578. // ResponseMessage
  579. //
  580.  
  581. H245_ResponseMessage::H245_ResponseMessage(unsigned tag, PASN_Object::TagClass tagClass)
  582.   : PASN_Choice(tag, tagClass, 19, TRUE
  583. #ifndef PASN_NOPRINTON
  584.       , "nonStandard "
  585.         "masterSlaveDeterminationAck "
  586.         "masterSlaveDeterminationReject "
  587.         "terminalCapabilitySetAck "
  588.         "terminalCapabilitySetReject "
  589.         "openLogicalChannelAck "
  590.         "openLogicalChannelReject "
  591.         "closeLogicalChannelAck "
  592.         "requestChannelCloseAck "
  593.         "requestChannelCloseReject "
  594.         "multiplexEntrySendAck "
  595.         "multiplexEntrySendReject "
  596.         "requestMultiplexEntryAck "
  597.         "requestMultiplexEntryReject "
  598.         "requestModeAck "
  599.         "requestModeReject "
  600.         "roundTripDelayResponse "
  601.         "maintenanceLoopAck "
  602.         "maintenanceLoopReject "
  603.         "communicationModeResponse "
  604.         "conferenceResponse "
  605.         "multilinkResponse "
  606.         "logicalChannelRateAcknowledge "
  607.         "logicalChannelRateReject "
  608. #endif
  609.     )
  610. {
  611. }
  612.  
  613.  
  614. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  615. H245_ResponseMessage::operator H245_NonStandardMessage &() const
  616. #else
  617. H245_ResponseMessage::operator H245_NonStandardMessage &()
  618. {
  619. #ifndef PASN_LEANANDMEAN
  620.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  621. #endif
  622.   return *(H245_NonStandardMessage *)choice;
  623. }
  624.  
  625.  
  626. H245_ResponseMessage::operator const H245_NonStandardMessage &() const
  627. #endif
  628. {
  629. #ifndef PASN_LEANANDMEAN
  630.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  631. #endif
  632.   return *(H245_NonStandardMessage *)choice;
  633. }
  634.  
  635.  
  636. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  637. H245_ResponseMessage::operator H245_MasterSlaveDeterminationAck &() const
  638. #else
  639. H245_ResponseMessage::operator H245_MasterSlaveDeterminationAck &()
  640. {
  641. #ifndef PASN_LEANANDMEAN
  642.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDeterminationAck::Class()), PInvalidCast);
  643. #endif
  644.   return *(H245_MasterSlaveDeterminationAck *)choice;
  645. }
  646.  
  647.  
  648. H245_ResponseMessage::operator const H245_MasterSlaveDeterminationAck &() const
  649. #endif
  650. {
  651. #ifndef PASN_LEANANDMEAN
  652.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDeterminationAck::Class()), PInvalidCast);
  653. #endif
  654.   return *(H245_MasterSlaveDeterminationAck *)choice;
  655. }
  656.  
  657.  
  658. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  659. H245_ResponseMessage::operator H245_MasterSlaveDeterminationReject &() const
  660. #else
  661. H245_ResponseMessage::operator H245_MasterSlaveDeterminationReject &()
  662. {
  663. #ifndef PASN_LEANANDMEAN
  664.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDeterminationReject::Class()), PInvalidCast);
  665. #endif
  666.   return *(H245_MasterSlaveDeterminationReject *)choice;
  667. }
  668.  
  669.  
  670. H245_ResponseMessage::operator const H245_MasterSlaveDeterminationReject &() const
  671. #endif
  672. {
  673. #ifndef PASN_LEANANDMEAN
  674.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDeterminationReject::Class()), PInvalidCast);
  675. #endif
  676.   return *(H245_MasterSlaveDeterminationReject *)choice;
  677. }
  678.  
  679.  
  680. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  681. H245_ResponseMessage::operator H245_TerminalCapabilitySetAck &() const
  682. #else
  683. H245_ResponseMessage::operator H245_TerminalCapabilitySetAck &()
  684. {
  685. #ifndef PASN_LEANANDMEAN
  686.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetAck::Class()), PInvalidCast);
  687. #endif
  688.   return *(H245_TerminalCapabilitySetAck *)choice;
  689. }
  690.  
  691.  
  692. H245_ResponseMessage::operator const H245_TerminalCapabilitySetAck &() const
  693. #endif
  694. {
  695. #ifndef PASN_LEANANDMEAN
  696.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetAck::Class()), PInvalidCast);
  697. #endif
  698.   return *(H245_TerminalCapabilitySetAck *)choice;
  699. }
  700.  
  701.  
  702. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  703. H245_ResponseMessage::operator H245_TerminalCapabilitySetReject &() const
  704. #else
  705. H245_ResponseMessage::operator H245_TerminalCapabilitySetReject &()
  706. {
  707. #ifndef PASN_LEANANDMEAN
  708.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetReject::Class()), PInvalidCast);
  709. #endif
  710.   return *(H245_TerminalCapabilitySetReject *)choice;
  711. }
  712.  
  713.  
  714. H245_ResponseMessage::operator const H245_TerminalCapabilitySetReject &() const
  715. #endif
  716. {
  717. #ifndef PASN_LEANANDMEAN
  718.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetReject::Class()), PInvalidCast);
  719. #endif
  720.   return *(H245_TerminalCapabilitySetReject *)choice;
  721. }
  722.  
  723.  
  724. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  725. H245_ResponseMessage::operator H245_OpenLogicalChannelAck &() const
  726. #else
  727. H245_ResponseMessage::operator H245_OpenLogicalChannelAck &()
  728. {
  729. #ifndef PASN_LEANANDMEAN
  730.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannelAck::Class()), PInvalidCast);
  731. #endif
  732.   return *(H245_OpenLogicalChannelAck *)choice;
  733. }
  734.  
  735.  
  736. H245_ResponseMessage::operator const H245_OpenLogicalChannelAck &() const
  737. #endif
  738. {
  739. #ifndef PASN_LEANANDMEAN
  740.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannelAck::Class()), PInvalidCast);
  741. #endif
  742.   return *(H245_OpenLogicalChannelAck *)choice;
  743. }
  744.  
  745.  
  746. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  747. H245_ResponseMessage::operator H245_OpenLogicalChannelReject &() const
  748. #else
  749. H245_ResponseMessage::operator H245_OpenLogicalChannelReject &()
  750. {
  751. #ifndef PASN_LEANANDMEAN
  752.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannelReject::Class()), PInvalidCast);
  753. #endif
  754.   return *(H245_OpenLogicalChannelReject *)choice;
  755. }
  756.  
  757.  
  758. H245_ResponseMessage::operator const H245_OpenLogicalChannelReject &() const
  759. #endif
  760. {
  761. #ifndef PASN_LEANANDMEAN
  762.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannelReject::Class()), PInvalidCast);
  763. #endif
  764.   return *(H245_OpenLogicalChannelReject *)choice;
  765. }
  766.  
  767.  
  768. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  769. H245_ResponseMessage::operator H245_CloseLogicalChannelAck &() const
  770. #else
  771. H245_ResponseMessage::operator H245_CloseLogicalChannelAck &()
  772. {
  773. #ifndef PASN_LEANANDMEAN
  774.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CloseLogicalChannelAck::Class()), PInvalidCast);
  775. #endif
  776.   return *(H245_CloseLogicalChannelAck *)choice;
  777. }
  778.  
  779.  
  780. H245_ResponseMessage::operator const H245_CloseLogicalChannelAck &() const
  781. #endif
  782. {
  783. #ifndef PASN_LEANANDMEAN
  784.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CloseLogicalChannelAck::Class()), PInvalidCast);
  785. #endif
  786.   return *(H245_CloseLogicalChannelAck *)choice;
  787. }
  788.  
  789.  
  790. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  791. H245_ResponseMessage::operator H245_RequestChannelCloseAck &() const
  792. #else
  793. H245_ResponseMessage::operator H245_RequestChannelCloseAck &()
  794. {
  795. #ifndef PASN_LEANANDMEAN
  796.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelCloseAck::Class()), PInvalidCast);
  797. #endif
  798.   return *(H245_RequestChannelCloseAck *)choice;
  799. }
  800.  
  801.  
  802. H245_ResponseMessage::operator const H245_RequestChannelCloseAck &() const
  803. #endif
  804. {
  805. #ifndef PASN_LEANANDMEAN
  806.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelCloseAck::Class()), PInvalidCast);
  807. #endif
  808.   return *(H245_RequestChannelCloseAck *)choice;
  809. }
  810.  
  811.  
  812. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  813. H245_ResponseMessage::operator H245_RequestChannelCloseReject &() const
  814. #else
  815. H245_ResponseMessage::operator H245_RequestChannelCloseReject &()
  816. {
  817. #ifndef PASN_LEANANDMEAN
  818.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelCloseReject::Class()), PInvalidCast);
  819. #endif
  820.   return *(H245_RequestChannelCloseReject *)choice;
  821. }
  822.  
  823.  
  824. H245_ResponseMessage::operator const H245_RequestChannelCloseReject &() const
  825. #endif
  826. {
  827. #ifndef PASN_LEANANDMEAN
  828.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelCloseReject::Class()), PInvalidCast);
  829. #endif
  830.   return *(H245_RequestChannelCloseReject *)choice;
  831. }
  832.  
  833.  
  834. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  835. H245_ResponseMessage::operator H245_MultiplexEntrySendAck &() const
  836. #else
  837. H245_ResponseMessage::operator H245_MultiplexEntrySendAck &()
  838. {
  839. #ifndef PASN_LEANANDMEAN
  840.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySendAck::Class()), PInvalidCast);
  841. #endif
  842.   return *(H245_MultiplexEntrySendAck *)choice;
  843. }
  844.  
  845.  
  846. H245_ResponseMessage::operator const H245_MultiplexEntrySendAck &() const
  847. #endif
  848. {
  849. #ifndef PASN_LEANANDMEAN
  850.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySendAck::Class()), PInvalidCast);
  851. #endif
  852.   return *(H245_MultiplexEntrySendAck *)choice;
  853. }
  854.  
  855.  
  856. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  857. H245_ResponseMessage::operator H245_MultiplexEntrySendReject &() const
  858. #else
  859. H245_ResponseMessage::operator H245_MultiplexEntrySendReject &()
  860. {
  861. #ifndef PASN_LEANANDMEAN
  862.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySendReject::Class()), PInvalidCast);
  863. #endif
  864.   return *(H245_MultiplexEntrySendReject *)choice;
  865. }
  866.  
  867.  
  868. H245_ResponseMessage::operator const H245_MultiplexEntrySendReject &() const
  869. #endif
  870. {
  871. #ifndef PASN_LEANANDMEAN
  872.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySendReject::Class()), PInvalidCast);
  873. #endif
  874.   return *(H245_MultiplexEntrySendReject *)choice;
  875. }
  876.  
  877.  
  878. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  879. H245_ResponseMessage::operator H245_RequestMultiplexEntryAck &() const
  880. #else
  881. H245_ResponseMessage::operator H245_RequestMultiplexEntryAck &()
  882. {
  883. #ifndef PASN_LEANANDMEAN
  884.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntryAck::Class()), PInvalidCast);
  885. #endif
  886.   return *(H245_RequestMultiplexEntryAck *)choice;
  887. }
  888.  
  889.  
  890. H245_ResponseMessage::operator const H245_RequestMultiplexEntryAck &() const
  891. #endif
  892. {
  893. #ifndef PASN_LEANANDMEAN
  894.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntryAck::Class()), PInvalidCast);
  895. #endif
  896.   return *(H245_RequestMultiplexEntryAck *)choice;
  897. }
  898.  
  899.  
  900. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  901. H245_ResponseMessage::operator H245_RequestMultiplexEntryReject &() const
  902. #else
  903. H245_ResponseMessage::operator H245_RequestMultiplexEntryReject &()
  904. {
  905. #ifndef PASN_LEANANDMEAN
  906.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntryReject::Class()), PInvalidCast);
  907. #endif
  908.   return *(H245_RequestMultiplexEntryReject *)choice;
  909. }
  910.  
  911.  
  912. H245_ResponseMessage::operator const H245_RequestMultiplexEntryReject &() const
  913. #endif
  914. {
  915. #ifndef PASN_LEANANDMEAN
  916.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntryReject::Class()), PInvalidCast);
  917. #endif
  918.   return *(H245_RequestMultiplexEntryReject *)choice;
  919. }
  920.  
  921.  
  922. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  923. H245_ResponseMessage::operator H245_RequestModeAck &() const
  924. #else
  925. H245_ResponseMessage::operator H245_RequestModeAck &()
  926. {
  927. #ifndef PASN_LEANANDMEAN
  928.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestModeAck::Class()), PInvalidCast);
  929. #endif
  930.   return *(H245_RequestModeAck *)choice;
  931. }
  932.  
  933.  
  934. H245_ResponseMessage::operator const H245_RequestModeAck &() const
  935. #endif
  936. {
  937. #ifndef PASN_LEANANDMEAN
  938.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestModeAck::Class()), PInvalidCast);
  939. #endif
  940.   return *(H245_RequestModeAck *)choice;
  941. }
  942.  
  943.  
  944. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  945. H245_ResponseMessage::operator H245_RequestModeReject &() const
  946. #else
  947. H245_ResponseMessage::operator H245_RequestModeReject &()
  948. {
  949. #ifndef PASN_LEANANDMEAN
  950.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestModeReject::Class()), PInvalidCast);
  951. #endif
  952.   return *(H245_RequestModeReject *)choice;
  953. }
  954.  
  955.  
  956. H245_ResponseMessage::operator const H245_RequestModeReject &() const
  957. #endif
  958. {
  959. #ifndef PASN_LEANANDMEAN
  960.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestModeReject::Class()), PInvalidCast);
  961. #endif
  962.   return *(H245_RequestModeReject *)choice;
  963. }
  964.  
  965.  
  966. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  967. H245_ResponseMessage::operator H245_RoundTripDelayResponse &() const
  968. #else
  969. H245_ResponseMessage::operator H245_RoundTripDelayResponse &()
  970. {
  971. #ifndef PASN_LEANANDMEAN
  972.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RoundTripDelayResponse::Class()), PInvalidCast);
  973. #endif
  974.   return *(H245_RoundTripDelayResponse *)choice;
  975. }
  976.  
  977.  
  978. H245_ResponseMessage::operator const H245_RoundTripDelayResponse &() const
  979. #endif
  980. {
  981. #ifndef PASN_LEANANDMEAN
  982.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RoundTripDelayResponse::Class()), PInvalidCast);
  983. #endif
  984.   return *(H245_RoundTripDelayResponse *)choice;
  985. }
  986.  
  987.  
  988. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  989. H245_ResponseMessage::operator H245_MaintenanceLoopAck &() const
  990. #else
  991. H245_ResponseMessage::operator H245_MaintenanceLoopAck &()
  992. {
  993. #ifndef PASN_LEANANDMEAN
  994.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopAck::Class()), PInvalidCast);
  995. #endif
  996.   return *(H245_MaintenanceLoopAck *)choice;
  997. }
  998.  
  999.  
  1000. H245_ResponseMessage::operator const H245_MaintenanceLoopAck &() const
  1001. #endif
  1002. {
  1003. #ifndef PASN_LEANANDMEAN
  1004.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopAck::Class()), PInvalidCast);
  1005. #endif
  1006.   return *(H245_MaintenanceLoopAck *)choice;
  1007. }
  1008.  
  1009.  
  1010. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1011. H245_ResponseMessage::operator H245_MaintenanceLoopReject &() const
  1012. #else
  1013. H245_ResponseMessage::operator H245_MaintenanceLoopReject &()
  1014. {
  1015. #ifndef PASN_LEANANDMEAN
  1016.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopReject::Class()), PInvalidCast);
  1017. #endif
  1018.   return *(H245_MaintenanceLoopReject *)choice;
  1019. }
  1020.  
  1021.  
  1022. H245_ResponseMessage::operator const H245_MaintenanceLoopReject &() const
  1023. #endif
  1024. {
  1025. #ifndef PASN_LEANANDMEAN
  1026.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopReject::Class()), PInvalidCast);
  1027. #endif
  1028.   return *(H245_MaintenanceLoopReject *)choice;
  1029. }
  1030.  
  1031.  
  1032. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1033. H245_ResponseMessage::operator H245_CommunicationModeResponse &() const
  1034. #else
  1035. H245_ResponseMessage::operator H245_CommunicationModeResponse &()
  1036. {
  1037. #ifndef PASN_LEANANDMEAN
  1038.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommunicationModeResponse::Class()), PInvalidCast);
  1039. #endif
  1040.   return *(H245_CommunicationModeResponse *)choice;
  1041. }
  1042.  
  1043.  
  1044. H245_ResponseMessage::operator const H245_CommunicationModeResponse &() const
  1045. #endif
  1046. {
  1047. #ifndef PASN_LEANANDMEAN
  1048.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommunicationModeResponse::Class()), PInvalidCast);
  1049. #endif
  1050.   return *(H245_CommunicationModeResponse *)choice;
  1051. }
  1052.  
  1053.  
  1054. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1055. H245_ResponseMessage::operator H245_ConferenceResponse &() const
  1056. #else
  1057. H245_ResponseMessage::operator H245_ConferenceResponse &()
  1058. {
  1059. #ifndef PASN_LEANANDMEAN
  1060.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse::Class()), PInvalidCast);
  1061. #endif
  1062.   return *(H245_ConferenceResponse *)choice;
  1063. }
  1064.  
  1065.  
  1066. H245_ResponseMessage::operator const H245_ConferenceResponse &() const
  1067. #endif
  1068. {
  1069. #ifndef PASN_LEANANDMEAN
  1070.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse::Class()), PInvalidCast);
  1071. #endif
  1072.   return *(H245_ConferenceResponse *)choice;
  1073. }
  1074.  
  1075.  
  1076. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1077. H245_ResponseMessage::operator H245_MultilinkResponse &() const
  1078. #else
  1079. H245_ResponseMessage::operator H245_MultilinkResponse &()
  1080. {
  1081. #ifndef PASN_LEANANDMEAN
  1082.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse::Class()), PInvalidCast);
  1083. #endif
  1084.   return *(H245_MultilinkResponse *)choice;
  1085. }
  1086.  
  1087.  
  1088. H245_ResponseMessage::operator const H245_MultilinkResponse &() const
  1089. #endif
  1090. {
  1091. #ifndef PASN_LEANANDMEAN
  1092.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse::Class()), PInvalidCast);
  1093. #endif
  1094.   return *(H245_MultilinkResponse *)choice;
  1095. }
  1096.  
  1097.  
  1098. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1099. H245_ResponseMessage::operator H245_LogicalChannelRateAcknowledge &() const
  1100. #else
  1101. H245_ResponseMessage::operator H245_LogicalChannelRateAcknowledge &()
  1102. {
  1103. #ifndef PASN_LEANANDMEAN
  1104.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateAcknowledge::Class()), PInvalidCast);
  1105. #endif
  1106.   return *(H245_LogicalChannelRateAcknowledge *)choice;
  1107. }
  1108.  
  1109.  
  1110. H245_ResponseMessage::operator const H245_LogicalChannelRateAcknowledge &() const
  1111. #endif
  1112. {
  1113. #ifndef PASN_LEANANDMEAN
  1114.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateAcknowledge::Class()), PInvalidCast);
  1115. #endif
  1116.   return *(H245_LogicalChannelRateAcknowledge *)choice;
  1117. }
  1118.  
  1119.  
  1120. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1121. H245_ResponseMessage::operator H245_LogicalChannelRateReject &() const
  1122. #else
  1123. H245_ResponseMessage::operator H245_LogicalChannelRateReject &()
  1124. {
  1125. #ifndef PASN_LEANANDMEAN
  1126.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateReject::Class()), PInvalidCast);
  1127. #endif
  1128.   return *(H245_LogicalChannelRateReject *)choice;
  1129. }
  1130.  
  1131.  
  1132. H245_ResponseMessage::operator const H245_LogicalChannelRateReject &() const
  1133. #endif
  1134. {
  1135. #ifndef PASN_LEANANDMEAN
  1136.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateReject::Class()), PInvalidCast);
  1137. #endif
  1138.   return *(H245_LogicalChannelRateReject *)choice;
  1139. }
  1140.  
  1141.  
  1142. BOOL H245_ResponseMessage::CreateObject()
  1143. {
  1144.   switch (tag) {
  1145.     case e_nonStandard :
  1146.       choice = new H245_NonStandardMessage();
  1147.       return TRUE;
  1148.     case e_masterSlaveDeterminationAck :
  1149.       choice = new H245_MasterSlaveDeterminationAck();
  1150.       return TRUE;
  1151.     case e_masterSlaveDeterminationReject :
  1152.       choice = new H245_MasterSlaveDeterminationReject();
  1153.       return TRUE;
  1154.     case e_terminalCapabilitySetAck :
  1155.       choice = new H245_TerminalCapabilitySetAck();
  1156.       return TRUE;
  1157.     case e_terminalCapabilitySetReject :
  1158.       choice = new H245_TerminalCapabilitySetReject();
  1159.       return TRUE;
  1160.     case e_openLogicalChannelAck :
  1161.       choice = new H245_OpenLogicalChannelAck();
  1162.       return TRUE;
  1163.     case e_openLogicalChannelReject :
  1164.       choice = new H245_OpenLogicalChannelReject();
  1165.       return TRUE;
  1166.     case e_closeLogicalChannelAck :
  1167.       choice = new H245_CloseLogicalChannelAck();
  1168.       return TRUE;
  1169.     case e_requestChannelCloseAck :
  1170.       choice = new H245_RequestChannelCloseAck();
  1171.       return TRUE;
  1172.     case e_requestChannelCloseReject :
  1173.       choice = new H245_RequestChannelCloseReject();
  1174.       return TRUE;
  1175.     case e_multiplexEntrySendAck :
  1176.       choice = new H245_MultiplexEntrySendAck();
  1177.       return TRUE;
  1178.     case e_multiplexEntrySendReject :
  1179.       choice = new H245_MultiplexEntrySendReject();
  1180.       return TRUE;
  1181.     case e_requestMultiplexEntryAck :
  1182.       choice = new H245_RequestMultiplexEntryAck();
  1183.       return TRUE;
  1184.     case e_requestMultiplexEntryReject :
  1185.       choice = new H245_RequestMultiplexEntryReject();
  1186.       return TRUE;
  1187.     case e_requestModeAck :
  1188.       choice = new H245_RequestModeAck();
  1189.       return TRUE;
  1190.     case e_requestModeReject :
  1191.       choice = new H245_RequestModeReject();
  1192.       return TRUE;
  1193.     case e_roundTripDelayResponse :
  1194.       choice = new H245_RoundTripDelayResponse();
  1195.       return TRUE;
  1196.     case e_maintenanceLoopAck :
  1197.       choice = new H245_MaintenanceLoopAck();
  1198.       return TRUE;
  1199.     case e_maintenanceLoopReject :
  1200.       choice = new H245_MaintenanceLoopReject();
  1201.       return TRUE;
  1202.     case e_communicationModeResponse :
  1203.       choice = new H245_CommunicationModeResponse();
  1204.       return TRUE;
  1205.     case e_conferenceResponse :
  1206.       choice = new H245_ConferenceResponse();
  1207.       return TRUE;
  1208.     case e_multilinkResponse :
  1209.       choice = new H245_MultilinkResponse();
  1210.       return TRUE;
  1211.     case e_logicalChannelRateAcknowledge :
  1212.       choice = new H245_LogicalChannelRateAcknowledge();
  1213.       return TRUE;
  1214.     case e_logicalChannelRateReject :
  1215.       choice = new H245_LogicalChannelRateReject();
  1216.       return TRUE;
  1217.   }
  1218.  
  1219.   choice = NULL;
  1220.   return FALSE;
  1221. }
  1222.  
  1223.  
  1224. PObject * H245_ResponseMessage::Clone() const
  1225. {
  1226. #ifndef PASN_LEANANDMEAN
  1227.   PAssert(IsClass(H245_ResponseMessage::Class()), PInvalidCast);
  1228. #endif
  1229.   return new H245_ResponseMessage(*this);
  1230. }
  1231.  
  1232.  
  1233. //
  1234. // CommandMessage
  1235. //
  1236.  
  1237. H245_CommandMessage::H245_CommandMessage(unsigned tag, PASN_Object::TagClass tagClass)
  1238.   : PASN_Choice(tag, tagClass, 7, TRUE
  1239. #ifndef PASN_NOPRINTON
  1240.       , "nonStandard "
  1241.         "maintenanceLoopOffCommand "
  1242.         "sendTerminalCapabilitySet "
  1243.         "encryptionCommand "
  1244.         "flowControlCommand "
  1245.         "endSessionCommand "
  1246.         "miscellaneousCommand "
  1247.         "communicationModeCommand "
  1248.         "conferenceCommand "
  1249.         "h223MultiplexReconfiguration "
  1250.         "newATMVCCommand "
  1251.         "mobileMultilinkReconfigurationCommand "
  1252. #endif
  1253.     )
  1254. {
  1255. }
  1256.  
  1257.  
  1258. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1259. H245_CommandMessage::operator H245_NonStandardMessage &() const
  1260. #else
  1261. H245_CommandMessage::operator H245_NonStandardMessage &()
  1262. {
  1263. #ifndef PASN_LEANANDMEAN
  1264.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  1265. #endif
  1266.   return *(H245_NonStandardMessage *)choice;
  1267. }
  1268.  
  1269.  
  1270. H245_CommandMessage::operator const H245_NonStandardMessage &() const
  1271. #endif
  1272. {
  1273. #ifndef PASN_LEANANDMEAN
  1274.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  1275. #endif
  1276.   return *(H245_NonStandardMessage *)choice;
  1277. }
  1278.  
  1279.  
  1280. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1281. H245_CommandMessage::operator H245_MaintenanceLoopOffCommand &() const
  1282. #else
  1283. H245_CommandMessage::operator H245_MaintenanceLoopOffCommand &()
  1284. {
  1285. #ifndef PASN_LEANANDMEAN
  1286.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopOffCommand::Class()), PInvalidCast);
  1287. #endif
  1288.   return *(H245_MaintenanceLoopOffCommand *)choice;
  1289. }
  1290.  
  1291.  
  1292. H245_CommandMessage::operator const H245_MaintenanceLoopOffCommand &() const
  1293. #endif
  1294. {
  1295. #ifndef PASN_LEANANDMEAN
  1296.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MaintenanceLoopOffCommand::Class()), PInvalidCast);
  1297. #endif
  1298.   return *(H245_MaintenanceLoopOffCommand *)choice;
  1299. }
  1300.  
  1301.  
  1302. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1303. H245_CommandMessage::operator H245_SendTerminalCapabilitySet &() const
  1304. #else
  1305. H245_CommandMessage::operator H245_SendTerminalCapabilitySet &()
  1306. {
  1307. #ifndef PASN_LEANANDMEAN
  1308.   PAssert(PAssertNULL(choice)->IsDescendant(H245_SendTerminalCapabilitySet::Class()), PInvalidCast);
  1309. #endif
  1310.   return *(H245_SendTerminalCapabilitySet *)choice;
  1311. }
  1312.  
  1313.  
  1314. H245_CommandMessage::operator const H245_SendTerminalCapabilitySet &() const
  1315. #endif
  1316. {
  1317. #ifndef PASN_LEANANDMEAN
  1318.   PAssert(PAssertNULL(choice)->IsDescendant(H245_SendTerminalCapabilitySet::Class()), PInvalidCast);
  1319. #endif
  1320.   return *(H245_SendTerminalCapabilitySet *)choice;
  1321. }
  1322.  
  1323.  
  1324. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1325. H245_CommandMessage::operator H245_EncryptionCommand &() const
  1326. #else
  1327. H245_CommandMessage::operator H245_EncryptionCommand &()
  1328. {
  1329. #ifndef PASN_LEANANDMEAN
  1330.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionCommand::Class()), PInvalidCast);
  1331. #endif
  1332.   return *(H245_EncryptionCommand *)choice;
  1333. }
  1334.  
  1335.  
  1336. H245_CommandMessage::operator const H245_EncryptionCommand &() const
  1337. #endif
  1338. {
  1339. #ifndef PASN_LEANANDMEAN
  1340.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionCommand::Class()), PInvalidCast);
  1341. #endif
  1342.   return *(H245_EncryptionCommand *)choice;
  1343. }
  1344.  
  1345.  
  1346. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1347. H245_CommandMessage::operator H245_FlowControlCommand &() const
  1348. #else
  1349. H245_CommandMessage::operator H245_FlowControlCommand &()
  1350. {
  1351. #ifndef PASN_LEANANDMEAN
  1352.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FlowControlCommand::Class()), PInvalidCast);
  1353. #endif
  1354.   return *(H245_FlowControlCommand *)choice;
  1355. }
  1356.  
  1357.  
  1358. H245_CommandMessage::operator const H245_FlowControlCommand &() const
  1359. #endif
  1360. {
  1361. #ifndef PASN_LEANANDMEAN
  1362.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FlowControlCommand::Class()), PInvalidCast);
  1363. #endif
  1364.   return *(H245_FlowControlCommand *)choice;
  1365. }
  1366.  
  1367.  
  1368. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1369. H245_CommandMessage::operator H245_EndSessionCommand &() const
  1370. #else
  1371. H245_CommandMessage::operator H245_EndSessionCommand &()
  1372. {
  1373. #ifndef PASN_LEANANDMEAN
  1374.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EndSessionCommand::Class()), PInvalidCast);
  1375. #endif
  1376.   return *(H245_EndSessionCommand *)choice;
  1377. }
  1378.  
  1379.  
  1380. H245_CommandMessage::operator const H245_EndSessionCommand &() const
  1381. #endif
  1382. {
  1383. #ifndef PASN_LEANANDMEAN
  1384.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EndSessionCommand::Class()), PInvalidCast);
  1385. #endif
  1386.   return *(H245_EndSessionCommand *)choice;
  1387. }
  1388.  
  1389.  
  1390. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1391. H245_CommandMessage::operator H245_MiscellaneousCommand &() const
  1392. #else
  1393. H245_CommandMessage::operator H245_MiscellaneousCommand &()
  1394. {
  1395. #ifndef PASN_LEANANDMEAN
  1396.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand::Class()), PInvalidCast);
  1397. #endif
  1398.   return *(H245_MiscellaneousCommand *)choice;
  1399. }
  1400.  
  1401.  
  1402. H245_CommandMessage::operator const H245_MiscellaneousCommand &() const
  1403. #endif
  1404. {
  1405. #ifndef PASN_LEANANDMEAN
  1406.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand::Class()), PInvalidCast);
  1407. #endif
  1408.   return *(H245_MiscellaneousCommand *)choice;
  1409. }
  1410.  
  1411.  
  1412. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1413. H245_CommandMessage::operator H245_CommunicationModeCommand &() const
  1414. #else
  1415. H245_CommandMessage::operator H245_CommunicationModeCommand &()
  1416. {
  1417. #ifndef PASN_LEANANDMEAN
  1418.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommunicationModeCommand::Class()), PInvalidCast);
  1419. #endif
  1420.   return *(H245_CommunicationModeCommand *)choice;
  1421. }
  1422.  
  1423.  
  1424. H245_CommandMessage::operator const H245_CommunicationModeCommand &() const
  1425. #endif
  1426. {
  1427. #ifndef PASN_LEANANDMEAN
  1428.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommunicationModeCommand::Class()), PInvalidCast);
  1429. #endif
  1430.   return *(H245_CommunicationModeCommand *)choice;
  1431. }
  1432.  
  1433.  
  1434. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1435. H245_CommandMessage::operator H245_ConferenceCommand &() const
  1436. #else
  1437. H245_CommandMessage::operator H245_ConferenceCommand &()
  1438. {
  1439. #ifndef PASN_LEANANDMEAN
  1440.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceCommand::Class()), PInvalidCast);
  1441. #endif
  1442.   return *(H245_ConferenceCommand *)choice;
  1443. }
  1444.  
  1445.  
  1446. H245_CommandMessage::operator const H245_ConferenceCommand &() const
  1447. #endif
  1448. {
  1449. #ifndef PASN_LEANANDMEAN
  1450.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceCommand::Class()), PInvalidCast);
  1451. #endif
  1452.   return *(H245_ConferenceCommand *)choice;
  1453. }
  1454.  
  1455.  
  1456. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1457. H245_CommandMessage::operator H245_H223MultiplexReconfiguration &() const
  1458. #else
  1459. H245_CommandMessage::operator H245_H223MultiplexReconfiguration &()
  1460. {
  1461. #ifndef PASN_LEANANDMEAN
  1462.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223MultiplexReconfiguration::Class()), PInvalidCast);
  1463. #endif
  1464.   return *(H245_H223MultiplexReconfiguration *)choice;
  1465. }
  1466.  
  1467.  
  1468. H245_CommandMessage::operator const H245_H223MultiplexReconfiguration &() const
  1469. #endif
  1470. {
  1471. #ifndef PASN_LEANANDMEAN
  1472.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223MultiplexReconfiguration::Class()), PInvalidCast);
  1473. #endif
  1474.   return *(H245_H223MultiplexReconfiguration *)choice;
  1475. }
  1476.  
  1477.  
  1478. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1479. H245_CommandMessage::operator H245_NewATMVCCommand &() const
  1480. #else
  1481. H245_CommandMessage::operator H245_NewATMVCCommand &()
  1482. {
  1483. #ifndef PASN_LEANANDMEAN
  1484.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCCommand::Class()), PInvalidCast);
  1485. #endif
  1486.   return *(H245_NewATMVCCommand *)choice;
  1487. }
  1488.  
  1489.  
  1490. H245_CommandMessage::operator const H245_NewATMVCCommand &() const
  1491. #endif
  1492. {
  1493. #ifndef PASN_LEANANDMEAN
  1494.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCCommand::Class()), PInvalidCast);
  1495. #endif
  1496.   return *(H245_NewATMVCCommand *)choice;
  1497. }
  1498.  
  1499.  
  1500. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1501. H245_CommandMessage::operator H245_MobileMultilinkReconfigurationCommand &() const
  1502. #else
  1503. H245_CommandMessage::operator H245_MobileMultilinkReconfigurationCommand &()
  1504. {
  1505. #ifndef PASN_LEANANDMEAN
  1506.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MobileMultilinkReconfigurationCommand::Class()), PInvalidCast);
  1507. #endif
  1508.   return *(H245_MobileMultilinkReconfigurationCommand *)choice;
  1509. }
  1510.  
  1511.  
  1512. H245_CommandMessage::operator const H245_MobileMultilinkReconfigurationCommand &() const
  1513. #endif
  1514. {
  1515. #ifndef PASN_LEANANDMEAN
  1516.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MobileMultilinkReconfigurationCommand::Class()), PInvalidCast);
  1517. #endif
  1518.   return *(H245_MobileMultilinkReconfigurationCommand *)choice;
  1519. }
  1520.  
  1521.  
  1522. BOOL H245_CommandMessage::CreateObject()
  1523. {
  1524.   switch (tag) {
  1525.     case e_nonStandard :
  1526.       choice = new H245_NonStandardMessage();
  1527.       return TRUE;
  1528.     case e_maintenanceLoopOffCommand :
  1529.       choice = new H245_MaintenanceLoopOffCommand();
  1530.       return TRUE;
  1531.     case e_sendTerminalCapabilitySet :
  1532.       choice = new H245_SendTerminalCapabilitySet();
  1533.       return TRUE;
  1534.     case e_encryptionCommand :
  1535.       choice = new H245_EncryptionCommand();
  1536.       return TRUE;
  1537.     case e_flowControlCommand :
  1538.       choice = new H245_FlowControlCommand();
  1539.       return TRUE;
  1540.     case e_endSessionCommand :
  1541.       choice = new H245_EndSessionCommand();
  1542.       return TRUE;
  1543.     case e_miscellaneousCommand :
  1544.       choice = new H245_MiscellaneousCommand();
  1545.       return TRUE;
  1546.     case e_communicationModeCommand :
  1547.       choice = new H245_CommunicationModeCommand();
  1548.       return TRUE;
  1549.     case e_conferenceCommand :
  1550.       choice = new H245_ConferenceCommand();
  1551.       return TRUE;
  1552.     case e_h223MultiplexReconfiguration :
  1553.       choice = new H245_H223MultiplexReconfiguration();
  1554.       return TRUE;
  1555.     case e_newATMVCCommand :
  1556.       choice = new H245_NewATMVCCommand();
  1557.       return TRUE;
  1558.     case e_mobileMultilinkReconfigurationCommand :
  1559.       choice = new H245_MobileMultilinkReconfigurationCommand();
  1560.       return TRUE;
  1561.   }
  1562.  
  1563.   choice = NULL;
  1564.   return FALSE;
  1565. }
  1566.  
  1567.  
  1568. PObject * H245_CommandMessage::Clone() const
  1569. {
  1570. #ifndef PASN_LEANANDMEAN
  1571.   PAssert(IsClass(H245_CommandMessage::Class()), PInvalidCast);
  1572. #endif
  1573.   return new H245_CommandMessage(*this);
  1574. }
  1575.  
  1576.  
  1577. //
  1578. // IndicationMessage
  1579. //
  1580.  
  1581. H245_IndicationMessage::H245_IndicationMessage(unsigned tag, PASN_Object::TagClass tagClass)
  1582.   : PASN_Choice(tag, tagClass, 14, TRUE
  1583. #ifndef PASN_NOPRINTON
  1584.       , "nonStandard "
  1585.         "functionNotUnderstood "
  1586.         "masterSlaveDeterminationRelease "
  1587.         "terminalCapabilitySetRelease "
  1588.         "openLogicalChannelConfirm "
  1589.         "requestChannelCloseRelease "
  1590.         "multiplexEntrySendRelease "
  1591.         "requestMultiplexEntryRelease "
  1592.         "requestModeRelease "
  1593.         "miscellaneousIndication "
  1594.         "jitterIndication "
  1595.         "h223SkewIndication "
  1596.         "newATMVCIndication "
  1597.         "userInput "
  1598.         "h2250MaximumSkewIndication "
  1599.         "mcLocationIndication "
  1600.         "conferenceIndication "
  1601.         "vendorIdentification "
  1602.         "functionNotSupported "
  1603.         "multilinkIndication "
  1604.         "logicalChannelRateRelease "
  1605.         "flowControlIndication "
  1606.         "mobileMultilinkReconfigurationIndication "
  1607. #endif
  1608.     )
  1609. {
  1610. }
  1611.  
  1612.  
  1613. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1614. H245_IndicationMessage::operator H245_NonStandardMessage &() const
  1615. #else
  1616. H245_IndicationMessage::operator H245_NonStandardMessage &()
  1617. {
  1618. #ifndef PASN_LEANANDMEAN
  1619.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  1620. #endif
  1621.   return *(H245_NonStandardMessage *)choice;
  1622. }
  1623.  
  1624.  
  1625. H245_IndicationMessage::operator const H245_NonStandardMessage &() const
  1626. #endif
  1627. {
  1628. #ifndef PASN_LEANANDMEAN
  1629.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  1630. #endif
  1631.   return *(H245_NonStandardMessage *)choice;
  1632. }
  1633.  
  1634.  
  1635. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1636. H245_IndicationMessage::operator H245_FunctionNotUnderstood &() const
  1637. #else
  1638. H245_IndicationMessage::operator H245_FunctionNotUnderstood &()
  1639. {
  1640. #ifndef PASN_LEANANDMEAN
  1641.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FunctionNotUnderstood::Class()), PInvalidCast);
  1642. #endif
  1643.   return *(H245_FunctionNotUnderstood *)choice;
  1644. }
  1645.  
  1646.  
  1647. H245_IndicationMessage::operator const H245_FunctionNotUnderstood &() const
  1648. #endif
  1649. {
  1650. #ifndef PASN_LEANANDMEAN
  1651.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FunctionNotUnderstood::Class()), PInvalidCast);
  1652. #endif
  1653.   return *(H245_FunctionNotUnderstood *)choice;
  1654. }
  1655.  
  1656.  
  1657. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1658. H245_IndicationMessage::operator H245_MasterSlaveDeterminationRelease &() const
  1659. #else
  1660. H245_IndicationMessage::operator H245_MasterSlaveDeterminationRelease &()
  1661. {
  1662. #ifndef PASN_LEANANDMEAN
  1663.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDeterminationRelease::Class()), PInvalidCast);
  1664. #endif
  1665.   return *(H245_MasterSlaveDeterminationRelease *)choice;
  1666. }
  1667.  
  1668.  
  1669. H245_IndicationMessage::operator const H245_MasterSlaveDeterminationRelease &() const
  1670. #endif
  1671. {
  1672. #ifndef PASN_LEANANDMEAN
  1673.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MasterSlaveDeterminationRelease::Class()), PInvalidCast);
  1674. #endif
  1675.   return *(H245_MasterSlaveDeterminationRelease *)choice;
  1676. }
  1677.  
  1678.  
  1679. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1680. H245_IndicationMessage::operator H245_TerminalCapabilitySetRelease &() const
  1681. #else
  1682. H245_IndicationMessage::operator H245_TerminalCapabilitySetRelease &()
  1683. {
  1684. #ifndef PASN_LEANANDMEAN
  1685.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetRelease::Class()), PInvalidCast);
  1686. #endif
  1687.   return *(H245_TerminalCapabilitySetRelease *)choice;
  1688. }
  1689.  
  1690.  
  1691. H245_IndicationMessage::operator const H245_TerminalCapabilitySetRelease &() const
  1692. #endif
  1693. {
  1694. #ifndef PASN_LEANANDMEAN
  1695.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetRelease::Class()), PInvalidCast);
  1696. #endif
  1697.   return *(H245_TerminalCapabilitySetRelease *)choice;
  1698. }
  1699.  
  1700.  
  1701. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1702. H245_IndicationMessage::operator H245_OpenLogicalChannelConfirm &() const
  1703. #else
  1704. H245_IndicationMessage::operator H245_OpenLogicalChannelConfirm &()
  1705. {
  1706. #ifndef PASN_LEANANDMEAN
  1707.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannelConfirm::Class()), PInvalidCast);
  1708. #endif
  1709.   return *(H245_OpenLogicalChannelConfirm *)choice;
  1710. }
  1711.  
  1712.  
  1713. H245_IndicationMessage::operator const H245_OpenLogicalChannelConfirm &() const
  1714. #endif
  1715. {
  1716. #ifndef PASN_LEANANDMEAN
  1717.   PAssert(PAssertNULL(choice)->IsDescendant(H245_OpenLogicalChannelConfirm::Class()), PInvalidCast);
  1718. #endif
  1719.   return *(H245_OpenLogicalChannelConfirm *)choice;
  1720. }
  1721.  
  1722.  
  1723. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1724. H245_IndicationMessage::operator H245_RequestChannelCloseRelease &() const
  1725. #else
  1726. H245_IndicationMessage::operator H245_RequestChannelCloseRelease &()
  1727. {
  1728. #ifndef PASN_LEANANDMEAN
  1729.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelCloseRelease::Class()), PInvalidCast);
  1730. #endif
  1731.   return *(H245_RequestChannelCloseRelease *)choice;
  1732. }
  1733.  
  1734.  
  1735. H245_IndicationMessage::operator const H245_RequestChannelCloseRelease &() const
  1736. #endif
  1737. {
  1738. #ifndef PASN_LEANANDMEAN
  1739.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestChannelCloseRelease::Class()), PInvalidCast);
  1740. #endif
  1741.   return *(H245_RequestChannelCloseRelease *)choice;
  1742. }
  1743.  
  1744.  
  1745. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1746. H245_IndicationMessage::operator H245_MultiplexEntrySendRelease &() const
  1747. #else
  1748. H245_IndicationMessage::operator H245_MultiplexEntrySendRelease &()
  1749. {
  1750. #ifndef PASN_LEANANDMEAN
  1751.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySendRelease::Class()), PInvalidCast);
  1752. #endif
  1753.   return *(H245_MultiplexEntrySendRelease *)choice;
  1754. }
  1755.  
  1756.  
  1757. H245_IndicationMessage::operator const H245_MultiplexEntrySendRelease &() const
  1758. #endif
  1759. {
  1760. #ifndef PASN_LEANANDMEAN
  1761.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexEntrySendRelease::Class()), PInvalidCast);
  1762. #endif
  1763.   return *(H245_MultiplexEntrySendRelease *)choice;
  1764. }
  1765.  
  1766.  
  1767. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1768. H245_IndicationMessage::operator H245_RequestMultiplexEntryRelease &() const
  1769. #else
  1770. H245_IndicationMessage::operator H245_RequestMultiplexEntryRelease &()
  1771. {
  1772. #ifndef PASN_LEANANDMEAN
  1773.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntryRelease::Class()), PInvalidCast);
  1774. #endif
  1775.   return *(H245_RequestMultiplexEntryRelease *)choice;
  1776. }
  1777.  
  1778.  
  1779. H245_IndicationMessage::operator const H245_RequestMultiplexEntryRelease &() const
  1780. #endif
  1781. {
  1782. #ifndef PASN_LEANANDMEAN
  1783.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMultiplexEntryRelease::Class()), PInvalidCast);
  1784. #endif
  1785.   return *(H245_RequestMultiplexEntryRelease *)choice;
  1786. }
  1787.  
  1788.  
  1789. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1790. H245_IndicationMessage::operator H245_RequestModeRelease &() const
  1791. #else
  1792. H245_IndicationMessage::operator H245_RequestModeRelease &()
  1793. {
  1794. #ifndef PASN_LEANANDMEAN
  1795.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestModeRelease::Class()), PInvalidCast);
  1796. #endif
  1797.   return *(H245_RequestModeRelease *)choice;
  1798. }
  1799.  
  1800.  
  1801. H245_IndicationMessage::operator const H245_RequestModeRelease &() const
  1802. #endif
  1803. {
  1804. #ifndef PASN_LEANANDMEAN
  1805.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestModeRelease::Class()), PInvalidCast);
  1806. #endif
  1807.   return *(H245_RequestModeRelease *)choice;
  1808. }
  1809.  
  1810.  
  1811. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1812. H245_IndicationMessage::operator H245_MiscellaneousIndication &() const
  1813. #else
  1814. H245_IndicationMessage::operator H245_MiscellaneousIndication &()
  1815. {
  1816. #ifndef PASN_LEANANDMEAN
  1817.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousIndication::Class()), PInvalidCast);
  1818. #endif
  1819.   return *(H245_MiscellaneousIndication *)choice;
  1820. }
  1821.  
  1822.  
  1823. H245_IndicationMessage::operator const H245_MiscellaneousIndication &() const
  1824. #endif
  1825. {
  1826. #ifndef PASN_LEANANDMEAN
  1827.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousIndication::Class()), PInvalidCast);
  1828. #endif
  1829.   return *(H245_MiscellaneousIndication *)choice;
  1830. }
  1831.  
  1832.  
  1833. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1834. H245_IndicationMessage::operator H245_JitterIndication &() const
  1835. #else
  1836. H245_IndicationMessage::operator H245_JitterIndication &()
  1837. {
  1838. #ifndef PASN_LEANANDMEAN
  1839.   PAssert(PAssertNULL(choice)->IsDescendant(H245_JitterIndication::Class()), PInvalidCast);
  1840. #endif
  1841.   return *(H245_JitterIndication *)choice;
  1842. }
  1843.  
  1844.  
  1845. H245_IndicationMessage::operator const H245_JitterIndication &() const
  1846. #endif
  1847. {
  1848. #ifndef PASN_LEANANDMEAN
  1849.   PAssert(PAssertNULL(choice)->IsDescendant(H245_JitterIndication::Class()), PInvalidCast);
  1850. #endif
  1851.   return *(H245_JitterIndication *)choice;
  1852. }
  1853.  
  1854.  
  1855. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1856. H245_IndicationMessage::operator H245_H223SkewIndication &() const
  1857. #else
  1858. H245_IndicationMessage::operator H245_H223SkewIndication &()
  1859. {
  1860. #ifndef PASN_LEANANDMEAN
  1861.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223SkewIndication::Class()), PInvalidCast);
  1862. #endif
  1863.   return *(H245_H223SkewIndication *)choice;
  1864. }
  1865.  
  1866.  
  1867. H245_IndicationMessage::operator const H245_H223SkewIndication &() const
  1868. #endif
  1869. {
  1870. #ifndef PASN_LEANANDMEAN
  1871.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223SkewIndication::Class()), PInvalidCast);
  1872. #endif
  1873.   return *(H245_H223SkewIndication *)choice;
  1874. }
  1875.  
  1876.  
  1877. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1878. H245_IndicationMessage::operator H245_NewATMVCIndication &() const
  1879. #else
  1880. H245_IndicationMessage::operator H245_NewATMVCIndication &()
  1881. {
  1882. #ifndef PASN_LEANANDMEAN
  1883.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCIndication::Class()), PInvalidCast);
  1884. #endif
  1885.   return *(H245_NewATMVCIndication *)choice;
  1886. }
  1887.  
  1888.  
  1889. H245_IndicationMessage::operator const H245_NewATMVCIndication &() const
  1890. #endif
  1891. {
  1892. #ifndef PASN_LEANANDMEAN
  1893.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCIndication::Class()), PInvalidCast);
  1894. #endif
  1895.   return *(H245_NewATMVCIndication *)choice;
  1896. }
  1897.  
  1898.  
  1899. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1900. H245_IndicationMessage::operator H245_UserInputIndication &() const
  1901. #else
  1902. H245_IndicationMessage::operator H245_UserInputIndication &()
  1903. {
  1904. #ifndef PASN_LEANANDMEAN
  1905.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication::Class()), PInvalidCast);
  1906. #endif
  1907.   return *(H245_UserInputIndication *)choice;
  1908. }
  1909.  
  1910.  
  1911. H245_IndicationMessage::operator const H245_UserInputIndication &() const
  1912. #endif
  1913. {
  1914. #ifndef PASN_LEANANDMEAN
  1915.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication::Class()), PInvalidCast);
  1916. #endif
  1917.   return *(H245_UserInputIndication *)choice;
  1918. }
  1919.  
  1920.  
  1921. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1922. H245_IndicationMessage::operator H245_H2250MaximumSkewIndication &() const
  1923. #else
  1924. H245_IndicationMessage::operator H245_H2250MaximumSkewIndication &()
  1925. {
  1926. #ifndef PASN_LEANANDMEAN
  1927.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250MaximumSkewIndication::Class()), PInvalidCast);
  1928. #endif
  1929.   return *(H245_H2250MaximumSkewIndication *)choice;
  1930. }
  1931.  
  1932.  
  1933. H245_IndicationMessage::operator const H245_H2250MaximumSkewIndication &() const
  1934. #endif
  1935. {
  1936. #ifndef PASN_LEANANDMEAN
  1937.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250MaximumSkewIndication::Class()), PInvalidCast);
  1938. #endif
  1939.   return *(H245_H2250MaximumSkewIndication *)choice;
  1940. }
  1941.  
  1942.  
  1943. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1944. H245_IndicationMessage::operator H245_MCLocationIndication &() const
  1945. #else
  1946. H245_IndicationMessage::operator H245_MCLocationIndication &()
  1947. {
  1948. #ifndef PASN_LEANANDMEAN
  1949.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MCLocationIndication::Class()), PInvalidCast);
  1950. #endif
  1951.   return *(H245_MCLocationIndication *)choice;
  1952. }
  1953.  
  1954.  
  1955. H245_IndicationMessage::operator const H245_MCLocationIndication &() const
  1956. #endif
  1957. {
  1958. #ifndef PASN_LEANANDMEAN
  1959.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MCLocationIndication::Class()), PInvalidCast);
  1960. #endif
  1961.   return *(H245_MCLocationIndication *)choice;
  1962. }
  1963.  
  1964.  
  1965. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1966. H245_IndicationMessage::operator H245_ConferenceIndication &() const
  1967. #else
  1968. H245_IndicationMessage::operator H245_ConferenceIndication &()
  1969. {
  1970. #ifndef PASN_LEANANDMEAN
  1971.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceIndication::Class()), PInvalidCast);
  1972. #endif
  1973.   return *(H245_ConferenceIndication *)choice;
  1974. }
  1975.  
  1976.  
  1977. H245_IndicationMessage::operator const H245_ConferenceIndication &() const
  1978. #endif
  1979. {
  1980. #ifndef PASN_LEANANDMEAN
  1981.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceIndication::Class()), PInvalidCast);
  1982. #endif
  1983.   return *(H245_ConferenceIndication *)choice;
  1984. }
  1985.  
  1986.  
  1987. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1988. H245_IndicationMessage::operator H245_VendorIdentification &() const
  1989. #else
  1990. H245_IndicationMessage::operator H245_VendorIdentification &()
  1991. {
  1992. #ifndef PASN_LEANANDMEAN
  1993.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VendorIdentification::Class()), PInvalidCast);
  1994. #endif
  1995.   return *(H245_VendorIdentification *)choice;
  1996. }
  1997.  
  1998.  
  1999. H245_IndicationMessage::operator const H245_VendorIdentification &() const
  2000. #endif
  2001. {
  2002. #ifndef PASN_LEANANDMEAN
  2003.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VendorIdentification::Class()), PInvalidCast);
  2004. #endif
  2005.   return *(H245_VendorIdentification *)choice;
  2006. }
  2007.  
  2008.  
  2009. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2010. H245_IndicationMessage::operator H245_FunctionNotSupported &() const
  2011. #else
  2012. H245_IndicationMessage::operator H245_FunctionNotSupported &()
  2013. {
  2014. #ifndef PASN_LEANANDMEAN
  2015.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FunctionNotSupported::Class()), PInvalidCast);
  2016. #endif
  2017.   return *(H245_FunctionNotSupported *)choice;
  2018. }
  2019.  
  2020.  
  2021. H245_IndicationMessage::operator const H245_FunctionNotSupported &() const
  2022. #endif
  2023. {
  2024. #ifndef PASN_LEANANDMEAN
  2025.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FunctionNotSupported::Class()), PInvalidCast);
  2026. #endif
  2027.   return *(H245_FunctionNotSupported *)choice;
  2028. }
  2029.  
  2030.  
  2031. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2032. H245_IndicationMessage::operator H245_MultilinkIndication &() const
  2033. #else
  2034. H245_IndicationMessage::operator H245_MultilinkIndication &()
  2035. {
  2036. #ifndef PASN_LEANANDMEAN
  2037.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkIndication::Class()), PInvalidCast);
  2038. #endif
  2039.   return *(H245_MultilinkIndication *)choice;
  2040. }
  2041.  
  2042.  
  2043. H245_IndicationMessage::operator const H245_MultilinkIndication &() const
  2044. #endif
  2045. {
  2046. #ifndef PASN_LEANANDMEAN
  2047.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkIndication::Class()), PInvalidCast);
  2048. #endif
  2049.   return *(H245_MultilinkIndication *)choice;
  2050. }
  2051.  
  2052.  
  2053. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2054. H245_IndicationMessage::operator H245_LogicalChannelRateRelease &() const
  2055. #else
  2056. H245_IndicationMessage::operator H245_LogicalChannelRateRelease &()
  2057. {
  2058. #ifndef PASN_LEANANDMEAN
  2059.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateRelease::Class()), PInvalidCast);
  2060. #endif
  2061.   return *(H245_LogicalChannelRateRelease *)choice;
  2062. }
  2063.  
  2064.  
  2065. H245_IndicationMessage::operator const H245_LogicalChannelRateRelease &() const
  2066. #endif
  2067. {
  2068. #ifndef PASN_LEANANDMEAN
  2069.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelRateRelease::Class()), PInvalidCast);
  2070. #endif
  2071.   return *(H245_LogicalChannelRateRelease *)choice;
  2072. }
  2073.  
  2074.  
  2075. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2076. H245_IndicationMessage::operator H245_FlowControlIndication &() const
  2077. #else
  2078. H245_IndicationMessage::operator H245_FlowControlIndication &()
  2079. {
  2080. #ifndef PASN_LEANANDMEAN
  2081.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FlowControlIndication::Class()), PInvalidCast);
  2082. #endif
  2083.   return *(H245_FlowControlIndication *)choice;
  2084. }
  2085.  
  2086.  
  2087. H245_IndicationMessage::operator const H245_FlowControlIndication &() const
  2088. #endif
  2089. {
  2090. #ifndef PASN_LEANANDMEAN
  2091.   PAssert(PAssertNULL(choice)->IsDescendant(H245_FlowControlIndication::Class()), PInvalidCast);
  2092. #endif
  2093.   return *(H245_FlowControlIndication *)choice;
  2094. }
  2095.  
  2096.  
  2097. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2098. H245_IndicationMessage::operator H245_MobileMultilinkReconfigurationIndication &() const
  2099. #else
  2100. H245_IndicationMessage::operator H245_MobileMultilinkReconfigurationIndication &()
  2101. {
  2102. #ifndef PASN_LEANANDMEAN
  2103.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MobileMultilinkReconfigurationIndication::Class()), PInvalidCast);
  2104. #endif
  2105.   return *(H245_MobileMultilinkReconfigurationIndication *)choice;
  2106. }
  2107.  
  2108.  
  2109. H245_IndicationMessage::operator const H245_MobileMultilinkReconfigurationIndication &() const
  2110. #endif
  2111. {
  2112. #ifndef PASN_LEANANDMEAN
  2113.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MobileMultilinkReconfigurationIndication::Class()), PInvalidCast);
  2114. #endif
  2115.   return *(H245_MobileMultilinkReconfigurationIndication *)choice;
  2116. }
  2117.  
  2118.  
  2119. BOOL H245_IndicationMessage::CreateObject()
  2120. {
  2121.   switch (tag) {
  2122.     case e_nonStandard :
  2123.       choice = new H245_NonStandardMessage();
  2124.       return TRUE;
  2125.     case e_functionNotUnderstood :
  2126.       choice = new H245_FunctionNotUnderstood();
  2127.       return TRUE;
  2128.     case e_masterSlaveDeterminationRelease :
  2129.       choice = new H245_MasterSlaveDeterminationRelease();
  2130.       return TRUE;
  2131.     case e_terminalCapabilitySetRelease :
  2132.       choice = new H245_TerminalCapabilitySetRelease();
  2133.       return TRUE;
  2134.     case e_openLogicalChannelConfirm :
  2135.       choice = new H245_OpenLogicalChannelConfirm();
  2136.       return TRUE;
  2137.     case e_requestChannelCloseRelease :
  2138.       choice = new H245_RequestChannelCloseRelease();
  2139.       return TRUE;
  2140.     case e_multiplexEntrySendRelease :
  2141.       choice = new H245_MultiplexEntrySendRelease();
  2142.       return TRUE;
  2143.     case e_requestMultiplexEntryRelease :
  2144.       choice = new H245_RequestMultiplexEntryRelease();
  2145.       return TRUE;
  2146.     case e_requestModeRelease :
  2147.       choice = new H245_RequestModeRelease();
  2148.       return TRUE;
  2149.     case e_miscellaneousIndication :
  2150.       choice = new H245_MiscellaneousIndication();
  2151.       return TRUE;
  2152.     case e_jitterIndication :
  2153.       choice = new H245_JitterIndication();
  2154.       return TRUE;
  2155.     case e_h223SkewIndication :
  2156.       choice = new H245_H223SkewIndication();
  2157.       return TRUE;
  2158.     case e_newATMVCIndication :
  2159.       choice = new H245_NewATMVCIndication();
  2160.       return TRUE;
  2161.     case e_userInput :
  2162.       choice = new H245_UserInputIndication();
  2163.       return TRUE;
  2164.     case e_h2250MaximumSkewIndication :
  2165.       choice = new H245_H2250MaximumSkewIndication();
  2166.       return TRUE;
  2167.     case e_mcLocationIndication :
  2168.       choice = new H245_MCLocationIndication();
  2169.       return TRUE;
  2170.     case e_conferenceIndication :
  2171.       choice = new H245_ConferenceIndication();
  2172.       return TRUE;
  2173.     case e_vendorIdentification :
  2174.       choice = new H245_VendorIdentification();
  2175.       return TRUE;
  2176.     case e_functionNotSupported :
  2177.       choice = new H245_FunctionNotSupported();
  2178.       return TRUE;
  2179.     case e_multilinkIndication :
  2180.       choice = new H245_MultilinkIndication();
  2181.       return TRUE;
  2182.     case e_logicalChannelRateRelease :
  2183.       choice = new H245_LogicalChannelRateRelease();
  2184.       return TRUE;
  2185.     case e_flowControlIndication :
  2186.       choice = new H245_FlowControlIndication();
  2187.       return TRUE;
  2188.     case e_mobileMultilinkReconfigurationIndication :
  2189.       choice = new H245_MobileMultilinkReconfigurationIndication();
  2190.       return TRUE;
  2191.   }
  2192.  
  2193.   choice = NULL;
  2194.   return FALSE;
  2195. }
  2196.  
  2197.  
  2198. PObject * H245_IndicationMessage::Clone() const
  2199. {
  2200. #ifndef PASN_LEANANDMEAN
  2201.   PAssert(IsClass(H245_IndicationMessage::Class()), PInvalidCast);
  2202. #endif
  2203.   return new H245_IndicationMessage(*this);
  2204. }
  2205.  
  2206.  
  2207. //
  2208. // SequenceNumber
  2209. //
  2210.  
  2211. H245_SequenceNumber::H245_SequenceNumber(unsigned tag, PASN_Object::TagClass tagClass)
  2212.   : PASN_Integer(tag, tagClass)
  2213. {
  2214.   SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  2215. }
  2216.  
  2217.  
  2218. H245_SequenceNumber & H245_SequenceNumber::operator=(int v)
  2219. {
  2220.   SetValue(v);
  2221.   return *this;
  2222. }
  2223.  
  2224.  
  2225. H245_SequenceNumber & H245_SequenceNumber::operator=(unsigned v)
  2226. {
  2227.   SetValue(v);
  2228.   return *this;
  2229. }
  2230.  
  2231.  
  2232. PObject * H245_SequenceNumber::Clone() const
  2233. {
  2234. #ifndef PASN_LEANANDMEAN
  2235.   PAssert(IsClass(H245_SequenceNumber::Class()), PInvalidCast);
  2236. #endif
  2237.   return new H245_SequenceNumber(*this);
  2238. }
  2239.  
  2240.  
  2241. //
  2242. // NonStandardIdentifier
  2243. //
  2244.  
  2245. H245_NonStandardIdentifier::H245_NonStandardIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  2246.   : PASN_Choice(tag, tagClass, 2, FALSE
  2247. #ifndef PASN_NOPRINTON
  2248.       , "object "
  2249.         "h221NonStandard "
  2250. #endif
  2251.     )
  2252. {
  2253. }
  2254.  
  2255.  
  2256. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2257. H245_NonStandardIdentifier::operator H245_NonStandardIdentifier_h221NonStandard &() const
  2258. #else
  2259. H245_NonStandardIdentifier::operator H245_NonStandardIdentifier_h221NonStandard &()
  2260. {
  2261. #ifndef PASN_LEANANDMEAN
  2262.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardIdentifier_h221NonStandard::Class()), PInvalidCast);
  2263. #endif
  2264.   return *(H245_NonStandardIdentifier_h221NonStandard *)choice;
  2265. }
  2266.  
  2267.  
  2268. H245_NonStandardIdentifier::operator const H245_NonStandardIdentifier_h221NonStandard &() const
  2269. #endif
  2270. {
  2271. #ifndef PASN_LEANANDMEAN
  2272.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardIdentifier_h221NonStandard::Class()), PInvalidCast);
  2273. #endif
  2274.   return *(H245_NonStandardIdentifier_h221NonStandard *)choice;
  2275. }
  2276.  
  2277.  
  2278. BOOL H245_NonStandardIdentifier::CreateObject()
  2279. {
  2280.   switch (tag) {
  2281.     case e_object :
  2282.       choice = new PASN_ObjectId();
  2283.       return TRUE;
  2284.     case e_h221NonStandard :
  2285.       choice = new H245_NonStandardIdentifier_h221NonStandard();
  2286.       return TRUE;
  2287.   }
  2288.  
  2289.   choice = NULL;
  2290.   return FALSE;
  2291. }
  2292.  
  2293.  
  2294. PObject * H245_NonStandardIdentifier::Clone() const
  2295. {
  2296. #ifndef PASN_LEANANDMEAN
  2297.   PAssert(IsClass(H245_NonStandardIdentifier::Class()), PInvalidCast);
  2298. #endif
  2299.   return new H245_NonStandardIdentifier(*this);
  2300. }
  2301.  
  2302.  
  2303. //
  2304. // MasterSlaveDetermination
  2305. //
  2306.  
  2307. H245_MasterSlaveDetermination::H245_MasterSlaveDetermination(unsigned tag, PASN_Object::TagClass tagClass)
  2308.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2309. {
  2310.   m_terminalType.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  2311.   m_statusDeterminationNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 16777215);
  2312. }
  2313.  
  2314.  
  2315. #ifndef PASN_NOPRINTON
  2316. void H245_MasterSlaveDetermination::PrintOn(ostream & strm) const
  2317. {
  2318.   int indent = strm.precision() + 2;
  2319.   strm << "{\n";
  2320.   strm << setw(indent+15) << "terminalType = " << setprecision(indent) << m_terminalType << '\n';
  2321.   strm << setw(indent+28) << "statusDeterminationNumber = " << setprecision(indent) << m_statusDeterminationNumber << '\n';
  2322.   strm << setw(indent-1) << "}";
  2323. }
  2324. #endif
  2325.  
  2326.  
  2327. PObject::Comparison H245_MasterSlaveDetermination::Compare(const PObject & obj) const
  2328. {
  2329. #ifndef PASN_LEANANDMEAN
  2330.   PAssert(IsDescendant(H245_MasterSlaveDetermination::Class()), PInvalidCast);
  2331. #endif
  2332.   const H245_MasterSlaveDetermination & other = (const H245_MasterSlaveDetermination &)obj;
  2333.  
  2334.   Comparison result;
  2335.  
  2336.   if ((result = m_terminalType.Compare(other.m_terminalType)) != EqualTo)
  2337.     return result;
  2338.   if ((result = m_statusDeterminationNumber.Compare(other.m_statusDeterminationNumber)) != EqualTo)
  2339.     return result;
  2340.  
  2341.   return PASN_Sequence::Compare(other);
  2342. }
  2343.  
  2344.  
  2345. PINDEX H245_MasterSlaveDetermination::GetDataLength() const
  2346. {
  2347.   PINDEX length = 0;
  2348.   length += m_terminalType.GetObjectLength();
  2349.   length += m_statusDeterminationNumber.GetObjectLength();
  2350.   return length;
  2351. }
  2352.  
  2353.  
  2354. BOOL H245_MasterSlaveDetermination::Decode(PASN_Stream & strm)
  2355. {
  2356.   if (!PreambleDecode(strm))
  2357.     return FALSE;
  2358.  
  2359.   if (!m_terminalType.Decode(strm))
  2360.     return FALSE;
  2361.   if (!m_statusDeterminationNumber.Decode(strm))
  2362.     return FALSE;
  2363.  
  2364.   return UnknownExtensionsDecode(strm);
  2365. }
  2366.  
  2367.  
  2368. void H245_MasterSlaveDetermination::Encode(PASN_Stream & strm) const
  2369. {
  2370.   PreambleEncode(strm);
  2371.  
  2372.   m_terminalType.Encode(strm);
  2373.   m_statusDeterminationNumber.Encode(strm);
  2374.  
  2375.   UnknownExtensionsEncode(strm);
  2376. }
  2377.  
  2378.  
  2379. PObject * H245_MasterSlaveDetermination::Clone() const
  2380. {
  2381. #ifndef PASN_LEANANDMEAN
  2382.   PAssert(IsClass(H245_MasterSlaveDetermination::Class()), PInvalidCast);
  2383. #endif
  2384.   return new H245_MasterSlaveDetermination(*this);
  2385. }
  2386.  
  2387.  
  2388. //
  2389. // MasterSlaveDeterminationRelease
  2390. //
  2391.  
  2392. H245_MasterSlaveDeterminationRelease::H245_MasterSlaveDeterminationRelease(unsigned tag, PASN_Object::TagClass tagClass)
  2393.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2394. {
  2395. }
  2396.  
  2397.  
  2398. #ifndef PASN_NOPRINTON
  2399. void H245_MasterSlaveDeterminationRelease::PrintOn(ostream & strm) const
  2400. {
  2401.   int indent = strm.precision() + 2;
  2402.   strm << "{\n";
  2403.   strm << setw(indent-1) << "}";
  2404. }
  2405. #endif
  2406.  
  2407.  
  2408. PINDEX H245_MasterSlaveDeterminationRelease::GetDataLength() const
  2409. {
  2410.   PINDEX length = 0;
  2411.   return length;
  2412. }
  2413.  
  2414.  
  2415. BOOL H245_MasterSlaveDeterminationRelease::Decode(PASN_Stream & strm)
  2416. {
  2417.   if (!PreambleDecode(strm))
  2418.     return FALSE;
  2419.  
  2420.  
  2421.   return UnknownExtensionsDecode(strm);
  2422. }
  2423.  
  2424.  
  2425. void H245_MasterSlaveDeterminationRelease::Encode(PASN_Stream & strm) const
  2426. {
  2427.   PreambleEncode(strm);
  2428.  
  2429.  
  2430.   UnknownExtensionsEncode(strm);
  2431. }
  2432.  
  2433.  
  2434. PObject * H245_MasterSlaveDeterminationRelease::Clone() const
  2435. {
  2436. #ifndef PASN_LEANANDMEAN
  2437.   PAssert(IsClass(H245_MasterSlaveDeterminationRelease::Class()), PInvalidCast);
  2438. #endif
  2439.   return new H245_MasterSlaveDeterminationRelease(*this);
  2440. }
  2441.  
  2442.  
  2443. //
  2444. // AlternativeCapabilitySet
  2445. //
  2446.  
  2447. H245_AlternativeCapabilitySet::H245_AlternativeCapabilitySet(unsigned tag, PASN_Object::TagClass tagClass)
  2448.   : PASN_Array(tag, tagClass)
  2449. {
  2450.   SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  2451. }
  2452.  
  2453.  
  2454. PASN_Object * H245_AlternativeCapabilitySet::CreateObject() const
  2455. {
  2456.   return new H245_CapabilityTableEntryNumber;
  2457. }
  2458.  
  2459.  
  2460. H245_CapabilityTableEntryNumber & H245_AlternativeCapabilitySet::operator[](PINDEX i) const
  2461. {
  2462.   return (H245_CapabilityTableEntryNumber &)array[i];
  2463. }
  2464.  
  2465.  
  2466. PObject * H245_AlternativeCapabilitySet::Clone() const
  2467. {
  2468. #ifndef PASN_LEANANDMEAN
  2469.   PAssert(IsClass(H245_AlternativeCapabilitySet::Class()), PInvalidCast);
  2470. #endif
  2471.   return new H245_AlternativeCapabilitySet(*this);
  2472. }
  2473.  
  2474.  
  2475. //
  2476. // CapabilityTableEntryNumber
  2477. //
  2478.  
  2479. H245_CapabilityTableEntryNumber::H245_CapabilityTableEntryNumber(unsigned tag, PASN_Object::TagClass tagClass)
  2480.   : PASN_Integer(tag, tagClass)
  2481. {
  2482.   SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  2483. }
  2484.  
  2485.  
  2486. H245_CapabilityTableEntryNumber & H245_CapabilityTableEntryNumber::operator=(int v)
  2487. {
  2488.   SetValue(v);
  2489.   return *this;
  2490. }
  2491.  
  2492.  
  2493. H245_CapabilityTableEntryNumber & H245_CapabilityTableEntryNumber::operator=(unsigned v)
  2494. {
  2495.   SetValue(v);
  2496.   return *this;
  2497. }
  2498.  
  2499.  
  2500. PObject * H245_CapabilityTableEntryNumber::Clone() const
  2501. {
  2502. #ifndef PASN_LEANANDMEAN
  2503.   PAssert(IsClass(H245_CapabilityTableEntryNumber::Class()), PInvalidCast);
  2504. #endif
  2505.   return new H245_CapabilityTableEntryNumber(*this);
  2506. }
  2507.  
  2508.  
  2509. //
  2510. // CapabilityDescriptorNumber
  2511. //
  2512.  
  2513. H245_CapabilityDescriptorNumber::H245_CapabilityDescriptorNumber(unsigned tag, PASN_Object::TagClass tagClass)
  2514.   : PASN_Integer(tag, tagClass)
  2515. {
  2516.   SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  2517. }
  2518.  
  2519.  
  2520. H245_CapabilityDescriptorNumber & H245_CapabilityDescriptorNumber::operator=(int v)
  2521. {
  2522.   SetValue(v);
  2523.   return *this;
  2524. }
  2525.  
  2526.  
  2527. H245_CapabilityDescriptorNumber & H245_CapabilityDescriptorNumber::operator=(unsigned v)
  2528. {
  2529.   SetValue(v);
  2530.   return *this;
  2531. }
  2532.  
  2533.  
  2534. PObject * H245_CapabilityDescriptorNumber::Clone() const
  2535. {
  2536. #ifndef PASN_LEANANDMEAN
  2537.   PAssert(IsClass(H245_CapabilityDescriptorNumber::Class()), PInvalidCast);
  2538. #endif
  2539.   return new H245_CapabilityDescriptorNumber(*this);
  2540. }
  2541.  
  2542.  
  2543. //
  2544. // TerminalCapabilitySetAck
  2545. //
  2546.  
  2547. H245_TerminalCapabilitySetAck::H245_TerminalCapabilitySetAck(unsigned tag, PASN_Object::TagClass tagClass)
  2548.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2549. {
  2550. }
  2551.  
  2552.  
  2553. #ifndef PASN_NOPRINTON
  2554. void H245_TerminalCapabilitySetAck::PrintOn(ostream & strm) const
  2555. {
  2556.   int indent = strm.precision() + 2;
  2557.   strm << "{\n";
  2558.   strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
  2559.   strm << setw(indent-1) << "}";
  2560. }
  2561. #endif
  2562.  
  2563.  
  2564. PObject::Comparison H245_TerminalCapabilitySetAck::Compare(const PObject & obj) const
  2565. {
  2566. #ifndef PASN_LEANANDMEAN
  2567.   PAssert(IsDescendant(H245_TerminalCapabilitySetAck::Class()), PInvalidCast);
  2568. #endif
  2569.   const H245_TerminalCapabilitySetAck & other = (const H245_TerminalCapabilitySetAck &)obj;
  2570.  
  2571.   Comparison result;
  2572.  
  2573.   if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
  2574.     return result;
  2575.  
  2576.   return PASN_Sequence::Compare(other);
  2577. }
  2578.  
  2579.  
  2580. PINDEX H245_TerminalCapabilitySetAck::GetDataLength() const
  2581. {
  2582.   PINDEX length = 0;
  2583.   length += m_sequenceNumber.GetObjectLength();
  2584.   return length;
  2585. }
  2586.  
  2587.  
  2588. BOOL H245_TerminalCapabilitySetAck::Decode(PASN_Stream & strm)
  2589. {
  2590.   if (!PreambleDecode(strm))
  2591.     return FALSE;
  2592.  
  2593.   if (!m_sequenceNumber.Decode(strm))
  2594.     return FALSE;
  2595.  
  2596.   return UnknownExtensionsDecode(strm);
  2597. }
  2598.  
  2599.  
  2600. void H245_TerminalCapabilitySetAck::Encode(PASN_Stream & strm) const
  2601. {
  2602.   PreambleEncode(strm);
  2603.  
  2604.   m_sequenceNumber.Encode(strm);
  2605.  
  2606.   UnknownExtensionsEncode(strm);
  2607. }
  2608.  
  2609.  
  2610. PObject * H245_TerminalCapabilitySetAck::Clone() const
  2611. {
  2612. #ifndef PASN_LEANANDMEAN
  2613.   PAssert(IsClass(H245_TerminalCapabilitySetAck::Class()), PInvalidCast);
  2614. #endif
  2615.   return new H245_TerminalCapabilitySetAck(*this);
  2616. }
  2617.  
  2618.  
  2619. //
  2620. // TerminalCapabilitySetRelease
  2621. //
  2622.  
  2623. H245_TerminalCapabilitySetRelease::H245_TerminalCapabilitySetRelease(unsigned tag, PASN_Object::TagClass tagClass)
  2624.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2625. {
  2626. }
  2627.  
  2628.  
  2629. #ifndef PASN_NOPRINTON
  2630. void H245_TerminalCapabilitySetRelease::PrintOn(ostream & strm) const
  2631. {
  2632.   int indent = strm.precision() + 2;
  2633.   strm << "{\n";
  2634.   strm << setw(indent-1) << "}";
  2635. }
  2636. #endif
  2637.  
  2638.  
  2639. PINDEX H245_TerminalCapabilitySetRelease::GetDataLength() const
  2640. {
  2641.   PINDEX length = 0;
  2642.   return length;
  2643. }
  2644.  
  2645.  
  2646. BOOL H245_TerminalCapabilitySetRelease::Decode(PASN_Stream & strm)
  2647. {
  2648.   if (!PreambleDecode(strm))
  2649.     return FALSE;
  2650.  
  2651.  
  2652.   return UnknownExtensionsDecode(strm);
  2653. }
  2654.  
  2655.  
  2656. void H245_TerminalCapabilitySetRelease::Encode(PASN_Stream & strm) const
  2657. {
  2658.   PreambleEncode(strm);
  2659.  
  2660.  
  2661.   UnknownExtensionsEncode(strm);
  2662. }
  2663.  
  2664.  
  2665. PObject * H245_TerminalCapabilitySetRelease::Clone() const
  2666. {
  2667. #ifndef PASN_LEANANDMEAN
  2668.   PAssert(IsClass(H245_TerminalCapabilitySetRelease::Class()), PInvalidCast);
  2669. #endif
  2670.   return new H245_TerminalCapabilitySetRelease(*this);
  2671. }
  2672.  
  2673.  
  2674. //
  2675. // Capability
  2676. //
  2677.  
  2678. H245_Capability::H245_Capability(unsigned tag, PASN_Object::TagClass tagClass)
  2679.   : PASN_Choice(tag, tagClass, 12, TRUE
  2680. #ifndef PASN_NOPRINTON
  2681.       , "nonStandard "
  2682.         "receiveVideoCapability "
  2683.         "transmitVideoCapability "
  2684.         "receiveAndTransmitVideoCapability "
  2685.         "receiveAudioCapability "
  2686.         "transmitAudioCapability "
  2687.         "receiveAndTransmitAudioCapability "
  2688.         "receiveDataApplicationCapability "
  2689.         "transmitDataApplicationCapability "
  2690.         "receiveAndTransmitDataApplicationCapability "
  2691.         "h233EncryptionTransmitCapability "
  2692.         "h233EncryptionReceiveCapability "
  2693.         "conferenceCapability "
  2694.         "h235SecurityCapability "
  2695.         "maxPendingReplacementFor "
  2696.         "receiveUserInputCapability "
  2697.         "transmitUserInputCapability "
  2698.         "receiveAndTransmitUserInputCapability "
  2699.         "genericControlCapability "
  2700.         "receiveMultiplexedStreamCapability "
  2701.         "transmitMultiplexedStreamCapability "
  2702.         "receiveAndTransmitMultiplexedStreamCapability "
  2703.         "receiveRTPAudioTelephonyEventCapability "
  2704.         "receiveRTPAudioToneCapability "
  2705. #endif
  2706.     )
  2707. {
  2708. }
  2709.  
  2710.  
  2711. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2712. H245_Capability::operator H245_NonStandardParameter &() const
  2713. #else
  2714. H245_Capability::operator H245_NonStandardParameter &()
  2715. {
  2716. #ifndef PASN_LEANANDMEAN
  2717.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  2718. #endif
  2719.   return *(H245_NonStandardParameter *)choice;
  2720. }
  2721.  
  2722.  
  2723. H245_Capability::operator const H245_NonStandardParameter &() const
  2724. #endif
  2725. {
  2726. #ifndef PASN_LEANANDMEAN
  2727.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  2728. #endif
  2729.   return *(H245_NonStandardParameter *)choice;
  2730. }
  2731.  
  2732.  
  2733. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2734. H245_Capability::operator H245_VideoCapability &() const
  2735. #else
  2736. H245_Capability::operator H245_VideoCapability &()
  2737. {
  2738. #ifndef PASN_LEANANDMEAN
  2739.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  2740. #endif
  2741.   return *(H245_VideoCapability *)choice;
  2742. }
  2743.  
  2744.  
  2745. H245_Capability::operator const H245_VideoCapability &() const
  2746. #endif
  2747. {
  2748. #ifndef PASN_LEANANDMEAN
  2749.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  2750. #endif
  2751.   return *(H245_VideoCapability *)choice;
  2752. }
  2753.  
  2754.  
  2755. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2756. H245_Capability::operator H245_AudioCapability &() const
  2757. #else
  2758. H245_Capability::operator H245_AudioCapability &()
  2759. {
  2760. #ifndef PASN_LEANANDMEAN
  2761.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  2762. #endif
  2763.   return *(H245_AudioCapability *)choice;
  2764. }
  2765.  
  2766.  
  2767. H245_Capability::operator const H245_AudioCapability &() const
  2768. #endif
  2769. {
  2770. #ifndef PASN_LEANANDMEAN
  2771.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  2772. #endif
  2773.   return *(H245_AudioCapability *)choice;
  2774. }
  2775.  
  2776.  
  2777. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2778. H245_Capability::operator H245_DataApplicationCapability &() const
  2779. #else
  2780. H245_Capability::operator H245_DataApplicationCapability &()
  2781. {
  2782. #ifndef PASN_LEANANDMEAN
  2783.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  2784. #endif
  2785.   return *(H245_DataApplicationCapability *)choice;
  2786. }
  2787.  
  2788.  
  2789. H245_Capability::operator const H245_DataApplicationCapability &() const
  2790. #endif
  2791. {
  2792. #ifndef PASN_LEANANDMEAN
  2793.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  2794. #endif
  2795.   return *(H245_DataApplicationCapability *)choice;
  2796. }
  2797.  
  2798.  
  2799. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2800. H245_Capability::operator H245_Capability_h233EncryptionReceiveCapability &() const
  2801. #else
  2802. H245_Capability::operator H245_Capability_h233EncryptionReceiveCapability &()
  2803. {
  2804. #ifndef PASN_LEANANDMEAN
  2805.   PAssert(PAssertNULL(choice)->IsDescendant(H245_Capability_h233EncryptionReceiveCapability::Class()), PInvalidCast);
  2806. #endif
  2807.   return *(H245_Capability_h233EncryptionReceiveCapability *)choice;
  2808. }
  2809.  
  2810.  
  2811. H245_Capability::operator const H245_Capability_h233EncryptionReceiveCapability &() const
  2812. #endif
  2813. {
  2814. #ifndef PASN_LEANANDMEAN
  2815.   PAssert(PAssertNULL(choice)->IsDescendant(H245_Capability_h233EncryptionReceiveCapability::Class()), PInvalidCast);
  2816. #endif
  2817.   return *(H245_Capability_h233EncryptionReceiveCapability *)choice;
  2818. }
  2819.  
  2820.  
  2821. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2822. H245_Capability::operator H245_ConferenceCapability &() const
  2823. #else
  2824. H245_Capability::operator H245_ConferenceCapability &()
  2825. {
  2826. #ifndef PASN_LEANANDMEAN
  2827.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceCapability::Class()), PInvalidCast);
  2828. #endif
  2829.   return *(H245_ConferenceCapability *)choice;
  2830. }
  2831.  
  2832.  
  2833. H245_Capability::operator const H245_ConferenceCapability &() const
  2834. #endif
  2835. {
  2836. #ifndef PASN_LEANANDMEAN
  2837.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceCapability::Class()), PInvalidCast);
  2838. #endif
  2839.   return *(H245_ConferenceCapability *)choice;
  2840. }
  2841.  
  2842.  
  2843. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2844. H245_Capability::operator H245_H235SecurityCapability &() const
  2845. #else
  2846. H245_Capability::operator H245_H235SecurityCapability &()
  2847. {
  2848. #ifndef PASN_LEANANDMEAN
  2849.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H235SecurityCapability::Class()), PInvalidCast);
  2850. #endif
  2851.   return *(H245_H235SecurityCapability *)choice;
  2852. }
  2853.  
  2854.  
  2855. H245_Capability::operator const H245_H235SecurityCapability &() const
  2856. #endif
  2857. {
  2858. #ifndef PASN_LEANANDMEAN
  2859.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H235SecurityCapability::Class()), PInvalidCast);
  2860. #endif
  2861.   return *(H245_H235SecurityCapability *)choice;
  2862. }
  2863.  
  2864.  
  2865. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2866. H245_Capability::operator H245_UserInputCapability &() const
  2867. #else
  2868. H245_Capability::operator H245_UserInputCapability &()
  2869. {
  2870. #ifndef PASN_LEANANDMEAN
  2871.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputCapability::Class()), PInvalidCast);
  2872. #endif
  2873.   return *(H245_UserInputCapability *)choice;
  2874. }
  2875.  
  2876.  
  2877. H245_Capability::operator const H245_UserInputCapability &() const
  2878. #endif
  2879. {
  2880. #ifndef PASN_LEANANDMEAN
  2881.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputCapability::Class()), PInvalidCast);
  2882. #endif
  2883.   return *(H245_UserInputCapability *)choice;
  2884. }
  2885.  
  2886.  
  2887. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2888. H245_Capability::operator H245_GenericCapability &() const
  2889. #else
  2890. H245_Capability::operator H245_GenericCapability &()
  2891. {
  2892. #ifndef PASN_LEANANDMEAN
  2893.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  2894. #endif
  2895.   return *(H245_GenericCapability *)choice;
  2896. }
  2897.  
  2898.  
  2899. H245_Capability::operator const H245_GenericCapability &() const
  2900. #endif
  2901. {
  2902. #ifndef PASN_LEANANDMEAN
  2903.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  2904. #endif
  2905.   return *(H245_GenericCapability *)choice;
  2906. }
  2907.  
  2908.  
  2909. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2910. H245_Capability::operator H245_MultiplexedStreamCapability &() const
  2911. #else
  2912. H245_Capability::operator H245_MultiplexedStreamCapability &()
  2913. {
  2914. #ifndef PASN_LEANANDMEAN
  2915.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexedStreamCapability::Class()), PInvalidCast);
  2916. #endif
  2917.   return *(H245_MultiplexedStreamCapability *)choice;
  2918. }
  2919.  
  2920.  
  2921. H245_Capability::operator const H245_MultiplexedStreamCapability &() const
  2922. #endif
  2923. {
  2924. #ifndef PASN_LEANANDMEAN
  2925.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexedStreamCapability::Class()), PInvalidCast);
  2926. #endif
  2927.   return *(H245_MultiplexedStreamCapability *)choice;
  2928. }
  2929.  
  2930.  
  2931. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2932. H245_Capability::operator H245_AudioTelephonyEventCapability &() const
  2933. #else
  2934. H245_Capability::operator H245_AudioTelephonyEventCapability &()
  2935. {
  2936. #ifndef PASN_LEANANDMEAN
  2937.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioTelephonyEventCapability::Class()), PInvalidCast);
  2938. #endif
  2939.   return *(H245_AudioTelephonyEventCapability *)choice;
  2940. }
  2941.  
  2942.  
  2943. H245_Capability::operator const H245_AudioTelephonyEventCapability &() const
  2944. #endif
  2945. {
  2946. #ifndef PASN_LEANANDMEAN
  2947.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioTelephonyEventCapability::Class()), PInvalidCast);
  2948. #endif
  2949.   return *(H245_AudioTelephonyEventCapability *)choice;
  2950. }
  2951.  
  2952.  
  2953. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2954. H245_Capability::operator H245_AudioToneCapability &() const
  2955. #else
  2956. H245_Capability::operator H245_AudioToneCapability &()
  2957. {
  2958. #ifndef PASN_LEANANDMEAN
  2959.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioToneCapability::Class()), PInvalidCast);
  2960. #endif
  2961.   return *(H245_AudioToneCapability *)choice;
  2962. }
  2963.  
  2964.  
  2965. H245_Capability::operator const H245_AudioToneCapability &() const
  2966. #endif
  2967. {
  2968. #ifndef PASN_LEANANDMEAN
  2969.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioToneCapability::Class()), PInvalidCast);
  2970. #endif
  2971.   return *(H245_AudioToneCapability *)choice;
  2972. }
  2973.  
  2974.  
  2975. BOOL H245_Capability::CreateObject()
  2976. {
  2977.   switch (tag) {
  2978.     case e_nonStandard :
  2979.       choice = new H245_NonStandardParameter();
  2980.       return TRUE;
  2981.     case e_receiveVideoCapability :
  2982.     case e_transmitVideoCapability :
  2983.     case e_receiveAndTransmitVideoCapability :
  2984.       choice = new H245_VideoCapability();
  2985.       return TRUE;
  2986.     case e_receiveAudioCapability :
  2987.     case e_transmitAudioCapability :
  2988.     case e_receiveAndTransmitAudioCapability :
  2989.       choice = new H245_AudioCapability();
  2990.       return TRUE;
  2991.     case e_receiveDataApplicationCapability :
  2992.     case e_transmitDataApplicationCapability :
  2993.     case e_receiveAndTransmitDataApplicationCapability :
  2994.       choice = new H245_DataApplicationCapability();
  2995.       return TRUE;
  2996.     case e_h233EncryptionTransmitCapability :
  2997.       choice = new PASN_Boolean();
  2998.       return TRUE;
  2999.     case e_h233EncryptionReceiveCapability :
  3000.       choice = new H245_Capability_h233EncryptionReceiveCapability();
  3001.       return TRUE;
  3002.     case e_conferenceCapability :
  3003.       choice = new H245_ConferenceCapability();
  3004.       return TRUE;
  3005.     case e_h235SecurityCapability :
  3006.       choice = new H245_H235SecurityCapability();
  3007.       return TRUE;
  3008.     case e_maxPendingReplacementFor :
  3009.       choice = new PASN_Integer();
  3010.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  3011.       return TRUE;
  3012.     case e_receiveUserInputCapability :
  3013.     case e_transmitUserInputCapability :
  3014.     case e_receiveAndTransmitUserInputCapability :
  3015.       choice = new H245_UserInputCapability();
  3016.       return TRUE;
  3017.     case e_genericControlCapability :
  3018.       choice = new H245_GenericCapability();
  3019.       return TRUE;
  3020.     case e_receiveMultiplexedStreamCapability :
  3021.     case e_transmitMultiplexedStreamCapability :
  3022.     case e_receiveAndTransmitMultiplexedStreamCapability :
  3023.       choice = new H245_MultiplexedStreamCapability();
  3024.       return TRUE;
  3025.     case e_receiveRTPAudioTelephonyEventCapability :
  3026.       choice = new H245_AudioTelephonyEventCapability();
  3027.       return TRUE;
  3028.     case e_receiveRTPAudioToneCapability :
  3029.       choice = new H245_AudioToneCapability();
  3030.       return TRUE;
  3031.   }
  3032.  
  3033.   choice = NULL;
  3034.   return FALSE;
  3035. }
  3036.  
  3037.  
  3038. PObject * H245_Capability::Clone() const
  3039. {
  3040. #ifndef PASN_LEANANDMEAN
  3041.   PAssert(IsClass(H245_Capability::Class()), PInvalidCast);
  3042. #endif
  3043.   return new H245_Capability(*this);
  3044. }
  3045.  
  3046.  
  3047. //
  3048. // MultiplexCapability
  3049. //
  3050.  
  3051. H245_MultiplexCapability::H245_MultiplexCapability(unsigned tag, PASN_Object::TagClass tagClass)
  3052.   : PASN_Choice(tag, tagClass, 4, TRUE
  3053. #ifndef PASN_NOPRINTON
  3054.       , "nonStandard "
  3055.         "h222Capability "
  3056.         "h223Capability "
  3057.         "v76Capability "
  3058.         "h2250Capability "
  3059.         "genericMultiplexCapability "
  3060. #endif
  3061.     )
  3062. {
  3063. }
  3064.  
  3065.  
  3066. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3067. H245_MultiplexCapability::operator H245_NonStandardParameter &() const
  3068. #else
  3069. H245_MultiplexCapability::operator H245_NonStandardParameter &()
  3070. {
  3071. #ifndef PASN_LEANANDMEAN
  3072.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3073. #endif
  3074.   return *(H245_NonStandardParameter *)choice;
  3075. }
  3076.  
  3077.  
  3078. H245_MultiplexCapability::operator const H245_NonStandardParameter &() const
  3079. #endif
  3080. {
  3081. #ifndef PASN_LEANANDMEAN
  3082.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3083. #endif
  3084.   return *(H245_NonStandardParameter *)choice;
  3085. }
  3086.  
  3087.  
  3088. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3089. H245_MultiplexCapability::operator H245_H222Capability &() const
  3090. #else
  3091. H245_MultiplexCapability::operator H245_H222Capability &()
  3092. {
  3093. #ifndef PASN_LEANANDMEAN
  3094.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222Capability::Class()), PInvalidCast);
  3095. #endif
  3096.   return *(H245_H222Capability *)choice;
  3097. }
  3098.  
  3099.  
  3100. H245_MultiplexCapability::operator const H245_H222Capability &() const
  3101. #endif
  3102. {
  3103. #ifndef PASN_LEANANDMEAN
  3104.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222Capability::Class()), PInvalidCast);
  3105. #endif
  3106.   return *(H245_H222Capability *)choice;
  3107. }
  3108.  
  3109.  
  3110. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3111. H245_MultiplexCapability::operator H245_H223Capability &() const
  3112. #else
  3113. H245_MultiplexCapability::operator H245_H223Capability &()
  3114. {
  3115. #ifndef PASN_LEANANDMEAN
  3116.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223Capability::Class()), PInvalidCast);
  3117. #endif
  3118.   return *(H245_H223Capability *)choice;
  3119. }
  3120.  
  3121.  
  3122. H245_MultiplexCapability::operator const H245_H223Capability &() const
  3123. #endif
  3124. {
  3125. #ifndef PASN_LEANANDMEAN
  3126.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223Capability::Class()), PInvalidCast);
  3127. #endif
  3128.   return *(H245_H223Capability *)choice;
  3129. }
  3130.  
  3131.  
  3132. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3133. H245_MultiplexCapability::operator H245_V76Capability &() const
  3134. #else
  3135. H245_MultiplexCapability::operator H245_V76Capability &()
  3136. {
  3137. #ifndef PASN_LEANANDMEAN
  3138.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76Capability::Class()), PInvalidCast);
  3139. #endif
  3140.   return *(H245_V76Capability *)choice;
  3141. }
  3142.  
  3143.  
  3144. H245_MultiplexCapability::operator const H245_V76Capability &() const
  3145. #endif
  3146. {
  3147. #ifndef PASN_LEANANDMEAN
  3148.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76Capability::Class()), PInvalidCast);
  3149. #endif
  3150.   return *(H245_V76Capability *)choice;
  3151. }
  3152.  
  3153.  
  3154. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3155. H245_MultiplexCapability::operator H245_H2250Capability &() const
  3156. #else
  3157. H245_MultiplexCapability::operator H245_H2250Capability &()
  3158. {
  3159. #ifndef PASN_LEANANDMEAN
  3160.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250Capability::Class()), PInvalidCast);
  3161. #endif
  3162.   return *(H245_H2250Capability *)choice;
  3163. }
  3164.  
  3165.  
  3166. H245_MultiplexCapability::operator const H245_H2250Capability &() const
  3167. #endif
  3168. {
  3169. #ifndef PASN_LEANANDMEAN
  3170.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250Capability::Class()), PInvalidCast);
  3171. #endif
  3172.   return *(H245_H2250Capability *)choice;
  3173. }
  3174.  
  3175.  
  3176. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3177. H245_MultiplexCapability::operator H245_GenericCapability &() const
  3178. #else
  3179. H245_MultiplexCapability::operator H245_GenericCapability &()
  3180. {
  3181. #ifndef PASN_LEANANDMEAN
  3182.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  3183. #endif
  3184.   return *(H245_GenericCapability *)choice;
  3185. }
  3186.  
  3187.  
  3188. H245_MultiplexCapability::operator const H245_GenericCapability &() const
  3189. #endif
  3190. {
  3191. #ifndef PASN_LEANANDMEAN
  3192.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  3193. #endif
  3194.   return *(H245_GenericCapability *)choice;
  3195. }
  3196.  
  3197.  
  3198. BOOL H245_MultiplexCapability::CreateObject()
  3199. {
  3200.   switch (tag) {
  3201.     case e_nonStandard :
  3202.       choice = new H245_NonStandardParameter();
  3203.       return TRUE;
  3204.     case e_h222Capability :
  3205.       choice = new H245_H222Capability();
  3206.       return TRUE;
  3207.     case e_h223Capability :
  3208.       choice = new H245_H223Capability();
  3209.       return TRUE;
  3210.     case e_v76Capability :
  3211.       choice = new H245_V76Capability();
  3212.       return TRUE;
  3213.     case e_h2250Capability :
  3214.       choice = new H245_H2250Capability();
  3215.       return TRUE;
  3216.     case e_genericMultiplexCapability :
  3217.       choice = new H245_GenericCapability();
  3218.       return TRUE;
  3219.   }
  3220.  
  3221.   choice = NULL;
  3222.   return FALSE;
  3223. }
  3224.  
  3225.  
  3226. PObject * H245_MultiplexCapability::Clone() const
  3227. {
  3228. #ifndef PASN_LEANANDMEAN
  3229.   PAssert(IsClass(H245_MultiplexCapability::Class()), PInvalidCast);
  3230. #endif
  3231.   return new H245_MultiplexCapability(*this);
  3232. }
  3233.  
  3234.  
  3235. //
  3236. // H223AnnexCCapability
  3237. //
  3238.  
  3239. H245_H223AnnexCCapability::H245_H223AnnexCCapability(unsigned tag, PASN_Object::TagClass tagClass)
  3240.   : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
  3241. {
  3242.   m_maximumAL1MPDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  3243.   m_maximumAL2MSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  3244.   m_maximumAL3MSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  3245. }
  3246.  
  3247.  
  3248. #ifndef PASN_NOPRINTON
  3249. void H245_H223AnnexCCapability::PrintOn(ostream & strm) const
  3250. {
  3251.   int indent = strm.precision() + 2;
  3252.   strm << "{\n";
  3253.   strm << setw(indent+16) << "videoWithAL1M = " << setprecision(indent) << m_videoWithAL1M << '\n';
  3254.   strm << setw(indent+16) << "videoWithAL2M = " << setprecision(indent) << m_videoWithAL2M << '\n';
  3255.   strm << setw(indent+16) << "videoWithAL3M = " << setprecision(indent) << m_videoWithAL3M << '\n';
  3256.   strm << setw(indent+16) << "audioWithAL1M = " << setprecision(indent) << m_audioWithAL1M << '\n';
  3257.   strm << setw(indent+16) << "audioWithAL2M = " << setprecision(indent) << m_audioWithAL2M << '\n';
  3258.   strm << setw(indent+16) << "audioWithAL3M = " << setprecision(indent) << m_audioWithAL3M << '\n';
  3259.   strm << setw(indent+15) << "dataWithAL1M = " << setprecision(indent) << m_dataWithAL1M << '\n';
  3260.   strm << setw(indent+15) << "dataWithAL2M = " << setprecision(indent) << m_dataWithAL2M << '\n';
  3261.   strm << setw(indent+15) << "dataWithAL3M = " << setprecision(indent) << m_dataWithAL3M << '\n';
  3262.   strm << setw(indent+20) << "alpduInterleaving = " << setprecision(indent) << m_alpduInterleaving << '\n';
  3263.   strm << setw(indent+21) << "maximumAL1MPDUSize = " << setprecision(indent) << m_maximumAL1MPDUSize << '\n';
  3264.   strm << setw(indent+21) << "maximumAL2MSDUSize = " << setprecision(indent) << m_maximumAL2MSDUSize << '\n';
  3265.   strm << setw(indent+21) << "maximumAL3MSDUSize = " << setprecision(indent) << m_maximumAL3MSDUSize << '\n';
  3266.   if (HasOptionalField(e_rsCodeCapability))
  3267.     strm << setw(indent+19) << "rsCodeCapability = " << setprecision(indent) << m_rsCodeCapability << '\n';
  3268.   strm << setw(indent-1) << "}";
  3269. }
  3270. #endif
  3271.  
  3272.  
  3273. PObject::Comparison H245_H223AnnexCCapability::Compare(const PObject & obj) const
  3274. {
  3275. #ifndef PASN_LEANANDMEAN
  3276.   PAssert(IsDescendant(H245_H223AnnexCCapability::Class()), PInvalidCast);
  3277. #endif
  3278.   const H245_H223AnnexCCapability & other = (const H245_H223AnnexCCapability &)obj;
  3279.  
  3280.   Comparison result;
  3281.  
  3282.   if ((result = m_videoWithAL1M.Compare(other.m_videoWithAL1M)) != EqualTo)
  3283.     return result;
  3284.   if ((result = m_videoWithAL2M.Compare(other.m_videoWithAL2M)) != EqualTo)
  3285.     return result;
  3286.   if ((result = m_videoWithAL3M.Compare(other.m_videoWithAL3M)) != EqualTo)
  3287.     return result;
  3288.   if ((result = m_audioWithAL1M.Compare(other.m_audioWithAL1M)) != EqualTo)
  3289.     return result;
  3290.   if ((result = m_audioWithAL2M.Compare(other.m_audioWithAL2M)) != EqualTo)
  3291.     return result;
  3292.   if ((result = m_audioWithAL3M.Compare(other.m_audioWithAL3M)) != EqualTo)
  3293.     return result;
  3294.   if ((result = m_dataWithAL1M.Compare(other.m_dataWithAL1M)) != EqualTo)
  3295.     return result;
  3296.   if ((result = m_dataWithAL2M.Compare(other.m_dataWithAL2M)) != EqualTo)
  3297.     return result;
  3298.   if ((result = m_dataWithAL3M.Compare(other.m_dataWithAL3M)) != EqualTo)
  3299.     return result;
  3300.   if ((result = m_alpduInterleaving.Compare(other.m_alpduInterleaving)) != EqualTo)
  3301.     return result;
  3302.   if ((result = m_maximumAL1MPDUSize.Compare(other.m_maximumAL1MPDUSize)) != EqualTo)
  3303.     return result;
  3304.   if ((result = m_maximumAL2MSDUSize.Compare(other.m_maximumAL2MSDUSize)) != EqualTo)
  3305.     return result;
  3306.   if ((result = m_maximumAL3MSDUSize.Compare(other.m_maximumAL3MSDUSize)) != EqualTo)
  3307.     return result;
  3308.  
  3309.   return PASN_Sequence::Compare(other);
  3310. }
  3311.  
  3312.  
  3313. PINDEX H245_H223AnnexCCapability::GetDataLength() const
  3314. {
  3315.   PINDEX length = 0;
  3316.   length += m_videoWithAL1M.GetObjectLength();
  3317.   length += m_videoWithAL2M.GetObjectLength();
  3318.   length += m_videoWithAL3M.GetObjectLength();
  3319.   length += m_audioWithAL1M.GetObjectLength();
  3320.   length += m_audioWithAL2M.GetObjectLength();
  3321.   length += m_audioWithAL3M.GetObjectLength();
  3322.   length += m_dataWithAL1M.GetObjectLength();
  3323.   length += m_dataWithAL2M.GetObjectLength();
  3324.   length += m_dataWithAL3M.GetObjectLength();
  3325.   length += m_alpduInterleaving.GetObjectLength();
  3326.   length += m_maximumAL1MPDUSize.GetObjectLength();
  3327.   length += m_maximumAL2MSDUSize.GetObjectLength();
  3328.   length += m_maximumAL3MSDUSize.GetObjectLength();
  3329.   return length;
  3330. }
  3331.  
  3332.  
  3333. BOOL H245_H223AnnexCCapability::Decode(PASN_Stream & strm)
  3334. {
  3335.   if (!PreambleDecode(strm))
  3336.     return FALSE;
  3337.  
  3338.   if (!m_videoWithAL1M.Decode(strm))
  3339.     return FALSE;
  3340.   if (!m_videoWithAL2M.Decode(strm))
  3341.     return FALSE;
  3342.   if (!m_videoWithAL3M.Decode(strm))
  3343.     return FALSE;
  3344.   if (!m_audioWithAL1M.Decode(strm))
  3345.     return FALSE;
  3346.   if (!m_audioWithAL2M.Decode(strm))
  3347.     return FALSE;
  3348.   if (!m_audioWithAL3M.Decode(strm))
  3349.     return FALSE;
  3350.   if (!m_dataWithAL1M.Decode(strm))
  3351.     return FALSE;
  3352.   if (!m_dataWithAL2M.Decode(strm))
  3353.     return FALSE;
  3354.   if (!m_dataWithAL3M.Decode(strm))
  3355.     return FALSE;
  3356.   if (!m_alpduInterleaving.Decode(strm))
  3357.     return FALSE;
  3358.   if (!m_maximumAL1MPDUSize.Decode(strm))
  3359.     return FALSE;
  3360.   if (!m_maximumAL2MSDUSize.Decode(strm))
  3361.     return FALSE;
  3362.   if (!m_maximumAL3MSDUSize.Decode(strm))
  3363.     return FALSE;
  3364.   if (!KnownExtensionDecode(strm, e_rsCodeCapability, m_rsCodeCapability))
  3365.     return FALSE;
  3366.  
  3367.   return UnknownExtensionsDecode(strm);
  3368. }
  3369.  
  3370.  
  3371. void H245_H223AnnexCCapability::Encode(PASN_Stream & strm) const
  3372. {
  3373.   PreambleEncode(strm);
  3374.  
  3375.   m_videoWithAL1M.Encode(strm);
  3376.   m_videoWithAL2M.Encode(strm);
  3377.   m_videoWithAL3M.Encode(strm);
  3378.   m_audioWithAL1M.Encode(strm);
  3379.   m_audioWithAL2M.Encode(strm);
  3380.   m_audioWithAL3M.Encode(strm);
  3381.   m_dataWithAL1M.Encode(strm);
  3382.   m_dataWithAL2M.Encode(strm);
  3383.   m_dataWithAL3M.Encode(strm);
  3384.   m_alpduInterleaving.Encode(strm);
  3385.   m_maximumAL1MPDUSize.Encode(strm);
  3386.   m_maximumAL2MSDUSize.Encode(strm);
  3387.   m_maximumAL3MSDUSize.Encode(strm);
  3388.   KnownExtensionEncode(strm, e_rsCodeCapability, m_rsCodeCapability);
  3389.  
  3390.   UnknownExtensionsEncode(strm);
  3391. }
  3392.  
  3393.  
  3394. PObject * H245_H223AnnexCCapability::Clone() const
  3395. {
  3396. #ifndef PASN_LEANANDMEAN
  3397.   PAssert(IsClass(H245_H223AnnexCCapability::Class()), PInvalidCast);
  3398. #endif
  3399.   return new H245_H223AnnexCCapability(*this);
  3400. }
  3401.  
  3402.  
  3403. //
  3404. // V75Capability
  3405. //
  3406.  
  3407. H245_V75Capability::H245_V75Capability(unsigned tag, PASN_Object::TagClass tagClass)
  3408.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  3409. {
  3410. }
  3411.  
  3412.  
  3413. #ifndef PASN_NOPRINTON
  3414. void H245_V75Capability::PrintOn(ostream & strm) const
  3415. {
  3416.   int indent = strm.precision() + 2;
  3417.   strm << "{\n";
  3418.   strm << setw(indent+14) << "audioHeader = " << setprecision(indent) << m_audioHeader << '\n';
  3419.   strm << setw(indent-1) << "}";
  3420. }
  3421. #endif
  3422.  
  3423.  
  3424. PObject::Comparison H245_V75Capability::Compare(const PObject & obj) const
  3425. {
  3426. #ifndef PASN_LEANANDMEAN
  3427.   PAssert(IsDescendant(H245_V75Capability::Class()), PInvalidCast);
  3428. #endif
  3429.   const H245_V75Capability & other = (const H245_V75Capability &)obj;
  3430.  
  3431.   Comparison result;
  3432.  
  3433.   if ((result = m_audioHeader.Compare(other.m_audioHeader)) != EqualTo)
  3434.     return result;
  3435.  
  3436.   return PASN_Sequence::Compare(other);
  3437. }
  3438.  
  3439.  
  3440. PINDEX H245_V75Capability::GetDataLength() const
  3441. {
  3442.   PINDEX length = 0;
  3443.   length += m_audioHeader.GetObjectLength();
  3444.   return length;
  3445. }
  3446.  
  3447.  
  3448. BOOL H245_V75Capability::Decode(PASN_Stream & strm)
  3449. {
  3450.   if (!PreambleDecode(strm))
  3451.     return FALSE;
  3452.  
  3453.   if (!m_audioHeader.Decode(strm))
  3454.     return FALSE;
  3455.  
  3456.   return UnknownExtensionsDecode(strm);
  3457. }
  3458.  
  3459.  
  3460. void H245_V75Capability::Encode(PASN_Stream & strm) const
  3461. {
  3462.   PreambleEncode(strm);
  3463.  
  3464.   m_audioHeader.Encode(strm);
  3465.  
  3466.   UnknownExtensionsEncode(strm);
  3467. }
  3468.  
  3469.  
  3470. PObject * H245_V75Capability::Clone() const
  3471. {
  3472. #ifndef PASN_LEANANDMEAN
  3473.   PAssert(IsClass(H245_V75Capability::Class()), PInvalidCast);
  3474. #endif
  3475.   return new H245_V75Capability(*this);
  3476. }
  3477.  
  3478.  
  3479. //
  3480. // QOSMode
  3481. //
  3482.  
  3483. H245_QOSMode::H245_QOSMode(unsigned tag, PASN_Object::TagClass tagClass)
  3484.   : PASN_Choice(tag, tagClass, 2, TRUE
  3485. #ifndef PASN_NOPRINTON
  3486.       , "guaranteedQOS "
  3487.         "controlledLoad "
  3488. #endif
  3489.     )
  3490. {
  3491. }
  3492.  
  3493.  
  3494. BOOL H245_QOSMode::CreateObject()
  3495. {
  3496.   choice = (tag <= e_controlledLoad) ? new PASN_Null() : NULL;
  3497.   return choice != NULL;
  3498. }
  3499.  
  3500.  
  3501. PObject * H245_QOSMode::Clone() const
  3502. {
  3503. #ifndef PASN_LEANANDMEAN
  3504.   PAssert(IsClass(H245_QOSMode::Class()), PInvalidCast);
  3505. #endif
  3506.   return new H245_QOSMode(*this);
  3507. }
  3508.  
  3509.  
  3510. //
  3511. // ATMParameters
  3512. //
  3513.  
  3514. H245_ATMParameters::H245_ATMParameters(unsigned tag, PASN_Object::TagClass tagClass)
  3515.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  3516. {
  3517.   m_maxNTUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  3518. }
  3519.  
  3520.  
  3521. #ifndef PASN_NOPRINTON
  3522. void H245_ATMParameters::PrintOn(ostream & strm) const
  3523. {
  3524.   int indent = strm.precision() + 2;
  3525.   strm << "{\n";
  3526.   strm << setw(indent+13) << "maxNTUSize = " << setprecision(indent) << m_maxNTUSize << '\n';
  3527.   strm << setw(indent+9) << "atmUBR = " << setprecision(indent) << m_atmUBR << '\n';
  3528.   strm << setw(indent+11) << "atmrtVBR = " << setprecision(indent) << m_atmrtVBR << '\n';
  3529.   strm << setw(indent+12) << "atmnrtVBR = " << setprecision(indent) << m_atmnrtVBR << '\n';
  3530.   strm << setw(indent+9) << "atmABR = " << setprecision(indent) << m_atmABR << '\n';
  3531.   strm << setw(indent+9) << "atmCBR = " << setprecision(indent) << m_atmCBR << '\n';
  3532.   strm << setw(indent-1) << "}";
  3533. }
  3534. #endif
  3535.  
  3536.  
  3537. PObject::Comparison H245_ATMParameters::Compare(const PObject & obj) const
  3538. {
  3539. #ifndef PASN_LEANANDMEAN
  3540.   PAssert(IsDescendant(H245_ATMParameters::Class()), PInvalidCast);
  3541. #endif
  3542.   const H245_ATMParameters & other = (const H245_ATMParameters &)obj;
  3543.  
  3544.   Comparison result;
  3545.  
  3546.   if ((result = m_maxNTUSize.Compare(other.m_maxNTUSize)) != EqualTo)
  3547.     return result;
  3548.   if ((result = m_atmUBR.Compare(other.m_atmUBR)) != EqualTo)
  3549.     return result;
  3550.   if ((result = m_atmrtVBR.Compare(other.m_atmrtVBR)) != EqualTo)
  3551.     return result;
  3552.   if ((result = m_atmnrtVBR.Compare(other.m_atmnrtVBR)) != EqualTo)
  3553.     return result;
  3554.   if ((result = m_atmABR.Compare(other.m_atmABR)) != EqualTo)
  3555.     return result;
  3556.   if ((result = m_atmCBR.Compare(other.m_atmCBR)) != EqualTo)
  3557.     return result;
  3558.  
  3559.   return PASN_Sequence::Compare(other);
  3560. }
  3561.  
  3562.  
  3563. PINDEX H245_ATMParameters::GetDataLength() const
  3564. {
  3565.   PINDEX length = 0;
  3566.   length += m_maxNTUSize.GetObjectLength();
  3567.   length += m_atmUBR.GetObjectLength();
  3568.   length += m_atmrtVBR.GetObjectLength();
  3569.   length += m_atmnrtVBR.GetObjectLength();
  3570.   length += m_atmABR.GetObjectLength();
  3571.   length += m_atmCBR.GetObjectLength();
  3572.   return length;
  3573. }
  3574.  
  3575.  
  3576. BOOL H245_ATMParameters::Decode(PASN_Stream & strm)
  3577. {
  3578.   if (!PreambleDecode(strm))
  3579.     return FALSE;
  3580.  
  3581.   if (!m_maxNTUSize.Decode(strm))
  3582.     return FALSE;
  3583.   if (!m_atmUBR.Decode(strm))
  3584.     return FALSE;
  3585.   if (!m_atmrtVBR.Decode(strm))
  3586.     return FALSE;
  3587.   if (!m_atmnrtVBR.Decode(strm))
  3588.     return FALSE;
  3589.   if (!m_atmABR.Decode(strm))
  3590.     return FALSE;
  3591.   if (!m_atmCBR.Decode(strm))
  3592.     return FALSE;
  3593.  
  3594.   return UnknownExtensionsDecode(strm);
  3595. }
  3596.  
  3597.  
  3598. void H245_ATMParameters::Encode(PASN_Stream & strm) const
  3599. {
  3600.   PreambleEncode(strm);
  3601.  
  3602.   m_maxNTUSize.Encode(strm);
  3603.   m_atmUBR.Encode(strm);
  3604.   m_atmrtVBR.Encode(strm);
  3605.   m_atmnrtVBR.Encode(strm);
  3606.   m_atmABR.Encode(strm);
  3607.   m_atmCBR.Encode(strm);
  3608.  
  3609.   UnknownExtensionsEncode(strm);
  3610. }
  3611.  
  3612.  
  3613. PObject * H245_ATMParameters::Clone() const
  3614. {
  3615. #ifndef PASN_LEANANDMEAN
  3616.   PAssert(IsClass(H245_ATMParameters::Class()), PInvalidCast);
  3617. #endif
  3618.   return new H245_ATMParameters(*this);
  3619. }
  3620.  
  3621.  
  3622. //
  3623. // MediaTransportType
  3624. //
  3625.  
  3626. H245_MediaTransportType::H245_MediaTransportType(unsigned tag, PASN_Object::TagClass tagClass)
  3627.   : PASN_Choice(tag, tagClass, 4, TRUE
  3628. #ifndef PASN_NOPRINTON
  3629.       , "ip_UDP "
  3630.         "ip_TCP "
  3631.         "atm_AAL5_UNIDIR "
  3632.         "atm_AAL5_BIDIR "
  3633.         "atm_AAL5_compressed "
  3634. #endif
  3635.     )
  3636. {
  3637. }
  3638.  
  3639.  
  3640. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3641. H245_MediaTransportType::operator H245_MediaTransportType_atm_AAL5_compressed &() const
  3642. #else
  3643. H245_MediaTransportType::operator H245_MediaTransportType_atm_AAL5_compressed &()
  3644. {
  3645. #ifndef PASN_LEANANDMEAN
  3646.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MediaTransportType_atm_AAL5_compressed::Class()), PInvalidCast);
  3647. #endif
  3648.   return *(H245_MediaTransportType_atm_AAL5_compressed *)choice;
  3649. }
  3650.  
  3651.  
  3652. H245_MediaTransportType::operator const H245_MediaTransportType_atm_AAL5_compressed &() const
  3653. #endif
  3654. {
  3655. #ifndef PASN_LEANANDMEAN
  3656.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MediaTransportType_atm_AAL5_compressed::Class()), PInvalidCast);
  3657. #endif
  3658.   return *(H245_MediaTransportType_atm_AAL5_compressed *)choice;
  3659. }
  3660.  
  3661.  
  3662. BOOL H245_MediaTransportType::CreateObject()
  3663. {
  3664.   switch (tag) {
  3665.     case e_ip_UDP :
  3666.     case e_ip_TCP :
  3667.     case e_atm_AAL5_UNIDIR :
  3668.     case e_atm_AAL5_BIDIR :
  3669.       choice = new PASN_Null();
  3670.       return TRUE;
  3671.     case e_atm_AAL5_compressed :
  3672.       choice = new H245_MediaTransportType_atm_AAL5_compressed();
  3673.       return TRUE;
  3674.   }
  3675.  
  3676.   choice = NULL;
  3677.   return FALSE;
  3678. }
  3679.  
  3680.  
  3681. PObject * H245_MediaTransportType::Clone() const
  3682. {
  3683. #ifndef PASN_LEANANDMEAN
  3684.   PAssert(IsClass(H245_MediaTransportType::Class()), PInvalidCast);
  3685. #endif
  3686.   return new H245_MediaTransportType(*this);
  3687. }
  3688.  
  3689.  
  3690. //
  3691. // MediaChannelCapability
  3692. //
  3693.  
  3694. H245_MediaChannelCapability::H245_MediaChannelCapability(unsigned tag, PASN_Object::TagClass tagClass)
  3695.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  3696. {
  3697. }
  3698.  
  3699.  
  3700. #ifndef PASN_NOPRINTON
  3701. void H245_MediaChannelCapability::PrintOn(ostream & strm) const
  3702. {
  3703.   int indent = strm.precision() + 2;
  3704.   strm << "{\n";
  3705.   if (HasOptionalField(e_mediaTransport))
  3706.     strm << setw(indent+17) << "mediaTransport = " << setprecision(indent) << m_mediaTransport << '\n';
  3707.   strm << setw(indent-1) << "}";
  3708. }
  3709. #endif
  3710.  
  3711.  
  3712. PObject::Comparison H245_MediaChannelCapability::Compare(const PObject & obj) const
  3713. {
  3714. #ifndef PASN_LEANANDMEAN
  3715.   PAssert(IsDescendant(H245_MediaChannelCapability::Class()), PInvalidCast);
  3716. #endif
  3717.   const H245_MediaChannelCapability & other = (const H245_MediaChannelCapability &)obj;
  3718.  
  3719.   Comparison result;
  3720.  
  3721.   if ((result = m_mediaTransport.Compare(other.m_mediaTransport)) != EqualTo)
  3722.     return result;
  3723.  
  3724.   return PASN_Sequence::Compare(other);
  3725. }
  3726.  
  3727.  
  3728. PINDEX H245_MediaChannelCapability::GetDataLength() const
  3729. {
  3730.   PINDEX length = 0;
  3731.   if (HasOptionalField(e_mediaTransport))
  3732.     length += m_mediaTransport.GetObjectLength();
  3733.   return length;
  3734. }
  3735.  
  3736.  
  3737. BOOL H245_MediaChannelCapability::Decode(PASN_Stream & strm)
  3738. {
  3739.   if (!PreambleDecode(strm))
  3740.     return FALSE;
  3741.  
  3742.   if (HasOptionalField(e_mediaTransport) && !m_mediaTransport.Decode(strm))
  3743.     return FALSE;
  3744.  
  3745.   return UnknownExtensionsDecode(strm);
  3746. }
  3747.  
  3748.  
  3749. void H245_MediaChannelCapability::Encode(PASN_Stream & strm) const
  3750. {
  3751.   PreambleEncode(strm);
  3752.  
  3753.   if (HasOptionalField(e_mediaTransport))
  3754.     m_mediaTransport.Encode(strm);
  3755.  
  3756.   UnknownExtensionsEncode(strm);
  3757. }
  3758.  
  3759.  
  3760. PObject * H245_MediaChannelCapability::Clone() const
  3761. {
  3762. #ifndef PASN_LEANANDMEAN
  3763.   PAssert(IsClass(H245_MediaChannelCapability::Class()), PInvalidCast);
  3764. #endif
  3765.   return new H245_MediaChannelCapability(*this);
  3766. }
  3767.  
  3768.  
  3769. //
  3770. // RedundancyEncodingMethod
  3771. //
  3772.  
  3773. H245_RedundancyEncodingMethod::H245_RedundancyEncodingMethod(unsigned tag, PASN_Object::TagClass tagClass)
  3774.   : PASN_Choice(tag, tagClass, 2, TRUE
  3775. #ifndef PASN_NOPRINTON
  3776.       , "nonStandard "
  3777.         "rtpAudioRedundancyEncoding "
  3778.         "rtpH263VideoRedundancyEncoding "
  3779. #endif
  3780.     )
  3781. {
  3782. }
  3783.  
  3784.  
  3785. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3786. H245_RedundancyEncodingMethod::operator H245_NonStandardParameter &() const
  3787. #else
  3788. H245_RedundancyEncodingMethod::operator H245_NonStandardParameter &()
  3789. {
  3790. #ifndef PASN_LEANANDMEAN
  3791.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3792. #endif
  3793.   return *(H245_NonStandardParameter *)choice;
  3794. }
  3795.  
  3796.  
  3797. H245_RedundancyEncodingMethod::operator const H245_NonStandardParameter &() const
  3798. #endif
  3799. {
  3800. #ifndef PASN_LEANANDMEAN
  3801.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3802. #endif
  3803.   return *(H245_NonStandardParameter *)choice;
  3804. }
  3805.  
  3806.  
  3807. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3808. H245_RedundancyEncodingMethod::operator H245_RTPH263VideoRedundancyEncoding &() const
  3809. #else
  3810. H245_RedundancyEncodingMethod::operator H245_RTPH263VideoRedundancyEncoding &()
  3811. {
  3812. #ifndef PASN_LEANANDMEAN
  3813.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RTPH263VideoRedundancyEncoding::Class()), PInvalidCast);
  3814. #endif
  3815.   return *(H245_RTPH263VideoRedundancyEncoding *)choice;
  3816. }
  3817.  
  3818.  
  3819. H245_RedundancyEncodingMethod::operator const H245_RTPH263VideoRedundancyEncoding &() const
  3820. #endif
  3821. {
  3822. #ifndef PASN_LEANANDMEAN
  3823.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RTPH263VideoRedundancyEncoding::Class()), PInvalidCast);
  3824. #endif
  3825.   return *(H245_RTPH263VideoRedundancyEncoding *)choice;
  3826. }
  3827.  
  3828.  
  3829. BOOL H245_RedundancyEncodingMethod::CreateObject()
  3830. {
  3831.   switch (tag) {
  3832.     case e_nonStandard :
  3833.       choice = new H245_NonStandardParameter();
  3834.       return TRUE;
  3835.     case e_rtpAudioRedundancyEncoding :
  3836.       choice = new PASN_Null();
  3837.       return TRUE;
  3838.     case e_rtpH263VideoRedundancyEncoding :
  3839.       choice = new H245_RTPH263VideoRedundancyEncoding();
  3840.       return TRUE;
  3841.   }
  3842.  
  3843.   choice = NULL;
  3844.   return FALSE;
  3845. }
  3846.  
  3847.  
  3848. PObject * H245_RedundancyEncodingMethod::Clone() const
  3849. {
  3850. #ifndef PASN_LEANANDMEAN
  3851.   PAssert(IsClass(H245_RedundancyEncodingMethod::Class()), PInvalidCast);
  3852. #endif
  3853.   return new H245_RedundancyEncodingMethod(*this);
  3854. }
  3855.  
  3856.  
  3857. //
  3858. // VideoCapability
  3859. //
  3860.  
  3861. H245_VideoCapability::H245_VideoCapability(unsigned tag, PASN_Object::TagClass tagClass)
  3862.   : PASN_Choice(tag, tagClass, 5, TRUE
  3863. #ifndef PASN_NOPRINTON
  3864.       , "nonStandard "
  3865.         "h261VideoCapability "
  3866.         "h262VideoCapability "
  3867.         "h263VideoCapability "
  3868.         "is11172VideoCapability "
  3869.         "genericVideoCapability "
  3870. #endif
  3871.     )
  3872. {
  3873. }
  3874.  
  3875.  
  3876. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3877. H245_VideoCapability::operator H245_NonStandardParameter &() const
  3878. #else
  3879. H245_VideoCapability::operator H245_NonStandardParameter &()
  3880. {
  3881. #ifndef PASN_LEANANDMEAN
  3882.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3883. #endif
  3884.   return *(H245_NonStandardParameter *)choice;
  3885. }
  3886.  
  3887.  
  3888. H245_VideoCapability::operator const H245_NonStandardParameter &() const
  3889. #endif
  3890. {
  3891. #ifndef PASN_LEANANDMEAN
  3892.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3893. #endif
  3894.   return *(H245_NonStandardParameter *)choice;
  3895. }
  3896.  
  3897.  
  3898. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3899. H245_VideoCapability::operator H245_H261VideoCapability &() const
  3900. #else
  3901. H245_VideoCapability::operator H245_H261VideoCapability &()
  3902. {
  3903. #ifndef PASN_LEANANDMEAN
  3904.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H261VideoCapability::Class()), PInvalidCast);
  3905. #endif
  3906.   return *(H245_H261VideoCapability *)choice;
  3907. }
  3908.  
  3909.  
  3910. H245_VideoCapability::operator const H245_H261VideoCapability &() const
  3911. #endif
  3912. {
  3913. #ifndef PASN_LEANANDMEAN
  3914.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H261VideoCapability::Class()), PInvalidCast);
  3915. #endif
  3916.   return *(H245_H261VideoCapability *)choice;
  3917. }
  3918.  
  3919.  
  3920. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3921. H245_VideoCapability::operator H245_H262VideoCapability &() const
  3922. #else
  3923. H245_VideoCapability::operator H245_H262VideoCapability &()
  3924. {
  3925. #ifndef PASN_LEANANDMEAN
  3926.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H262VideoCapability::Class()), PInvalidCast);
  3927. #endif
  3928.   return *(H245_H262VideoCapability *)choice;
  3929. }
  3930.  
  3931.  
  3932. H245_VideoCapability::operator const H245_H262VideoCapability &() const
  3933. #endif
  3934. {
  3935. #ifndef PASN_LEANANDMEAN
  3936.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H262VideoCapability::Class()), PInvalidCast);
  3937. #endif
  3938.   return *(H245_H262VideoCapability *)choice;
  3939. }
  3940.  
  3941.  
  3942. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3943. H245_VideoCapability::operator H245_H263VideoCapability &() const
  3944. #else
  3945. H245_VideoCapability::operator H245_H263VideoCapability &()
  3946. {
  3947. #ifndef PASN_LEANANDMEAN
  3948.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H263VideoCapability::Class()), PInvalidCast);
  3949. #endif
  3950.   return *(H245_H263VideoCapability *)choice;
  3951. }
  3952.  
  3953.  
  3954. H245_VideoCapability::operator const H245_H263VideoCapability &() const
  3955. #endif
  3956. {
  3957. #ifndef PASN_LEANANDMEAN
  3958.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H263VideoCapability::Class()), PInvalidCast);
  3959. #endif
  3960.   return *(H245_H263VideoCapability *)choice;
  3961. }
  3962.  
  3963.  
  3964. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3965. H245_VideoCapability::operator H245_IS11172VideoCapability &() const
  3966. #else
  3967. H245_VideoCapability::operator H245_IS11172VideoCapability &()
  3968. {
  3969. #ifndef PASN_LEANANDMEAN
  3970.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172VideoCapability::Class()), PInvalidCast);
  3971. #endif
  3972.   return *(H245_IS11172VideoCapability *)choice;
  3973. }
  3974.  
  3975.  
  3976. H245_VideoCapability::operator const H245_IS11172VideoCapability &() const
  3977. #endif
  3978. {
  3979. #ifndef PASN_LEANANDMEAN
  3980.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172VideoCapability::Class()), PInvalidCast);
  3981. #endif
  3982.   return *(H245_IS11172VideoCapability *)choice;
  3983. }
  3984.  
  3985.  
  3986. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3987. H245_VideoCapability::operator H245_GenericCapability &() const
  3988. #else
  3989. H245_VideoCapability::operator H245_GenericCapability &()
  3990. {
  3991. #ifndef PASN_LEANANDMEAN
  3992.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  3993. #endif
  3994.   return *(H245_GenericCapability *)choice;
  3995. }
  3996.  
  3997.  
  3998. H245_VideoCapability::operator const H245_GenericCapability &() const
  3999. #endif
  4000. {
  4001. #ifndef PASN_LEANANDMEAN
  4002.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  4003. #endif
  4004.   return *(H245_GenericCapability *)choice;
  4005. }
  4006.  
  4007.  
  4008. BOOL H245_VideoCapability::CreateObject()
  4009. {
  4010.   switch (tag) {
  4011.     case e_nonStandard :
  4012.       choice = new H245_NonStandardParameter();
  4013.       return TRUE;
  4014.     case e_h261VideoCapability :
  4015.       choice = new H245_H261VideoCapability();
  4016.       return TRUE;
  4017.     case e_h262VideoCapability :
  4018.       choice = new H245_H262VideoCapability();
  4019.       return TRUE;
  4020.     case e_h263VideoCapability :
  4021.       choice = new H245_H263VideoCapability();
  4022.       return TRUE;
  4023.     case e_is11172VideoCapability :
  4024.       choice = new H245_IS11172VideoCapability();
  4025.       return TRUE;
  4026.     case e_genericVideoCapability :
  4027.       choice = new H245_GenericCapability();
  4028.       return TRUE;
  4029.   }
  4030.  
  4031.   choice = NULL;
  4032.   return FALSE;
  4033. }
  4034.  
  4035.  
  4036. PObject * H245_VideoCapability::Clone() const
  4037. {
  4038. #ifndef PASN_LEANANDMEAN
  4039.   PAssert(IsClass(H245_VideoCapability::Class()), PInvalidCast);
  4040. #endif
  4041.   return new H245_VideoCapability(*this);
  4042. }
  4043.  
  4044.  
  4045. //
  4046. // H261VideoCapability
  4047. //
  4048.  
  4049. H245_H261VideoCapability::H245_H261VideoCapability(unsigned tag, PASN_Object::TagClass tagClass)
  4050.   : PASN_Sequence(tag, tagClass, 2, TRUE, 1)
  4051. {
  4052.   m_qcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
  4053.   m_cifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
  4054.   m_maxBitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 19200);
  4055.   IncludeOptionalField(e_videoBadMBsCap);
  4056. }
  4057.  
  4058.  
  4059. #ifndef PASN_NOPRINTON
  4060. void H245_H261VideoCapability::PrintOn(ostream & strm) const
  4061. {
  4062.   int indent = strm.precision() + 2;
  4063.   strm << "{\n";
  4064.   if (HasOptionalField(e_qcifMPI))
  4065.     strm << setw(indent+10) << "qcifMPI = " << setprecision(indent) << m_qcifMPI << '\n';
  4066.   if (HasOptionalField(e_cifMPI))
  4067.     strm << setw(indent+9) << "cifMPI = " << setprecision(indent) << m_cifMPI << '\n';
  4068.   strm << setw(indent+36) << "temporalSpatialTradeOffCapability = " << setprecision(indent) << m_temporalSpatialTradeOffCapability << '\n';
  4069.   strm << setw(indent+13) << "maxBitRate = " << setprecision(indent) << m_maxBitRate << '\n';
  4070.   strm << setw(indent+25) << "stillImageTransmission = " << setprecision(indent) << m_stillImageTransmission << '\n';
  4071.   if (HasOptionalField(e_videoBadMBsCap))
  4072.     strm << setw(indent+17) << "videoBadMBsCap = " << setprecision(indent) << m_videoBadMBsCap << '\n';
  4073.   strm << setw(indent-1) << "}";
  4074. }
  4075. #endif
  4076.  
  4077.  
  4078. PObject::Comparison H245_H261VideoCapability::Compare(const PObject & obj) const
  4079. {
  4080. #ifndef PASN_LEANANDMEAN
  4081.   PAssert(IsDescendant(H245_H261VideoCapability::Class()), PInvalidCast);
  4082. #endif
  4083.   const H245_H261VideoCapability & other = (const H245_H261VideoCapability &)obj;
  4084.  
  4085.   Comparison result;
  4086.  
  4087.   if ((result = m_qcifMPI.Compare(other.m_qcifMPI)) != EqualTo)
  4088.     return result;
  4089.   if ((result = m_cifMPI.Compare(other.m_cifMPI)) != EqualTo)
  4090.     return result;
  4091.   if ((result = m_temporalSpatialTradeOffCapability.Compare(other.m_temporalSpatialTradeOffCapability)) != EqualTo)
  4092.     return result;
  4093.   if ((result = m_maxBitRate.Compare(other.m_maxBitRate)) != EqualTo)
  4094.     return result;
  4095.   if ((result = m_stillImageTransmission.Compare(other.m_stillImageTransmission)) != EqualTo)
  4096.     return result;
  4097.  
  4098.   return PASN_Sequence::Compare(other);
  4099. }
  4100.  
  4101.  
  4102. PINDEX H245_H261VideoCapability::GetDataLength() const
  4103. {
  4104.   PINDEX length = 0;
  4105.   if (HasOptionalField(e_qcifMPI))
  4106.     length += m_qcifMPI.GetObjectLength();
  4107.   if (HasOptionalField(e_cifMPI))
  4108.     length += m_cifMPI.GetObjectLength();
  4109.   length += m_temporalSpatialTradeOffCapability.GetObjectLength();
  4110.   length += m_maxBitRate.GetObjectLength();
  4111.   length += m_stillImageTransmission.GetObjectLength();
  4112.   return length;
  4113. }
  4114.  
  4115.  
  4116. BOOL H245_H261VideoCapability::Decode(PASN_Stream & strm)
  4117. {
  4118.   if (!PreambleDecode(strm))
  4119.     return FALSE;
  4120.  
  4121.   if (HasOptionalField(e_qcifMPI) && !m_qcifMPI.Decode(strm))
  4122.     return FALSE;
  4123.   if (HasOptionalField(e_cifMPI) && !m_cifMPI.Decode(strm))
  4124.     return FALSE;
  4125.   if (!m_temporalSpatialTradeOffCapability.Decode(strm))
  4126.     return FALSE;
  4127.   if (!m_maxBitRate.Decode(strm))
  4128.     return FALSE;
  4129.   if (!m_stillImageTransmission.Decode(strm))
  4130.     return FALSE;
  4131.   if (!KnownExtensionDecode(strm, e_videoBadMBsCap, m_videoBadMBsCap))
  4132.     return FALSE;
  4133.  
  4134.   return UnknownExtensionsDecode(strm);
  4135. }
  4136.  
  4137.  
  4138. void H245_H261VideoCapability::Encode(PASN_Stream & strm) const
  4139. {
  4140.   PreambleEncode(strm);
  4141.  
  4142.   if (HasOptionalField(e_qcifMPI))
  4143.     m_qcifMPI.Encode(strm);
  4144.   if (HasOptionalField(e_cifMPI))
  4145.     m_cifMPI.Encode(strm);
  4146.   m_temporalSpatialTradeOffCapability.Encode(strm);
  4147.   m_maxBitRate.Encode(strm);
  4148.   m_stillImageTransmission.Encode(strm);
  4149.   KnownExtensionEncode(strm, e_videoBadMBsCap, m_videoBadMBsCap);
  4150.  
  4151.   UnknownExtensionsEncode(strm);
  4152. }
  4153.  
  4154.  
  4155. PObject * H245_H261VideoCapability::Clone() const
  4156. {
  4157. #ifndef PASN_LEANANDMEAN
  4158.   PAssert(IsClass(H245_H261VideoCapability::Class()), PInvalidCast);
  4159. #endif
  4160.   return new H245_H261VideoCapability(*this);
  4161. }
  4162.  
  4163.  
  4164. //
  4165. // H262VideoCapability
  4166. //
  4167.  
  4168. H245_H262VideoCapability::H245_H262VideoCapability(unsigned tag, PASN_Object::TagClass tagClass)
  4169.   : PASN_Sequence(tag, tagClass, 6, TRUE, 1)
  4170. {
  4171.   m_videoBitRate.SetConstraints(PASN_Object::FixedConstraint, 0, 1073741823);
  4172.   m_vbvBufferSize.SetConstraints(PASN_Object::FixedConstraint, 0, 262143);
  4173.   m_samplesPerLine.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
  4174.   m_linesPerFrame.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
  4175.   m_framesPerSecond.SetConstraints(PASN_Object::FixedConstraint, 0, 15);
  4176.   m_luminanceSampleRate.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  4177.   IncludeOptionalField(e_videoBadMBsCap);
  4178. }
  4179.  
  4180.  
  4181. #ifndef PASN_NOPRINTON
  4182. void H245_H262VideoCapability::PrintOn(ostream & strm) const
  4183. {
  4184.   int indent = strm.precision() + 2;
  4185.   strm << "{\n";
  4186.   strm << setw(indent+25) << "profileAndLevel_SPatML = " << setprecision(indent) << m_profileAndLevel_SPatML << '\n';
  4187.   strm << setw(indent+25) << "profileAndLevel_MPatLL = " << setprecision(indent) << m_profileAndLevel_MPatLL << '\n';
  4188.   strm << setw(indent+25) << "profileAndLevel_MPatML = " << setprecision(indent) << m_profileAndLevel_MPatML << '\n';
  4189.   strm << setw(indent+27) << "profileAndLevel_MPatH_14 = " << setprecision(indent) << m_profileAndLevel_MPatH_14 << '\n';
  4190.   strm << setw(indent+25) << "profileAndLevel_MPatHL = " << setprecision(indent) << m_profileAndLevel_MPatHL << '\n';
  4191.   strm << setw(indent+26) << "profileAndLevel_SNRatLL = " << setprecision(indent) << m_profileAndLevel_SNRatLL << '\n';
  4192.   strm << setw(indent+26) << "profileAndLevel_SNRatML = " << setprecision(indent) << m_profileAndLevel_SNRatML << '\n';
  4193.   strm << setw(indent+32) << "profileAndLevel_SpatialatH_14 = " << setprecision(indent) << m_profileAndLevel_SpatialatH_14 << '\n';
  4194.   strm << setw(indent+25) << "profileAndLevel_HPatML = " << setprecision(indent) << m_profileAndLevel_HPatML << '\n';
  4195.   strm << setw(indent+27) << "profileAndLevel_HPatH_14 = " << setprecision(indent) << m_profileAndLevel_HPatH_14 << '\n';
  4196.   strm << setw(indent+25) << "profileAndLevel_HPatHL = " << setprecision(indent) << m_profileAndLevel_HPatHL << '\n';
  4197.   if (HasOptionalField(e_videoBitRate))
  4198.     strm << setw(indent+15) << "videoBitRate = " << setprecision(indent) << m_videoBitRate << '\n';
  4199.   if (HasOptionalField(e_vbvBufferSize))
  4200.     strm << setw(indent+16) << "vbvBufferSize = " << setprecision(indent) << m_vbvBufferSize << '\n';
  4201.   if (HasOptionalField(e_samplesPerLine))
  4202.     strm << setw(indent+17) << "samplesPerLine = " << setprecision(indent) << m_samplesPerLine << '\n';
  4203.   if (HasOptionalField(e_linesPerFrame))
  4204.     strm << setw(indent+16) << "linesPerFrame = " << setprecision(indent) << m_linesPerFrame << '\n';
  4205.   if (HasOptionalField(e_framesPerSecond))
  4206.     strm << setw(indent+18) << "framesPerSecond = " << setprecision(indent) << m_framesPerSecond << '\n';
  4207.   if (HasOptionalField(e_luminanceSampleRate))
  4208.     strm << setw(indent+22) << "luminanceSampleRate = " << setprecision(indent) << m_luminanceSampleRate << '\n';
  4209.   if (HasOptionalField(e_videoBadMBsCap))
  4210.     strm << setw(indent+17) << "videoBadMBsCap = " << setprecision(indent) << m_videoBadMBsCap << '\n';
  4211.   strm << setw(indent-1) << "}";
  4212. }
  4213. #endif
  4214.  
  4215.  
  4216. PObject::Comparison H245_H262VideoCapability::Compare(const PObject & obj) const
  4217. {
  4218. #ifndef PASN_LEANANDMEAN
  4219.   PAssert(IsDescendant(H245_H262VideoCapability::Class()), PInvalidCast);
  4220. #endif
  4221.   const H245_H262VideoCapability & other = (const H245_H262VideoCapability &)obj;
  4222.  
  4223.   Comparison result;
  4224.  
  4225.   if ((result = m_profileAndLevel_SPatML.Compare(other.m_profileAndLevel_SPatML)) != EqualTo)
  4226.     return result;
  4227.   if ((result = m_profileAndLevel_MPatLL.Compare(other.m_profileAndLevel_MPatLL)) != EqualTo)
  4228.     return result;
  4229.   if ((result = m_profileAndLevel_MPatML.Compare(other.m_profileAndLevel_MPatML)) != EqualTo)
  4230.     return result;
  4231.   if ((result = m_profileAndLevel_MPatH_14.Compare(other.m_profileAndLevel_MPatH_14)) != EqualTo)
  4232.     return result;
  4233.   if ((result = m_profileAndLevel_MPatHL.Compare(other.m_profileAndLevel_MPatHL)) != EqualTo)
  4234.     return result;
  4235.   if ((result = m_profileAndLevel_SNRatLL.Compare(other.m_profileAndLevel_SNRatLL)) != EqualTo)
  4236.     return result;
  4237.   if ((result = m_profileAndLevel_SNRatML.Compare(other.m_profileAndLevel_SNRatML)) != EqualTo)
  4238.     return result;
  4239.   if ((result = m_profileAndLevel_SpatialatH_14.Compare(other.m_profileAndLevel_SpatialatH_14)) != EqualTo)
  4240.     return result;
  4241.   if ((result = m_profileAndLevel_HPatML.Compare(other.m_profileAndLevel_HPatML)) != EqualTo)
  4242.     return result;
  4243.   if ((result = m_profileAndLevel_HPatH_14.Compare(other.m_profileAndLevel_HPatH_14)) != EqualTo)
  4244.     return result;
  4245.   if ((result = m_profileAndLevel_HPatHL.Compare(other.m_profileAndLevel_HPatHL)) != EqualTo)
  4246.     return result;
  4247.   if ((result = m_videoBitRate.Compare(other.m_videoBitRate)) != EqualTo)
  4248.     return result;
  4249.   if ((result = m_vbvBufferSize.Compare(other.m_vbvBufferSize)) != EqualTo)
  4250.     return result;
  4251.   if ((result = m_samplesPerLine.Compare(other.m_samplesPerLine)) != EqualTo)
  4252.     return result;
  4253.   if ((result = m_linesPerFrame.Compare(other.m_linesPerFrame)) != EqualTo)
  4254.     return result;
  4255.   if ((result = m_framesPerSecond.Compare(other.m_framesPerSecond)) != EqualTo)
  4256.     return result;
  4257.   if ((result = m_luminanceSampleRate.Compare(other.m_luminanceSampleRate)) != EqualTo)
  4258.     return result;
  4259.  
  4260.   return PASN_Sequence::Compare(other);
  4261. }
  4262.  
  4263.  
  4264. PINDEX H245_H262VideoCapability::GetDataLength() const
  4265. {
  4266.   PINDEX length = 0;
  4267.   length += m_profileAndLevel_SPatML.GetObjectLength();
  4268.   length += m_profileAndLevel_MPatLL.GetObjectLength();
  4269.   length += m_profileAndLevel_MPatML.GetObjectLength();
  4270.   length += m_profileAndLevel_MPatH_14.GetObjectLength();
  4271.   length += m_profileAndLevel_MPatHL.GetObjectLength();
  4272.   length += m_profileAndLevel_SNRatLL.GetObjectLength();
  4273.   length += m_profileAndLevel_SNRatML.GetObjectLength();
  4274.   length += m_profileAndLevel_SpatialatH_14.GetObjectLength();
  4275.   length += m_profileAndLevel_HPatML.GetObjectLength();
  4276.   length += m_profileAndLevel_HPatH_14.GetObjectLength();
  4277.   length += m_profileAndLevel_HPatHL.GetObjectLength();
  4278.   if (HasOptionalField(e_videoBitRate))
  4279.     length += m_videoBitRate.GetObjectLength();
  4280.   if (HasOptionalField(e_vbvBufferSize))
  4281.     length += m_vbvBufferSize.GetObjectLength();
  4282.   if (HasOptionalField(e_samplesPerLine))
  4283.     length += m_samplesPerLine.GetObjectLength();
  4284.   if (HasOptionalField(e_linesPerFrame))
  4285.     length += m_linesPerFrame.GetObjectLength();
  4286.   if (HasOptionalField(e_framesPerSecond))
  4287.     length += m_framesPerSecond.GetObjectLength();
  4288.   if (HasOptionalField(e_luminanceSampleRate))
  4289.     length += m_luminanceSampleRate.GetObjectLength();
  4290.   return length;
  4291. }
  4292.  
  4293.  
  4294. BOOL H245_H262VideoCapability::Decode(PASN_Stream & strm)
  4295. {
  4296.   if (!PreambleDecode(strm))
  4297.     return FALSE;
  4298.  
  4299.   if (!m_profileAndLevel_SPatML.Decode(strm))
  4300.     return FALSE;
  4301.   if (!m_profileAndLevel_MPatLL.Decode(strm))
  4302.     return FALSE;
  4303.   if (!m_profileAndLevel_MPatML.Decode(strm))
  4304.     return FALSE;
  4305.   if (!m_profileAndLevel_MPatH_14.Decode(strm))
  4306.     return FALSE;
  4307.   if (!m_profileAndLevel_MPatHL.Decode(strm))
  4308.     return FALSE;
  4309.   if (!m_profileAndLevel_SNRatLL.Decode(strm))
  4310.     return FALSE;
  4311.   if (!m_profileAndLevel_SNRatML.Decode(strm))
  4312.     return FALSE;
  4313.   if (!m_profileAndLevel_SpatialatH_14.Decode(strm))
  4314.     return FALSE;
  4315.   if (!m_profileAndLevel_HPatML.Decode(strm))
  4316.     return FALSE;
  4317.   if (!m_profileAndLevel_HPatH_14.Decode(strm))
  4318.     return FALSE;
  4319.   if (!m_profileAndLevel_HPatHL.Decode(strm))
  4320.     return FALSE;
  4321.   if (HasOptionalField(e_videoBitRate) && !m_videoBitRate.Decode(strm))
  4322.     return FALSE;
  4323.   if (HasOptionalField(e_vbvBufferSize) && !m_vbvBufferSize.Decode(strm))
  4324.     return FALSE;
  4325.   if (HasOptionalField(e_samplesPerLine) && !m_samplesPerLine.Decode(strm))
  4326.     return FALSE;
  4327.   if (HasOptionalField(e_linesPerFrame) && !m_linesPerFrame.Decode(strm))
  4328.     return FALSE;
  4329.   if (HasOptionalField(e_framesPerSecond) && !m_framesPerSecond.Decode(strm))
  4330.     return FALSE;
  4331.   if (HasOptionalField(e_luminanceSampleRate) && !m_luminanceSampleRate.Decode(strm))
  4332.     return FALSE;
  4333.   if (!KnownExtensionDecode(strm, e_videoBadMBsCap, m_videoBadMBsCap))
  4334.     return FALSE;
  4335.  
  4336.   return UnknownExtensionsDecode(strm);
  4337. }
  4338.  
  4339.  
  4340. void H245_H262VideoCapability::Encode(PASN_Stream & strm) const
  4341. {
  4342.   PreambleEncode(strm);
  4343.  
  4344.   m_profileAndLevel_SPatML.Encode(strm);
  4345.   m_profileAndLevel_MPatLL.Encode(strm);
  4346.   m_profileAndLevel_MPatML.Encode(strm);
  4347.   m_profileAndLevel_MPatH_14.Encode(strm);
  4348.   m_profileAndLevel_MPatHL.Encode(strm);
  4349.   m_profileAndLevel_SNRatLL.Encode(strm);
  4350.   m_profileAndLevel_SNRatML.Encode(strm);
  4351.   m_profileAndLevel_SpatialatH_14.Encode(strm);
  4352.   m_profileAndLevel_HPatML.Encode(strm);
  4353.   m_profileAndLevel_HPatH_14.Encode(strm);
  4354.   m_profileAndLevel_HPatHL.Encode(strm);
  4355.   if (HasOptionalField(e_videoBitRate))
  4356.     m_videoBitRate.Encode(strm);
  4357.   if (HasOptionalField(e_vbvBufferSize))
  4358.     m_vbvBufferSize.Encode(strm);
  4359.   if (HasOptionalField(e_samplesPerLine))
  4360.     m_samplesPerLine.Encode(strm);
  4361.   if (HasOptionalField(e_linesPerFrame))
  4362.     m_linesPerFrame.Encode(strm);
  4363.   if (HasOptionalField(e_framesPerSecond))
  4364.     m_framesPerSecond.Encode(strm);
  4365.   if (HasOptionalField(e_luminanceSampleRate))
  4366.     m_luminanceSampleRate.Encode(strm);
  4367.   KnownExtensionEncode(strm, e_videoBadMBsCap, m_videoBadMBsCap);
  4368.  
  4369.   UnknownExtensionsEncode(strm);
  4370. }
  4371.  
  4372.  
  4373. PObject * H245_H262VideoCapability::Clone() const
  4374. {
  4375. #ifndef PASN_LEANANDMEAN
  4376.   PAssert(IsClass(H245_H262VideoCapability::Class()), PInvalidCast);
  4377. #endif
  4378.   return new H245_H262VideoCapability(*this);
  4379. }
  4380.  
  4381.  
  4382. //
  4383. // TransparencyParameters
  4384. //
  4385.  
  4386. H245_TransparencyParameters::H245_TransparencyParameters(unsigned tag, PASN_Object::TagClass tagClass)
  4387.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  4388. {
  4389.   m_presentationOrder.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  4390.   m_offset_x.SetConstraints(PASN_Object::FixedConstraint, -262144, 262143);
  4391.   m_offset_y.SetConstraints(PASN_Object::FixedConstraint, -262144, 262143);
  4392.   m_scale_x.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
  4393.   m_scale_y.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
  4394. }
  4395.  
  4396.  
  4397. #ifndef PASN_NOPRINTON
  4398. void H245_TransparencyParameters::PrintOn(ostream & strm) const
  4399. {
  4400.   int indent = strm.precision() + 2;
  4401.   strm << "{\n";
  4402.   strm << setw(indent+20) << "presentationOrder = " << setprecision(indent) << m_presentationOrder << '\n';
  4403.   strm << setw(indent+11) << "offset_x = " << setprecision(indent) << m_offset_x << '\n';
  4404.   strm << setw(indent+11) << "offset_y = " << setprecision(indent) << m_offset_y << '\n';
  4405.   strm << setw(indent+10) << "scale_x = " << setprecision(indent) << m_scale_x << '\n';
  4406.   strm << setw(indent+10) << "scale_y = " << setprecision(indent) << m_scale_y << '\n';
  4407.   strm << setw(indent-1) << "}";
  4408. }
  4409. #endif
  4410.  
  4411.  
  4412. PObject::Comparison H245_TransparencyParameters::Compare(const PObject & obj) const
  4413. {
  4414. #ifndef PASN_LEANANDMEAN
  4415.   PAssert(IsDescendant(H245_TransparencyParameters::Class()), PInvalidCast);
  4416. #endif
  4417.   const H245_TransparencyParameters & other = (const H245_TransparencyParameters &)obj;
  4418.  
  4419.   Comparison result;
  4420.  
  4421.   if ((result = m_presentationOrder.Compare(other.m_presentationOrder)) != EqualTo)
  4422.     return result;
  4423.   if ((result = m_offset_x.Compare(other.m_offset_x)) != EqualTo)
  4424.     return result;
  4425.   if ((result = m_offset_y.Compare(other.m_offset_y)) != EqualTo)
  4426.     return result;
  4427.   if ((result = m_scale_x.Compare(other.m_scale_x)) != EqualTo)
  4428.     return result;
  4429.   if ((result = m_scale_y.Compare(other.m_scale_y)) != EqualTo)
  4430.     return result;
  4431.  
  4432.   return PASN_Sequence::Compare(other);
  4433. }
  4434.  
  4435.  
  4436. PINDEX H245_TransparencyParameters::GetDataLength() const
  4437. {
  4438.   PINDEX length = 0;
  4439.   length += m_presentationOrder.GetObjectLength();
  4440.   length += m_offset_x.GetObjectLength();
  4441.   length += m_offset_y.GetObjectLength();
  4442.   length += m_scale_x.GetObjectLength();
  4443.   length += m_scale_y.GetObjectLength();
  4444.   return length;
  4445. }
  4446.  
  4447.  
  4448. BOOL H245_TransparencyParameters::Decode(PASN_Stream & strm)
  4449. {
  4450.   if (!PreambleDecode(strm))
  4451.     return FALSE;
  4452.  
  4453.   if (!m_presentationOrder.Decode(strm))
  4454.     return FALSE;
  4455.   if (!m_offset_x.Decode(strm))
  4456.     return FALSE;
  4457.   if (!m_offset_y.Decode(strm))
  4458.     return FALSE;
  4459.   if (!m_scale_x.Decode(strm))
  4460.     return FALSE;
  4461.   if (!m_scale_y.Decode(strm))
  4462.     return FALSE;
  4463.  
  4464.   return UnknownExtensionsDecode(strm);
  4465. }
  4466.  
  4467.  
  4468. void H245_TransparencyParameters::Encode(PASN_Stream & strm) const
  4469. {
  4470.   PreambleEncode(strm);
  4471.  
  4472.   m_presentationOrder.Encode(strm);
  4473.   m_offset_x.Encode(strm);
  4474.   m_offset_y.Encode(strm);
  4475.   m_scale_x.Encode(strm);
  4476.   m_scale_y.Encode(strm);
  4477.  
  4478.   UnknownExtensionsEncode(strm);
  4479. }
  4480.  
  4481.  
  4482. PObject * H245_TransparencyParameters::Clone() const
  4483. {
  4484. #ifndef PASN_LEANANDMEAN
  4485.   PAssert(IsClass(H245_TransparencyParameters::Class()), PInvalidCast);
  4486. #endif
  4487.   return new H245_TransparencyParameters(*this);
  4488. }
  4489.  
  4490.  
  4491. //
  4492. // CustomPictureClockFrequency
  4493. //
  4494.  
  4495. H245_CustomPictureClockFrequency::H245_CustomPictureClockFrequency(unsigned tag, PASN_Object::TagClass tagClass)
  4496.   : PASN_Sequence(tag, tagClass, 5, TRUE, 0)
  4497. {
  4498.   m_clockConversionCode.SetConstraints(PASN_Object::FixedConstraint, 1000, 1001);
  4499.   m_clockDivisor.SetConstraints(PASN_Object::FixedConstraint, 1, 127);
  4500.   m_sqcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
  4501.   m_qcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
  4502.   m_cifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
  4503.   m_cif4MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
  4504.   m_cif16MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
  4505. }
  4506.  
  4507.  
  4508. #ifndef PASN_NOPRINTON
  4509. void H245_CustomPictureClockFrequency::PrintOn(ostream & strm) const
  4510. {
  4511.   int indent = strm.precision() + 2;
  4512.   strm << "{\n";
  4513.   strm << setw(indent+22) << "clockConversionCode = " << setprecision(indent) << m_clockConversionCode << '\n';
  4514.   strm << setw(indent+15) << "clockDivisor = " << setprecision(indent) << m_clockDivisor << '\n';
  4515.   if (HasOptionalField(e_sqcifMPI))
  4516.     strm << setw(indent+11) << "sqcifMPI = " << setprecision(indent) << m_sqcifMPI << '\n';
  4517.   if (HasOptionalField(e_qcifMPI))
  4518.     strm << setw(indent+10) << "qcifMPI = " << setprecision(indent) << m_qcifMPI << '\n';
  4519.   if (HasOptionalField(e_cifMPI))
  4520.     strm << setw(indent+9) << "cifMPI = " << setprecision(indent) << m_cifMPI << '\n';
  4521.   if (HasOptionalField(e_cif4MPI))
  4522.     strm << setw(indent+10) << "cif4MPI = " << setprecision(indent) << m_cif4MPI << '\n';
  4523.   if (HasOptionalField(e_cif16MPI))
  4524.     strm << setw(indent+11) << "cif16MPI = " << setprecision(indent) << m_cif16MPI << '\n';
  4525.   strm << setw(indent-1) << "}";
  4526. }
  4527. #endif
  4528.  
  4529.  
  4530. PObject::Comparison H245_CustomPictureClockFrequency::Compare(const PObject & obj) const
  4531. {
  4532. #ifndef PASN_LEANANDMEAN
  4533.   PAssert(IsDescendant(H245_CustomPictureClockFrequency::Class()), PInvalidCast);
  4534. #endif
  4535.   const H245_CustomPictureClockFrequency & other = (const H245_CustomPictureClockFrequency &)obj;
  4536.  
  4537.   Comparison result;
  4538.  
  4539.   if ((result = m_clockConversionCode.Compare(other.m_clockConversionCode)) != EqualTo)
  4540.     return result;
  4541.   if ((result = m_clockDivisor.Compare(other.m_clockDivisor)) != EqualTo)
  4542.     return result;
  4543.   if ((result = m_sqcifMPI.Compare(other.m_sqcifMPI)) != EqualTo)
  4544.     return result;
  4545.   if ((result = m_qcifMPI.Compare(other.m_qcifMPI)) != EqualTo)
  4546.     return result;
  4547.   if ((result = m_cifMPI.Compare(other.m_cifMPI)) != EqualTo)
  4548.     return result;
  4549.   if ((result = m_cif4MPI.Compare(other.m_cif4MPI)) != EqualTo)
  4550.     return result;
  4551.   if ((result = m_cif16MPI.Compare(other.m_cif16MPI)) != EqualTo)
  4552.     return result;
  4553.  
  4554.   return PASN_Sequence::Compare(other);
  4555. }
  4556.  
  4557.  
  4558. PINDEX H245_CustomPictureClockFrequency::GetDataLength() const
  4559. {
  4560.   PINDEX length = 0;
  4561.   length += m_clockConversionCode.GetObjectLength();
  4562.   length += m_clockDivisor.GetObjectLength();
  4563.   if (HasOptionalField(e_sqcifMPI))
  4564.     length += m_sqcifMPI.GetObjectLength();
  4565.   if (HasOptionalField(e_qcifMPI))
  4566.     length += m_qcifMPI.GetObjectLength();
  4567.   if (HasOptionalField(e_cifMPI))
  4568.     length += m_cifMPI.GetObjectLength();
  4569.   if (HasOptionalField(e_cif4MPI))
  4570.     length += m_cif4MPI.GetObjectLength();
  4571.   if (HasOptionalField(e_cif16MPI))
  4572.     length += m_cif16MPI.GetObjectLength();
  4573.   return length;
  4574. }
  4575.  
  4576.  
  4577. BOOL H245_CustomPictureClockFrequency::Decode(PASN_Stream & strm)
  4578. {
  4579.   if (!PreambleDecode(strm))
  4580.     return FALSE;
  4581.  
  4582.   if (!m_clockConversionCode.Decode(strm))
  4583.     return FALSE;
  4584.   if (!m_clockDivisor.Decode(strm))
  4585.     return FALSE;
  4586.   if (HasOptionalField(e_sqcifMPI) && !m_sqcifMPI.Decode(strm))
  4587.     return FALSE;
  4588.   if (HasOptionalField(e_qcifMPI) && !m_qcifMPI.Decode(strm))
  4589.     return FALSE;
  4590.   if (HasOptionalField(e_cifMPI) && !m_cifMPI.Decode(strm))
  4591.     return FALSE;
  4592.   if (HasOptionalField(e_cif4MPI) && !m_cif4MPI.Decode(strm))
  4593.     return FALSE;
  4594.   if (HasOptionalField(e_cif16MPI) && !m_cif16MPI.Decode(strm))
  4595.     return FALSE;
  4596.  
  4597.   return UnknownExtensionsDecode(strm);
  4598. }
  4599.  
  4600.  
  4601. void H245_CustomPictureClockFrequency::Encode(PASN_Stream & strm) const
  4602. {
  4603.   PreambleEncode(strm);
  4604.  
  4605.   m_clockConversionCode.Encode(strm);
  4606.   m_clockDivisor.Encode(strm);
  4607.   if (HasOptionalField(e_sqcifMPI))
  4608.     m_sqcifMPI.Encode(strm);
  4609.   if (HasOptionalField(e_qcifMPI))
  4610.     m_qcifMPI.Encode(strm);
  4611.   if (HasOptionalField(e_cifMPI))
  4612.     m_cifMPI.Encode(strm);
  4613.   if (HasOptionalField(e_cif4MPI))
  4614.     m_cif4MPI.Encode(strm);
  4615.   if (HasOptionalField(e_cif16MPI))
  4616.     m_cif16MPI.Encode(strm);
  4617.  
  4618.   UnknownExtensionsEncode(strm);
  4619. }
  4620.  
  4621.  
  4622. PObject * H245_CustomPictureClockFrequency::Clone() const
  4623. {
  4624. #ifndef PASN_LEANANDMEAN
  4625.   PAssert(IsClass(H245_CustomPictureClockFrequency::Class()), PInvalidCast);
  4626. #endif
  4627.   return new H245_CustomPictureClockFrequency(*this);
  4628. }
  4629.  
  4630.  
  4631. //
  4632. // H263Version3Options
  4633. //
  4634.  
  4635. H245_H263Version3Options::H245_H263Version3Options(unsigned tag, PASN_Object::TagClass tagClass)
  4636.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  4637. {
  4638. }
  4639.  
  4640.  
  4641. #ifndef PASN_NOPRINTON
  4642. void H245_H263Version3Options::PrintOn(ostream & strm) const
  4643. {
  4644.   int indent = strm.precision() + 2;
  4645.   strm << "{\n";
  4646.   strm << setw(indent+24) << "dataPartitionedSlices = " << setprecision(indent) << m_dataPartitionedSlices << '\n';
  4647.   strm << setw(indent+18) << "fixedPointIDCT0 = " << setprecision(indent) << m_fixedPointIDCT0 << '\n';
  4648.   strm << setw(indent+19) << "interlacedFields = " << setprecision(indent) << m_interlacedFields << '\n';
  4649.   strm << setw(indent+33) << "currentPictureHeaderRepetition = " << setprecision(indent) << m_currentPictureHeaderRepetition << '\n';
  4650.   strm << setw(indent+34) << "previousPictureHeaderRepetition = " << setprecision(indent) << m_previousPictureHeaderRepetition << '\n';
  4651.   strm << setw(indent+30) << "nextPictureHeaderRepetition = " << setprecision(indent) << m_nextPictureHeaderRepetition << '\n';
  4652.   strm << setw(indent+16) << "pictureNumber = " << setprecision(indent) << m_pictureNumber << '\n';
  4653.   strm << setw(indent+25) << "spareReferencePictures = " << setprecision(indent) << m_spareReferencePictures << '\n';
  4654.   strm << setw(indent-1) << "}";
  4655. }
  4656. #endif
  4657.  
  4658.  
  4659. PObject::Comparison H245_H263Version3Options::Compare(const PObject & obj) const
  4660. {
  4661. #ifndef PASN_LEANANDMEAN
  4662.   PAssert(IsDescendant(H245_H263Version3Options::Class()), PInvalidCast);
  4663. #endif
  4664.   const H245_H263Version3Options & other = (const H245_H263Version3Options &)obj;
  4665.  
  4666.   Comparison result;
  4667.  
  4668.   if ((result = m_dataPartitionedSlices.Compare(other.m_dataPartitionedSlices)) != EqualTo)
  4669.     return result;
  4670.   if ((result = m_fixedPointIDCT0.Compare(other.m_fixedPointIDCT0)) != EqualTo)
  4671.     return result;
  4672.   if ((result = m_interlacedFields.Compare(other.m_interlacedFields)) != EqualTo)
  4673.     return result;
  4674.   if ((result = m_currentPictureHeaderRepetition.Compare(other.m_currentPictureHeaderRepetition)) != EqualTo)
  4675.     return result;
  4676.   if ((result = m_previousPictureHeaderRepetition.Compare(other.m_previousPictureHeaderRepetition)) != EqualTo)
  4677.     return result;
  4678.   if ((result = m_nextPictureHeaderRepetition.Compare(other.m_nextPictureHeaderRepetition)) != EqualTo)
  4679.     return result;
  4680.   if ((result = m_pictureNumber.Compare(other.m_pictureNumber)) != EqualTo)
  4681.     return result;
  4682.   if ((result = m_spareReferencePictures.Compare(other.m_spareReferencePictures)) != EqualTo)
  4683.     return result;
  4684.  
  4685.   return PASN_Sequence::Compare(other);
  4686. }
  4687.  
  4688.  
  4689. PINDEX H245_H263Version3Options::GetDataLength() const
  4690. {
  4691.   PINDEX length = 0;
  4692.   length += m_dataPartitionedSlices.GetObjectLength();
  4693.   length += m_fixedPointIDCT0.GetObjectLength();
  4694.   length += m_interlacedFields.GetObjectLength();
  4695.   length += m_currentPictureHeaderRepetition.GetObjectLength();
  4696.   length += m_previousPictureHeaderRepetition.GetObjectLength();
  4697.   length += m_nextPictureHeaderRepetition.GetObjectLength();
  4698.   length += m_pictureNumber.GetObjectLength();
  4699.   length += m_spareReferencePictures.GetObjectLength();
  4700.   return length;
  4701. }
  4702.  
  4703.  
  4704. BOOL H245_H263Version3Options::Decode(PASN_Stream & strm)
  4705. {
  4706.   if (!PreambleDecode(strm))
  4707.     return FALSE;
  4708.  
  4709.   if (!m_dataPartitionedSlices.Decode(strm))
  4710.     return FALSE;
  4711.   if (!m_fixedPointIDCT0.Decode(strm))
  4712.     return FALSE;
  4713.   if (!m_interlacedFields.Decode(strm))
  4714.     return FALSE;
  4715.   if (!m_currentPictureHeaderRepetition.Decode(strm))
  4716.     return FALSE;
  4717.   if (!m_previousPictureHeaderRepetition.Decode(strm))
  4718.     return FALSE;
  4719.   if (!m_nextPictureHeaderRepetition.Decode(strm))
  4720.     return FALSE;
  4721.   if (!m_pictureNumber.Decode(strm))
  4722.     return FALSE;
  4723.   if (!m_spareReferencePictures.Decode(strm))
  4724.     return FALSE;
  4725.  
  4726.   return UnknownExtensionsDecode(strm);
  4727. }
  4728.  
  4729.  
  4730. void H245_H263Version3Options::Encode(PASN_Stream & strm) const
  4731. {
  4732.   PreambleEncode(strm);
  4733.  
  4734.   m_dataPartitionedSlices.Encode(strm);
  4735.   m_fixedPointIDCT0.Encode(strm);
  4736.   m_interlacedFields.Encode(strm);
  4737.   m_currentPictureHeaderRepetition.Encode(strm);
  4738.   m_previousPictureHeaderRepetition.Encode(strm);
  4739.   m_nextPictureHeaderRepetition.Encode(strm);
  4740.   m_pictureNumber.Encode(strm);
  4741.   m_spareReferencePictures.Encode(strm);
  4742.  
  4743.   UnknownExtensionsEncode(strm);
  4744. }
  4745.  
  4746.  
  4747. PObject * H245_H263Version3Options::Clone() const
  4748. {
  4749. #ifndef PASN_LEANANDMEAN
  4750.   PAssert(IsClass(H245_H263Version3Options::Class()), PInvalidCast);
  4751. #endif
  4752.   return new H245_H263Version3Options(*this);
  4753. }
  4754.  
  4755.  
  4756. //
  4757. // IS11172VideoCapability
  4758. //
  4759.  
  4760. H245_IS11172VideoCapability::H245_IS11172VideoCapability(unsigned tag, PASN_Object::TagClass tagClass)
  4761.   : PASN_Sequence(tag, tagClass, 6, TRUE, 1)
  4762. {
  4763.   m_videoBitRate.SetConstraints(PASN_Object::FixedConstraint, 0, 1073741823);
  4764.   m_vbvBufferSize.SetConstraints(PASN_Object::FixedConstraint, 0, 262143);
  4765.   m_samplesPerLine.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
  4766.   m_linesPerFrame.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
  4767.   m_pictureRate.SetConstraints(PASN_Object::FixedConstraint, 0, 15);
  4768.   m_luminanceSampleRate.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  4769.   IncludeOptionalField(e_videoBadMBsCap);
  4770. }
  4771.  
  4772.  
  4773. #ifndef PASN_NOPRINTON
  4774. void H245_IS11172VideoCapability::PrintOn(ostream & strm) const
  4775. {
  4776.   int indent = strm.precision() + 2;
  4777.   strm << "{\n";
  4778.   strm << setw(indent+23) << "constrainedBitstream = " << setprecision(indent) << m_constrainedBitstream << '\n';
  4779.   if (HasOptionalField(e_videoBitRate))
  4780.     strm << setw(indent+15) << "videoBitRate = " << setprecision(indent) << m_videoBitRate << '\n';
  4781.   if (HasOptionalField(e_vbvBufferSize))
  4782.     strm << setw(indent+16) << "vbvBufferSize = " << setprecision(indent) << m_vbvBufferSize << '\n';
  4783.   if (HasOptionalField(e_samplesPerLine))
  4784.     strm << setw(indent+17) << "samplesPerLine = " << setprecision(indent) << m_samplesPerLine << '\n';
  4785.   if (HasOptionalField(e_linesPerFrame))
  4786.     strm << setw(indent+16) << "linesPerFrame = " << setprecision(indent) << m_linesPerFrame << '\n';
  4787.   if (HasOptionalField(e_pictureRate))
  4788.     strm << setw(indent+14) << "pictureRate = " << setprecision(indent) << m_pictureRate << '\n';
  4789.   if (HasOptionalField(e_luminanceSampleRate))
  4790.     strm << setw(indent+22) << "luminanceSampleRate = " << setprecision(indent) << m_luminanceSampleRate << '\n';
  4791.   if (HasOptionalField(e_videoBadMBsCap))
  4792.     strm << setw(indent+17) << "videoBadMBsCap = " << setprecision(indent) << m_videoBadMBsCap << '\n';
  4793.   strm << setw(indent-1) << "}";
  4794. }
  4795. #endif
  4796.  
  4797.  
  4798. PObject::Comparison H245_IS11172VideoCapability::Compare(const PObject & obj) const
  4799. {
  4800. #ifndef PASN_LEANANDMEAN
  4801.   PAssert(IsDescendant(H245_IS11172VideoCapability::Class()), PInvalidCast);
  4802. #endif
  4803.   const H245_IS11172VideoCapability & other = (const H245_IS11172VideoCapability &)obj;
  4804.  
  4805.   Comparison result;
  4806.  
  4807.   if ((result = m_constrainedBitstream.Compare(other.m_constrainedBitstream)) != EqualTo)
  4808.     return result;
  4809.   if ((result = m_videoBitRate.Compare(other.m_videoBitRate)) != EqualTo)
  4810.     return result;
  4811.   if ((result = m_vbvBufferSize.Compare(other.m_vbvBufferSize)) != EqualTo)
  4812.     return result;
  4813.   if ((result = m_samplesPerLine.Compare(other.m_samplesPerLine)) != EqualTo)
  4814.     return result;
  4815.   if ((result = m_linesPerFrame.Compare(other.m_linesPerFrame)) != EqualTo)
  4816.     return result;
  4817.   if ((result = m_pictureRate.Compare(other.m_pictureRate)) != EqualTo)
  4818.     return result;
  4819.   if ((result = m_luminanceSampleRate.Compare(other.m_luminanceSampleRate)) != EqualTo)
  4820.     return result;
  4821.  
  4822.   return PASN_Sequence::Compare(other);
  4823. }
  4824.  
  4825.  
  4826. PINDEX H245_IS11172VideoCapability::GetDataLength() const
  4827. {
  4828.   PINDEX length = 0;
  4829.   length += m_constrainedBitstream.GetObjectLength();
  4830.   if (HasOptionalField(e_videoBitRate))
  4831.     length += m_videoBitRate.GetObjectLength();
  4832.   if (HasOptionalField(e_vbvBufferSize))
  4833.     length += m_vbvBufferSize.GetObjectLength();
  4834.   if (HasOptionalField(e_samplesPerLine))
  4835.     length += m_samplesPerLine.GetObjectLength();
  4836.   if (HasOptionalField(e_linesPerFrame))
  4837.     length += m_linesPerFrame.GetObjectLength();
  4838.   if (HasOptionalField(e_pictureRate))
  4839.     length += m_pictureRate.GetObjectLength();
  4840.   if (HasOptionalField(e_luminanceSampleRate))
  4841.     length += m_luminanceSampleRate.GetObjectLength();
  4842.   return length;
  4843. }
  4844.  
  4845.  
  4846. BOOL H245_IS11172VideoCapability::Decode(PASN_Stream & strm)
  4847. {
  4848.   if (!PreambleDecode(strm))
  4849.     return FALSE;
  4850.  
  4851.   if (!m_constrainedBitstream.Decode(strm))
  4852.     return FALSE;
  4853.   if (HasOptionalField(e_videoBitRate) && !m_videoBitRate.Decode(strm))
  4854.     return FALSE;
  4855.   if (HasOptionalField(e_vbvBufferSize) && !m_vbvBufferSize.Decode(strm))
  4856.     return FALSE;
  4857.   if (HasOptionalField(e_samplesPerLine) && !m_samplesPerLine.Decode(strm))
  4858.     return FALSE;
  4859.   if (HasOptionalField(e_linesPerFrame) && !m_linesPerFrame.Decode(strm))
  4860.     return FALSE;
  4861.   if (HasOptionalField(e_pictureRate) && !m_pictureRate.Decode(strm))
  4862.     return FALSE;
  4863.   if (HasOptionalField(e_luminanceSampleRate) && !m_luminanceSampleRate.Decode(strm))
  4864.     return FALSE;
  4865.   if (!KnownExtensionDecode(strm, e_videoBadMBsCap, m_videoBadMBsCap))
  4866.     return FALSE;
  4867.  
  4868.   return UnknownExtensionsDecode(strm);
  4869. }
  4870.  
  4871.  
  4872. void H245_IS11172VideoCapability::Encode(PASN_Stream & strm) const
  4873. {
  4874.   PreambleEncode(strm);
  4875.  
  4876.   m_constrainedBitstream.Encode(strm);
  4877.   if (HasOptionalField(e_videoBitRate))
  4878.     m_videoBitRate.Encode(strm);
  4879.   if (HasOptionalField(e_vbvBufferSize))
  4880.     m_vbvBufferSize.Encode(strm);
  4881.   if (HasOptionalField(e_samplesPerLine))
  4882.     m_samplesPerLine.Encode(strm);
  4883.   if (HasOptionalField(e_linesPerFrame))
  4884.     m_linesPerFrame.Encode(strm);
  4885.   if (HasOptionalField(e_pictureRate))
  4886.     m_pictureRate.Encode(strm);
  4887.   if (HasOptionalField(e_luminanceSampleRate))
  4888.     m_luminanceSampleRate.Encode(strm);
  4889.   KnownExtensionEncode(strm, e_videoBadMBsCap, m_videoBadMBsCap);
  4890.  
  4891.   UnknownExtensionsEncode(strm);
  4892. }
  4893.  
  4894.  
  4895. PObject * H245_IS11172VideoCapability::Clone() const
  4896. {
  4897. #ifndef PASN_LEANANDMEAN
  4898.   PAssert(IsClass(H245_IS11172VideoCapability::Class()), PInvalidCast);
  4899. #endif
  4900.   return new H245_IS11172VideoCapability(*this);
  4901. }
  4902.  
  4903.  
  4904. //
  4905. // AudioCapability
  4906. //
  4907.  
  4908. H245_AudioCapability::H245_AudioCapability(unsigned tag, PASN_Object::TagClass tagClass)
  4909.   : PASN_Choice(tag, tagClass, 14, TRUE
  4910. #ifndef PASN_NOPRINTON
  4911.       , "nonStandard "
  4912.         "g711Alaw64k "
  4913.         "g711Alaw56k "
  4914.         "g711Ulaw64k "
  4915.         "g711Ulaw56k "
  4916.         "g722_64k "
  4917.         "g722_56k "
  4918.         "g722_48k "
  4919.         "g7231 "
  4920.         "g728 "
  4921.         "g729 "
  4922.         "g729AnnexA "
  4923.         "is11172AudioCapability "
  4924.         "is13818AudioCapability "
  4925.         "g729wAnnexB "
  4926.         "g729AnnexAwAnnexB "
  4927.         "g7231AnnexCCapability "
  4928.         "gsmFullRate "
  4929.         "gsmHalfRate "
  4930.         "gsmEnhancedFullRate "
  4931.         "genericAudioCapability "
  4932.         "g729Extensions "
  4933. #endif
  4934.     )
  4935. {
  4936. }
  4937.  
  4938.  
  4939. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4940. H245_AudioCapability::operator H245_NonStandardParameter &() const
  4941. #else
  4942. H245_AudioCapability::operator H245_NonStandardParameter &()
  4943. {
  4944. #ifndef PASN_LEANANDMEAN
  4945.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  4946. #endif
  4947.   return *(H245_NonStandardParameter *)choice;
  4948. }
  4949.  
  4950.  
  4951. H245_AudioCapability::operator const H245_NonStandardParameter &() const
  4952. #endif
  4953. {
  4954. #ifndef PASN_LEANANDMEAN
  4955.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  4956. #endif
  4957.   return *(H245_NonStandardParameter *)choice;
  4958. }
  4959.  
  4960.  
  4961. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4962. H245_AudioCapability::operator H245_AudioCapability_g7231 &() const
  4963. #else
  4964. H245_AudioCapability::operator H245_AudioCapability_g7231 &()
  4965. {
  4966. #ifndef PASN_LEANANDMEAN
  4967.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability_g7231::Class()), PInvalidCast);
  4968. #endif
  4969.   return *(H245_AudioCapability_g7231 *)choice;
  4970. }
  4971.  
  4972.  
  4973. H245_AudioCapability::operator const H245_AudioCapability_g7231 &() const
  4974. #endif
  4975. {
  4976. #ifndef PASN_LEANANDMEAN
  4977.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability_g7231::Class()), PInvalidCast);
  4978. #endif
  4979.   return *(H245_AudioCapability_g7231 *)choice;
  4980. }
  4981.  
  4982.  
  4983. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4984. H245_AudioCapability::operator H245_IS11172AudioCapability &() const
  4985. #else
  4986. H245_AudioCapability::operator H245_IS11172AudioCapability &()
  4987. {
  4988. #ifndef PASN_LEANANDMEAN
  4989.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172AudioCapability::Class()), PInvalidCast);
  4990. #endif
  4991.   return *(H245_IS11172AudioCapability *)choice;
  4992. }
  4993.  
  4994.  
  4995. H245_AudioCapability::operator const H245_IS11172AudioCapability &() const
  4996. #endif
  4997. {
  4998. #ifndef PASN_LEANANDMEAN
  4999.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172AudioCapability::Class()), PInvalidCast);
  5000. #endif
  5001.   return *(H245_IS11172AudioCapability *)choice;
  5002. }
  5003.  
  5004.  
  5005. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5006. H245_AudioCapability::operator H245_IS13818AudioCapability &() const
  5007. #else
  5008. H245_AudioCapability::operator H245_IS13818AudioCapability &()
  5009. {
  5010. #ifndef PASN_LEANANDMEAN
  5011.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS13818AudioCapability::Class()), PInvalidCast);
  5012. #endif
  5013.   return *(H245_IS13818AudioCapability *)choice;
  5014. }
  5015.  
  5016.  
  5017. H245_AudioCapability::operator const H245_IS13818AudioCapability &() const
  5018. #endif
  5019. {
  5020. #ifndef PASN_LEANANDMEAN
  5021.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS13818AudioCapability::Class()), PInvalidCast);
  5022. #endif
  5023.   return *(H245_IS13818AudioCapability *)choice;
  5024. }
  5025.  
  5026.  
  5027. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5028. H245_AudioCapability::operator H245_G7231AnnexCCapability &() const
  5029. #else
  5030. H245_AudioCapability::operator H245_G7231AnnexCCapability &()
  5031. {
  5032. #ifndef PASN_LEANANDMEAN
  5033.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G7231AnnexCCapability::Class()), PInvalidCast);
  5034. #endif
  5035.   return *(H245_G7231AnnexCCapability *)choice;
  5036. }
  5037.  
  5038.  
  5039. H245_AudioCapability::operator const H245_G7231AnnexCCapability &() const
  5040. #endif
  5041. {
  5042. #ifndef PASN_LEANANDMEAN
  5043.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G7231AnnexCCapability::Class()), PInvalidCast);
  5044. #endif
  5045.   return *(H245_G7231AnnexCCapability *)choice;
  5046. }
  5047.  
  5048.  
  5049. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5050. H245_AudioCapability::operator H245_GSMAudioCapability &() const
  5051. #else
  5052. H245_AudioCapability::operator H245_GSMAudioCapability &()
  5053. {
  5054. #ifndef PASN_LEANANDMEAN
  5055.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GSMAudioCapability::Class()), PInvalidCast);
  5056. #endif
  5057.   return *(H245_GSMAudioCapability *)choice;
  5058. }
  5059.  
  5060.  
  5061. H245_AudioCapability::operator const H245_GSMAudioCapability &() const
  5062. #endif
  5063. {
  5064. #ifndef PASN_LEANANDMEAN
  5065.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GSMAudioCapability::Class()), PInvalidCast);
  5066. #endif
  5067.   return *(H245_GSMAudioCapability *)choice;
  5068. }
  5069.  
  5070.  
  5071. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5072. H245_AudioCapability::operator H245_GenericCapability &() const
  5073. #else
  5074. H245_AudioCapability::operator H245_GenericCapability &()
  5075. {
  5076. #ifndef PASN_LEANANDMEAN
  5077.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  5078. #endif
  5079.   return *(H245_GenericCapability *)choice;
  5080. }
  5081.  
  5082.  
  5083. H245_AudioCapability::operator const H245_GenericCapability &() const
  5084. #endif
  5085. {
  5086. #ifndef PASN_LEANANDMEAN
  5087.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  5088. #endif
  5089.   return *(H245_GenericCapability *)choice;
  5090. }
  5091.  
  5092.  
  5093. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5094. H245_AudioCapability::operator H245_G729Extensions &() const
  5095. #else
  5096. H245_AudioCapability::operator H245_G729Extensions &()
  5097. {
  5098. #ifndef PASN_LEANANDMEAN
  5099.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G729Extensions::Class()), PInvalidCast);
  5100. #endif
  5101.   return *(H245_G729Extensions *)choice;
  5102. }
  5103.  
  5104.  
  5105. H245_AudioCapability::operator const H245_G729Extensions &() const
  5106. #endif
  5107. {
  5108. #ifndef PASN_LEANANDMEAN
  5109.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G729Extensions::Class()), PInvalidCast);
  5110. #endif
  5111.   return *(H245_G729Extensions *)choice;
  5112. }
  5113.  
  5114.  
  5115. BOOL H245_AudioCapability::CreateObject()
  5116. {
  5117.   switch (tag) {
  5118.     case e_nonStandard :
  5119.       choice = new H245_NonStandardParameter();
  5120.       return TRUE;
  5121.     case e_g711Alaw64k :
  5122.       choice = new PASN_Integer();
  5123.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5124.       return TRUE;
  5125.     case e_g711Alaw56k :
  5126.       choice = new PASN_Integer();
  5127.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5128.       return TRUE;
  5129.     case e_g711Ulaw64k :
  5130.       choice = new PASN_Integer();
  5131.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5132.       return TRUE;
  5133.     case e_g711Ulaw56k :
  5134.       choice = new PASN_Integer();
  5135.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5136.       return TRUE;
  5137.     case e_g722_64k :
  5138.       choice = new PASN_Integer();
  5139.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5140.       return TRUE;
  5141.     case e_g722_56k :
  5142.       choice = new PASN_Integer();
  5143.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5144.       return TRUE;
  5145.     case e_g722_48k :
  5146.       choice = new PASN_Integer();
  5147.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5148.       return TRUE;
  5149.     case e_g7231 :
  5150.       choice = new H245_AudioCapability_g7231();
  5151.       return TRUE;
  5152.     case e_g728 :
  5153.       choice = new PASN_Integer();
  5154.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5155.       return TRUE;
  5156.     case e_g729 :
  5157.       choice = new PASN_Integer();
  5158.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5159.       return TRUE;
  5160.     case e_g729AnnexA :
  5161.       choice = new PASN_Integer();
  5162.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5163.       return TRUE;
  5164.     case e_is11172AudioCapability :
  5165.       choice = new H245_IS11172AudioCapability();
  5166.       return TRUE;
  5167.     case e_is13818AudioCapability :
  5168.       choice = new H245_IS13818AudioCapability();
  5169.       return TRUE;
  5170.     case e_g729wAnnexB :
  5171.       choice = new PASN_Integer();
  5172.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5173.       return TRUE;
  5174.     case e_g729AnnexAwAnnexB :
  5175.       choice = new PASN_Integer();
  5176.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5177.       return TRUE;
  5178.     case e_g7231AnnexCCapability :
  5179.       choice = new H245_G7231AnnexCCapability();
  5180.       return TRUE;
  5181.     case e_gsmFullRate :
  5182.     case e_gsmHalfRate :
  5183.     case e_gsmEnhancedFullRate :
  5184.       choice = new H245_GSMAudioCapability();
  5185.       return TRUE;
  5186.     case e_genericAudioCapability :
  5187.       choice = new H245_GenericCapability();
  5188.       return TRUE;
  5189.     case e_g729Extensions :
  5190.       choice = new H245_G729Extensions();
  5191.       return TRUE;
  5192.   }
  5193.  
  5194.   choice = NULL;
  5195.   return FALSE;
  5196. }
  5197.  
  5198.  
  5199. PObject * H245_AudioCapability::Clone() const
  5200. {
  5201. #ifndef PASN_LEANANDMEAN
  5202.   PAssert(IsClass(H245_AudioCapability::Class()), PInvalidCast);
  5203. #endif
  5204.   return new H245_AudioCapability(*this);
  5205. }
  5206.  
  5207.  
  5208. //
  5209. // G729Extensions
  5210. //
  5211.  
  5212. H245_G729Extensions::H245_G729Extensions(unsigned tag, PASN_Object::TagClass tagClass)
  5213.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  5214. {
  5215.   m_audioUnit.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5216. }
  5217.  
  5218.  
  5219. #ifndef PASN_NOPRINTON
  5220. void H245_G729Extensions::PrintOn(ostream & strm) const
  5221. {
  5222.   int indent = strm.precision() + 2;
  5223.   strm << "{\n";
  5224.   if (HasOptionalField(e_audioUnit))
  5225.     strm << setw(indent+12) << "audioUnit = " << setprecision(indent) << m_audioUnit << '\n';
  5226.   strm << setw(indent+9) << "annexA = " << setprecision(indent) << m_annexA << '\n';
  5227.   strm << setw(indent+9) << "annexB = " << setprecision(indent) << m_annexB << '\n';
  5228.   strm << setw(indent+9) << "annexD = " << setprecision(indent) << m_annexD << '\n';
  5229.   strm << setw(indent+9) << "annexE = " << setprecision(indent) << m_annexE << '\n';
  5230.   strm << setw(indent+9) << "annexF = " << setprecision(indent) << m_annexF << '\n';
  5231.   strm << setw(indent+9) << "annexG = " << setprecision(indent) << m_annexG << '\n';
  5232.   strm << setw(indent+9) << "annexH = " << setprecision(indent) << m_annexH << '\n';
  5233.   strm << setw(indent-1) << "}";
  5234. }
  5235. #endif
  5236.  
  5237.  
  5238. PObject::Comparison H245_G729Extensions::Compare(const PObject & obj) const
  5239. {
  5240. #ifndef PASN_LEANANDMEAN
  5241.   PAssert(IsDescendant(H245_G729Extensions::Class()), PInvalidCast);
  5242. #endif
  5243.   const H245_G729Extensions & other = (const H245_G729Extensions &)obj;
  5244.  
  5245.   Comparison result;
  5246.  
  5247.   if ((result = m_audioUnit.Compare(other.m_audioUnit)) != EqualTo)
  5248.     return result;
  5249.   if ((result = m_annexA.Compare(other.m_annexA)) != EqualTo)
  5250.     return result;
  5251.   if ((result = m_annexB.Compare(other.m_annexB)) != EqualTo)
  5252.     return result;
  5253.   if ((result = m_annexD.Compare(other.m_annexD)) != EqualTo)
  5254.     return result;
  5255.   if ((result = m_annexE.Compare(other.m_annexE)) != EqualTo)
  5256.     return result;
  5257.   if ((result = m_annexF.Compare(other.m_annexF)) != EqualTo)
  5258.     return result;
  5259.   if ((result = m_annexG.Compare(other.m_annexG)) != EqualTo)
  5260.     return result;
  5261.   if ((result = m_annexH.Compare(other.m_annexH)) != EqualTo)
  5262.     return result;
  5263.  
  5264.   return PASN_Sequence::Compare(other);
  5265. }
  5266.  
  5267.  
  5268. PINDEX H245_G729Extensions::GetDataLength() const
  5269. {
  5270.   PINDEX length = 0;
  5271.   if (HasOptionalField(e_audioUnit))
  5272.     length += m_audioUnit.GetObjectLength();
  5273.   length += m_annexA.GetObjectLength();
  5274.   length += m_annexB.GetObjectLength();
  5275.   length += m_annexD.GetObjectLength();
  5276.   length += m_annexE.GetObjectLength();
  5277.   length += m_annexF.GetObjectLength();
  5278.   length += m_annexG.GetObjectLength();
  5279.   length += m_annexH.GetObjectLength();
  5280.   return length;
  5281. }
  5282.  
  5283.  
  5284. BOOL H245_G729Extensions::Decode(PASN_Stream & strm)
  5285. {
  5286.   if (!PreambleDecode(strm))
  5287.     return FALSE;
  5288.  
  5289.   if (HasOptionalField(e_audioUnit) && !m_audioUnit.Decode(strm))
  5290.     return FALSE;
  5291.   if (!m_annexA.Decode(strm))
  5292.     return FALSE;
  5293.   if (!m_annexB.Decode(strm))
  5294.     return FALSE;
  5295.   if (!m_annexD.Decode(strm))
  5296.     return FALSE;
  5297.   if (!m_annexE.Decode(strm))
  5298.     return FALSE;
  5299.   if (!m_annexF.Decode(strm))
  5300.     return FALSE;
  5301.   if (!m_annexG.Decode(strm))
  5302.     return FALSE;
  5303.   if (!m_annexH.Decode(strm))
  5304.     return FALSE;
  5305.  
  5306.   return UnknownExtensionsDecode(strm);
  5307. }
  5308.  
  5309.  
  5310. void H245_G729Extensions::Encode(PASN_Stream & strm) const
  5311. {
  5312.   PreambleEncode(strm);
  5313.  
  5314.   if (HasOptionalField(e_audioUnit))
  5315.     m_audioUnit.Encode(strm);
  5316.   m_annexA.Encode(strm);
  5317.   m_annexB.Encode(strm);
  5318.   m_annexD.Encode(strm);
  5319.   m_annexE.Encode(strm);
  5320.   m_annexF.Encode(strm);
  5321.   m_annexG.Encode(strm);
  5322.   m_annexH.Encode(strm);
  5323.  
  5324.   UnknownExtensionsEncode(strm);
  5325. }
  5326.  
  5327.  
  5328. PObject * H245_G729Extensions::Clone() const
  5329. {
  5330. #ifndef PASN_LEANANDMEAN
  5331.   PAssert(IsClass(H245_G729Extensions::Class()), PInvalidCast);
  5332. #endif
  5333.   return new H245_G729Extensions(*this);
  5334. }
  5335.  
  5336.  
  5337. //
  5338. // IS11172AudioCapability
  5339. //
  5340.  
  5341. H245_IS11172AudioCapability::H245_IS11172AudioCapability(unsigned tag, PASN_Object::TagClass tagClass)
  5342.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5343. {
  5344.   m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 448);
  5345. }
  5346.  
  5347.  
  5348. #ifndef PASN_NOPRINTON
  5349. void H245_IS11172AudioCapability::PrintOn(ostream & strm) const
  5350. {
  5351.   int indent = strm.precision() + 2;
  5352.   strm << "{\n";
  5353.   strm << setw(indent+14) << "audioLayer1 = " << setprecision(indent) << m_audioLayer1 << '\n';
  5354.   strm << setw(indent+14) << "audioLayer2 = " << setprecision(indent) << m_audioLayer2 << '\n';
  5355.   strm << setw(indent+14) << "audioLayer3 = " << setprecision(indent) << m_audioLayer3 << '\n';
  5356.   strm << setw(indent+19) << "audioSampling32k = " << setprecision(indent) << m_audioSampling32k << '\n';
  5357.   strm << setw(indent+20) << "audioSampling44k1 = " << setprecision(indent) << m_audioSampling44k1 << '\n';
  5358.   strm << setw(indent+19) << "audioSampling48k = " << setprecision(indent) << m_audioSampling48k << '\n';
  5359.   strm << setw(indent+16) << "singleChannel = " << setprecision(indent) << m_singleChannel << '\n';
  5360.   strm << setw(indent+14) << "twoChannels = " << setprecision(indent) << m_twoChannels << '\n';
  5361.   strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
  5362.   strm << setw(indent-1) << "}";
  5363. }
  5364. #endif
  5365.  
  5366.  
  5367. PObject::Comparison H245_IS11172AudioCapability::Compare(const PObject & obj) const
  5368. {
  5369. #ifndef PASN_LEANANDMEAN
  5370.   PAssert(IsDescendant(H245_IS11172AudioCapability::Class()), PInvalidCast);
  5371. #endif
  5372.   const H245_IS11172AudioCapability & other = (const H245_IS11172AudioCapability &)obj;
  5373.  
  5374.   Comparison result;
  5375.  
  5376.   if ((result = m_audioLayer1.Compare(other.m_audioLayer1)) != EqualTo)
  5377.     return result;
  5378.   if ((result = m_audioLayer2.Compare(other.m_audioLayer2)) != EqualTo)
  5379.     return result;
  5380.   if ((result = m_audioLayer3.Compare(other.m_audioLayer3)) != EqualTo)
  5381.     return result;
  5382.   if ((result = m_audioSampling32k.Compare(other.m_audioSampling32k)) != EqualTo)
  5383.     return result;
  5384.   if ((result = m_audioSampling44k1.Compare(other.m_audioSampling44k1)) != EqualTo)
  5385.     return result;
  5386.   if ((result = m_audioSampling48k.Compare(other.m_audioSampling48k)) != EqualTo)
  5387.     return result;
  5388.   if ((result = m_singleChannel.Compare(other.m_singleChannel)) != EqualTo)
  5389.     return result;
  5390.   if ((result = m_twoChannels.Compare(other.m_twoChannels)) != EqualTo)
  5391.     return result;
  5392.   if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
  5393.     return result;
  5394.  
  5395.   return PASN_Sequence::Compare(other);
  5396. }
  5397.  
  5398.  
  5399. PINDEX H245_IS11172AudioCapability::GetDataLength() const
  5400. {
  5401.   PINDEX length = 0;
  5402.   length += m_audioLayer1.GetObjectLength();
  5403.   length += m_audioLayer2.GetObjectLength();
  5404.   length += m_audioLayer3.GetObjectLength();
  5405.   length += m_audioSampling32k.GetObjectLength();
  5406.   length += m_audioSampling44k1.GetObjectLength();
  5407.   length += m_audioSampling48k.GetObjectLength();
  5408.   length += m_singleChannel.GetObjectLength();
  5409.   length += m_twoChannels.GetObjectLength();
  5410.   length += m_bitRate.GetObjectLength();
  5411.   return length;
  5412. }
  5413.  
  5414.  
  5415. BOOL H245_IS11172AudioCapability::Decode(PASN_Stream & strm)
  5416. {
  5417.   if (!PreambleDecode(strm))
  5418.     return FALSE;
  5419.  
  5420.   if (!m_audioLayer1.Decode(strm))
  5421.     return FALSE;
  5422.   if (!m_audioLayer2.Decode(strm))
  5423.     return FALSE;
  5424.   if (!m_audioLayer3.Decode(strm))
  5425.     return FALSE;
  5426.   if (!m_audioSampling32k.Decode(strm))
  5427.     return FALSE;
  5428.   if (!m_audioSampling44k1.Decode(strm))
  5429.     return FALSE;
  5430.   if (!m_audioSampling48k.Decode(strm))
  5431.     return FALSE;
  5432.   if (!m_singleChannel.Decode(strm))
  5433.     return FALSE;
  5434.   if (!m_twoChannels.Decode(strm))
  5435.     return FALSE;
  5436.   if (!m_bitRate.Decode(strm))
  5437.     return FALSE;
  5438.  
  5439.   return UnknownExtensionsDecode(strm);
  5440. }
  5441.  
  5442.  
  5443. void H245_IS11172AudioCapability::Encode(PASN_Stream & strm) const
  5444. {
  5445.   PreambleEncode(strm);
  5446.  
  5447.   m_audioLayer1.Encode(strm);
  5448.   m_audioLayer2.Encode(strm);
  5449.   m_audioLayer3.Encode(strm);
  5450.   m_audioSampling32k.Encode(strm);
  5451.   m_audioSampling44k1.Encode(strm);
  5452.   m_audioSampling48k.Encode(strm);
  5453.   m_singleChannel.Encode(strm);
  5454.   m_twoChannels.Encode(strm);
  5455.   m_bitRate.Encode(strm);
  5456.  
  5457.   UnknownExtensionsEncode(strm);
  5458. }
  5459.  
  5460.  
  5461. PObject * H245_IS11172AudioCapability::Clone() const
  5462. {
  5463. #ifndef PASN_LEANANDMEAN
  5464.   PAssert(IsClass(H245_IS11172AudioCapability::Class()), PInvalidCast);
  5465. #endif
  5466.   return new H245_IS11172AudioCapability(*this);
  5467. }
  5468.  
  5469.  
  5470. //
  5471. // IS13818AudioCapability
  5472. //
  5473.  
  5474. H245_IS13818AudioCapability::H245_IS13818AudioCapability(unsigned tag, PASN_Object::TagClass tagClass)
  5475.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5476. {
  5477.   m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 1130);
  5478. }
  5479.  
  5480.  
  5481. #ifndef PASN_NOPRINTON
  5482. void H245_IS13818AudioCapability::PrintOn(ostream & strm) const
  5483. {
  5484.   int indent = strm.precision() + 2;
  5485.   strm << "{\n";
  5486.   strm << setw(indent+14) << "audioLayer1 = " << setprecision(indent) << m_audioLayer1 << '\n';
  5487.   strm << setw(indent+14) << "audioLayer2 = " << setprecision(indent) << m_audioLayer2 << '\n';
  5488.   strm << setw(indent+14) << "audioLayer3 = " << setprecision(indent) << m_audioLayer3 << '\n';
  5489.   strm << setw(indent+19) << "audioSampling16k = " << setprecision(indent) << m_audioSampling16k << '\n';
  5490.   strm << setw(indent+21) << "audioSampling22k05 = " << setprecision(indent) << m_audioSampling22k05 << '\n';
  5491.   strm << setw(indent+19) << "audioSampling24k = " << setprecision(indent) << m_audioSampling24k << '\n';
  5492.   strm << setw(indent+19) << "audioSampling32k = " << setprecision(indent) << m_audioSampling32k << '\n';
  5493.   strm << setw(indent+20) << "audioSampling44k1 = " << setprecision(indent) << m_audioSampling44k1 << '\n';
  5494.   strm << setw(indent+19) << "audioSampling48k = " << setprecision(indent) << m_audioSampling48k << '\n';
  5495.   strm << setw(indent+16) << "singleChannel = " << setprecision(indent) << m_singleChannel << '\n';
  5496.   strm << setw(indent+14) << "twoChannels = " << setprecision(indent) << m_twoChannels << '\n';
  5497.   strm << setw(indent+19) << "threeChannels2_1 = " << setprecision(indent) << m_threeChannels2_1 << '\n';
  5498.   strm << setw(indent+19) << "threeChannels3_0 = " << setprecision(indent) << m_threeChannels3_0 << '\n';
  5499.   strm << setw(indent+22) << "fourChannels2_0_2_0 = " << setprecision(indent) << m_fourChannels2_0_2_0 << '\n';
  5500.   strm << setw(indent+18) << "fourChannels2_2 = " << setprecision(indent) << m_fourChannels2_2 << '\n';
  5501.   strm << setw(indent+18) << "fourChannels3_1 = " << setprecision(indent) << m_fourChannels3_1 << '\n';
  5502.   strm << setw(indent+22) << "fiveChannels3_0_2_0 = " << setprecision(indent) << m_fiveChannels3_0_2_0 << '\n';
  5503.   strm << setw(indent+18) << "fiveChannels3_2 = " << setprecision(indent) << m_fiveChannels3_2 << '\n';
  5504.   strm << setw(indent+26) << "lowFrequencyEnhancement = " << setprecision(indent) << m_lowFrequencyEnhancement << '\n';
  5505.   strm << setw(indent+15) << "multilingual = " << setprecision(indent) << m_multilingual << '\n';
  5506.   strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
  5507.   strm << setw(indent-1) << "}";
  5508. }
  5509. #endif
  5510.  
  5511.  
  5512. PObject::Comparison H245_IS13818AudioCapability::Compare(const PObject & obj) const
  5513. {
  5514. #ifndef PASN_LEANANDMEAN
  5515.   PAssert(IsDescendant(H245_IS13818AudioCapability::Class()), PInvalidCast);
  5516. #endif
  5517.   const H245_IS13818AudioCapability & other = (const H245_IS13818AudioCapability &)obj;
  5518.  
  5519.   Comparison result;
  5520.  
  5521.   if ((result = m_audioLayer1.Compare(other.m_audioLayer1)) != EqualTo)
  5522.     return result;
  5523.   if ((result = m_audioLayer2.Compare(other.m_audioLayer2)) != EqualTo)
  5524.     return result;
  5525.   if ((result = m_audioLayer3.Compare(other.m_audioLayer3)) != EqualTo)
  5526.     return result;
  5527.   if ((result = m_audioSampling16k.Compare(other.m_audioSampling16k)) != EqualTo)
  5528.     return result;
  5529.   if ((result = m_audioSampling22k05.Compare(other.m_audioSampling22k05)) != EqualTo)
  5530.     return result;
  5531.   if ((result = m_audioSampling24k.Compare(other.m_audioSampling24k)) != EqualTo)
  5532.     return result;
  5533.   if ((result = m_audioSampling32k.Compare(other.m_audioSampling32k)) != EqualTo)
  5534.     return result;
  5535.   if ((result = m_audioSampling44k1.Compare(other.m_audioSampling44k1)) != EqualTo)
  5536.     return result;
  5537.   if ((result = m_audioSampling48k.Compare(other.m_audioSampling48k)) != EqualTo)
  5538.     return result;
  5539.   if ((result = m_singleChannel.Compare(other.m_singleChannel)) != EqualTo)
  5540.     return result;
  5541.   if ((result = m_twoChannels.Compare(other.m_twoChannels)) != EqualTo)
  5542.     return result;
  5543.   if ((result = m_threeChannels2_1.Compare(other.m_threeChannels2_1)) != EqualTo)
  5544.     return result;
  5545.   if ((result = m_threeChannels3_0.Compare(other.m_threeChannels3_0)) != EqualTo)
  5546.     return result;
  5547.   if ((result = m_fourChannels2_0_2_0.Compare(other.m_fourChannels2_0_2_0)) != EqualTo)
  5548.     return result;
  5549.   if ((result = m_fourChannels2_2.Compare(other.m_fourChannels2_2)) != EqualTo)
  5550.     return result;
  5551.   if ((result = m_fourChannels3_1.Compare(other.m_fourChannels3_1)) != EqualTo)
  5552.     return result;
  5553.   if ((result = m_fiveChannels3_0_2_0.Compare(other.m_fiveChannels3_0_2_0)) != EqualTo)
  5554.     return result;
  5555.   if ((result = m_fiveChannels3_2.Compare(other.m_fiveChannels3_2)) != EqualTo)
  5556.     return result;
  5557.   if ((result = m_lowFrequencyEnhancement.Compare(other.m_lowFrequencyEnhancement)) != EqualTo)
  5558.     return result;
  5559.   if ((result = m_multilingual.Compare(other.m_multilingual)) != EqualTo)
  5560.     return result;
  5561.   if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
  5562.     return result;
  5563.  
  5564.   return PASN_Sequence::Compare(other);
  5565. }
  5566.  
  5567.  
  5568. PINDEX H245_IS13818AudioCapability::GetDataLength() const
  5569. {
  5570.   PINDEX length = 0;
  5571.   length += m_audioLayer1.GetObjectLength();
  5572.   length += m_audioLayer2.GetObjectLength();
  5573.   length += m_audioLayer3.GetObjectLength();
  5574.   length += m_audioSampling16k.GetObjectLength();
  5575.   length += m_audioSampling22k05.GetObjectLength();
  5576.   length += m_audioSampling24k.GetObjectLength();
  5577.   length += m_audioSampling32k.GetObjectLength();
  5578.   length += m_audioSampling44k1.GetObjectLength();
  5579.   length += m_audioSampling48k.GetObjectLength();
  5580.   length += m_singleChannel.GetObjectLength();
  5581.   length += m_twoChannels.GetObjectLength();
  5582.   length += m_threeChannels2_1.GetObjectLength();
  5583.   length += m_threeChannels3_0.GetObjectLength();
  5584.   length += m_fourChannels2_0_2_0.GetObjectLength();
  5585.   length += m_fourChannels2_2.GetObjectLength();
  5586.   length += m_fourChannels3_1.GetObjectLength();
  5587.   length += m_fiveChannels3_0_2_0.GetObjectLength();
  5588.   length += m_fiveChannels3_2.GetObjectLength();
  5589.   length += m_lowFrequencyEnhancement.GetObjectLength();
  5590.   length += m_multilingual.GetObjectLength();
  5591.   length += m_bitRate.GetObjectLength();
  5592.   return length;
  5593. }
  5594.  
  5595.  
  5596. BOOL H245_IS13818AudioCapability::Decode(PASN_Stream & strm)
  5597. {
  5598.   if (!PreambleDecode(strm))
  5599.     return FALSE;
  5600.  
  5601.   if (!m_audioLayer1.Decode(strm))
  5602.     return FALSE;
  5603.   if (!m_audioLayer2.Decode(strm))
  5604.     return FALSE;
  5605.   if (!m_audioLayer3.Decode(strm))
  5606.     return FALSE;
  5607.   if (!m_audioSampling16k.Decode(strm))
  5608.     return FALSE;
  5609.   if (!m_audioSampling22k05.Decode(strm))
  5610.     return FALSE;
  5611.   if (!m_audioSampling24k.Decode(strm))
  5612.     return FALSE;
  5613.   if (!m_audioSampling32k.Decode(strm))
  5614.     return FALSE;
  5615.   if (!m_audioSampling44k1.Decode(strm))
  5616.     return FALSE;
  5617.   if (!m_audioSampling48k.Decode(strm))
  5618.     return FALSE;
  5619.   if (!m_singleChannel.Decode(strm))
  5620.     return FALSE;
  5621.   if (!m_twoChannels.Decode(strm))
  5622.     return FALSE;
  5623.   if (!m_threeChannels2_1.Decode(strm))
  5624.     return FALSE;
  5625.   if (!m_threeChannels3_0.Decode(strm))
  5626.     return FALSE;
  5627.   if (!m_fourChannels2_0_2_0.Decode(strm))
  5628.     return FALSE;
  5629.   if (!m_fourChannels2_2.Decode(strm))
  5630.     return FALSE;
  5631.   if (!m_fourChannels3_1.Decode(strm))
  5632.     return FALSE;
  5633.   if (!m_fiveChannels3_0_2_0.Decode(strm))
  5634.     return FALSE;
  5635.   if (!m_fiveChannels3_2.Decode(strm))
  5636.     return FALSE;
  5637.   if (!m_lowFrequencyEnhancement.Decode(strm))
  5638.     return FALSE;
  5639.   if (!m_multilingual.Decode(strm))
  5640.     return FALSE;
  5641.   if (!m_bitRate.Decode(strm))
  5642.     return FALSE;
  5643.  
  5644.   return UnknownExtensionsDecode(strm);
  5645. }
  5646.  
  5647.  
  5648. void H245_IS13818AudioCapability::Encode(PASN_Stream & strm) const
  5649. {
  5650.   PreambleEncode(strm);
  5651.  
  5652.   m_audioLayer1.Encode(strm);
  5653.   m_audioLayer2.Encode(strm);
  5654.   m_audioLayer3.Encode(strm);
  5655.   m_audioSampling16k.Encode(strm);
  5656.   m_audioSampling22k05.Encode(strm);
  5657.   m_audioSampling24k.Encode(strm);
  5658.   m_audioSampling32k.Encode(strm);
  5659.   m_audioSampling44k1.Encode(strm);
  5660.   m_audioSampling48k.Encode(strm);
  5661.   m_singleChannel.Encode(strm);
  5662.   m_twoChannels.Encode(strm);
  5663.   m_threeChannels2_1.Encode(strm);
  5664.   m_threeChannels3_0.Encode(strm);
  5665.   m_fourChannels2_0_2_0.Encode(strm);
  5666.   m_fourChannels2_2.Encode(strm);
  5667.   m_fourChannels3_1.Encode(strm);
  5668.   m_fiveChannels3_0_2_0.Encode(strm);
  5669.   m_fiveChannels3_2.Encode(strm);
  5670.   m_lowFrequencyEnhancement.Encode(strm);
  5671.   m_multilingual.Encode(strm);
  5672.   m_bitRate.Encode(strm);
  5673.  
  5674.   UnknownExtensionsEncode(strm);
  5675. }
  5676.  
  5677.  
  5678. PObject * H245_IS13818AudioCapability::Clone() const
  5679. {
  5680. #ifndef PASN_LEANANDMEAN
  5681.   PAssert(IsClass(H245_IS13818AudioCapability::Class()), PInvalidCast);
  5682. #endif
  5683.   return new H245_IS13818AudioCapability(*this);
  5684. }
  5685.  
  5686.  
  5687. //
  5688. // GSMAudioCapability
  5689. //
  5690.  
  5691. H245_GSMAudioCapability::H245_GSMAudioCapability(unsigned tag, PASN_Object::TagClass tagClass)
  5692.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5693. {
  5694.   m_audioUnitSize.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5695. }
  5696.  
  5697.  
  5698. #ifndef PASN_NOPRINTON
  5699. void H245_GSMAudioCapability::PrintOn(ostream & strm) const
  5700. {
  5701.   int indent = strm.precision() + 2;
  5702.   strm << "{\n";
  5703.   strm << setw(indent+16) << "audioUnitSize = " << setprecision(indent) << m_audioUnitSize << '\n';
  5704.   strm << setw(indent+15) << "comfortNoise = " << setprecision(indent) << m_comfortNoise << '\n';
  5705.   strm << setw(indent+12) << "scrambled = " << setprecision(indent) << m_scrambled << '\n';
  5706.   strm << setw(indent-1) << "}";
  5707. }
  5708. #endif
  5709.  
  5710.  
  5711. PObject::Comparison H245_GSMAudioCapability::Compare(const PObject & obj) const
  5712. {
  5713. #ifndef PASN_LEANANDMEAN
  5714.   PAssert(IsDescendant(H245_GSMAudioCapability::Class()), PInvalidCast);
  5715. #endif
  5716.   const H245_GSMAudioCapability & other = (const H245_GSMAudioCapability &)obj;
  5717.  
  5718.   Comparison result;
  5719.  
  5720.   if ((result = m_audioUnitSize.Compare(other.m_audioUnitSize)) != EqualTo)
  5721.     return result;
  5722.   if ((result = m_comfortNoise.Compare(other.m_comfortNoise)) != EqualTo)
  5723.     return result;
  5724.   if ((result = m_scrambled.Compare(other.m_scrambled)) != EqualTo)
  5725.     return result;
  5726.  
  5727.   return PASN_Sequence::Compare(other);
  5728. }
  5729.  
  5730.  
  5731. PINDEX H245_GSMAudioCapability::GetDataLength() const
  5732. {
  5733.   PINDEX length = 0;
  5734.   length += m_audioUnitSize.GetObjectLength();
  5735.   length += m_comfortNoise.GetObjectLength();
  5736.   length += m_scrambled.GetObjectLength();
  5737.   return length;
  5738. }
  5739.  
  5740.  
  5741. BOOL H245_GSMAudioCapability::Decode(PASN_Stream & strm)
  5742. {
  5743.   if (!PreambleDecode(strm))
  5744.     return FALSE;
  5745.  
  5746.   if (!m_audioUnitSize.Decode(strm))
  5747.     return FALSE;
  5748.   if (!m_comfortNoise.Decode(strm))
  5749.     return FALSE;
  5750.   if (!m_scrambled.Decode(strm))
  5751.     return FALSE;
  5752.  
  5753.   return UnknownExtensionsDecode(strm);
  5754. }
  5755.  
  5756.  
  5757. void H245_GSMAudioCapability::Encode(PASN_Stream & strm) const
  5758. {
  5759.   PreambleEncode(strm);
  5760.  
  5761.   m_audioUnitSize.Encode(strm);
  5762.   m_comfortNoise.Encode(strm);
  5763.   m_scrambled.Encode(strm);
  5764.  
  5765.   UnknownExtensionsEncode(strm);
  5766. }
  5767.  
  5768.  
  5769. PObject * H245_GSMAudioCapability::Clone() const
  5770. {
  5771. #ifndef PASN_LEANANDMEAN
  5772.   PAssert(IsClass(H245_GSMAudioCapability::Class()), PInvalidCast);
  5773. #endif
  5774.   return new H245_GSMAudioCapability(*this);
  5775. }
  5776.  
  5777.  
  5778. //
  5779. // DataProtocolCapability
  5780. //
  5781.  
  5782. H245_DataProtocolCapability::H245_DataProtocolCapability(unsigned tag, PASN_Object::TagClass tagClass)
  5783.   : PASN_Choice(tag, tagClass, 7, TRUE
  5784. #ifndef PASN_NOPRINTON
  5785.       , "nonStandard "
  5786.         "v14buffered "
  5787.         "v42lapm "
  5788.         "hdlcFrameTunnelling "
  5789.         "h310SeparateVCStack "
  5790.         "h310SingleVCStack "
  5791.         "transparent "
  5792.         "segmentationAndReassembly "
  5793.         "hdlcFrameTunnelingwSAR "
  5794.         "v120 "
  5795.         "separateLANStack "
  5796.         "v76wCompression "
  5797.         "tcp "
  5798.         "udp "
  5799. #endif
  5800.     )
  5801. {
  5802. }
  5803.  
  5804.  
  5805. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5806. H245_DataProtocolCapability::operator H245_NonStandardParameter &() const
  5807. #else
  5808. H245_DataProtocolCapability::operator H245_NonStandardParameter &()
  5809. {
  5810. #ifndef PASN_LEANANDMEAN
  5811.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  5812. #endif
  5813.   return *(H245_NonStandardParameter *)choice;
  5814. }
  5815.  
  5816.  
  5817. H245_DataProtocolCapability::operator const H245_NonStandardParameter &() const
  5818. #endif
  5819. {
  5820. #ifndef PASN_LEANANDMEAN
  5821.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  5822. #endif
  5823.   return *(H245_NonStandardParameter *)choice;
  5824. }
  5825.  
  5826.  
  5827. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5828. H245_DataProtocolCapability::operator H245_DataProtocolCapability_v76wCompression &() const
  5829. #else
  5830. H245_DataProtocolCapability::operator H245_DataProtocolCapability_v76wCompression &()
  5831. {
  5832. #ifndef PASN_LEANANDMEAN
  5833.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataProtocolCapability_v76wCompression::Class()), PInvalidCast);
  5834. #endif
  5835.   return *(H245_DataProtocolCapability_v76wCompression *)choice;
  5836. }
  5837.  
  5838.  
  5839. H245_DataProtocolCapability::operator const H245_DataProtocolCapability_v76wCompression &() const
  5840. #endif
  5841. {
  5842. #ifndef PASN_LEANANDMEAN
  5843.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataProtocolCapability_v76wCompression::Class()), PInvalidCast);
  5844. #endif
  5845.   return *(H245_DataProtocolCapability_v76wCompression *)choice;
  5846. }
  5847.  
  5848.  
  5849. BOOL H245_DataProtocolCapability::CreateObject()
  5850. {
  5851.   switch (tag) {
  5852.     case e_nonStandard :
  5853.       choice = new H245_NonStandardParameter();
  5854.       return TRUE;
  5855.     case e_v14buffered :
  5856.     case e_v42lapm :
  5857.     case e_hdlcFrameTunnelling :
  5858.     case e_h310SeparateVCStack :
  5859.     case e_h310SingleVCStack :
  5860.     case e_transparent :
  5861.     case e_segmentationAndReassembly :
  5862.     case e_hdlcFrameTunnelingwSAR :
  5863.     case e_v120 :
  5864.     case e_separateLANStack :
  5865.     case e_tcp :
  5866.     case e_udp :
  5867.       choice = new PASN_Null();
  5868.       return TRUE;
  5869.     case e_v76wCompression :
  5870.       choice = new H245_DataProtocolCapability_v76wCompression();
  5871.       return TRUE;
  5872.   }
  5873.  
  5874.   choice = NULL;
  5875.   return FALSE;
  5876. }
  5877.  
  5878.  
  5879. PObject * H245_DataProtocolCapability::Clone() const
  5880. {
  5881. #ifndef PASN_LEANANDMEAN
  5882.   PAssert(IsClass(H245_DataProtocolCapability::Class()), PInvalidCast);
  5883. #endif
  5884.   return new H245_DataProtocolCapability(*this);
  5885. }
  5886.  
  5887.  
  5888. //
  5889. // CompressionType
  5890. //
  5891.  
  5892. H245_CompressionType::H245_CompressionType(unsigned tag, PASN_Object::TagClass tagClass)
  5893.   : PASN_Choice(tag, tagClass, 1, TRUE
  5894. #ifndef PASN_NOPRINTON
  5895.       , "v42bis "
  5896. #endif
  5897.     )
  5898. {
  5899. }
  5900.  
  5901.  
  5902. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5903. H245_CompressionType::operator H245_V42bis &() const
  5904. #else
  5905. H245_CompressionType::operator H245_V42bis &()
  5906. {
  5907. #ifndef PASN_LEANANDMEAN
  5908.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V42bis::Class()), PInvalidCast);
  5909. #endif
  5910.   return *(H245_V42bis *)choice;
  5911. }
  5912.  
  5913.  
  5914. H245_CompressionType::operator const H245_V42bis &() const
  5915. #endif
  5916. {
  5917. #ifndef PASN_LEANANDMEAN
  5918.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V42bis::Class()), PInvalidCast);
  5919. #endif
  5920.   return *(H245_V42bis *)choice;
  5921. }
  5922.  
  5923.  
  5924. BOOL H245_CompressionType::CreateObject()
  5925. {
  5926.   switch (tag) {
  5927.     case e_v42bis :
  5928.       choice = new H245_V42bis();
  5929.       return TRUE;
  5930.   }
  5931.  
  5932.   choice = NULL;
  5933.   return FALSE;
  5934. }
  5935.  
  5936.  
  5937. PObject * H245_CompressionType::Clone() const
  5938. {
  5939. #ifndef PASN_LEANANDMEAN
  5940.   PAssert(IsClass(H245_CompressionType::Class()), PInvalidCast);
  5941. #endif
  5942.   return new H245_CompressionType(*this);
  5943. }
  5944.  
  5945.  
  5946. //
  5947. // V42bis
  5948. //
  5949.  
  5950. H245_V42bis::H245_V42bis(unsigned tag, PASN_Object::TagClass tagClass)
  5951.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5952. {
  5953.   m_numberOfCodewords.SetConstraints(PASN_Object::FixedConstraint, 1, 65536);
  5954.   m_maximumStringLength.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  5955. }
  5956.  
  5957.  
  5958. #ifndef PASN_NOPRINTON
  5959. void H245_V42bis::PrintOn(ostream & strm) const
  5960. {
  5961.   int indent = strm.precision() + 2;
  5962.   strm << "{\n";
  5963.   strm << setw(indent+20) << "numberOfCodewords = " << setprecision(indent) << m_numberOfCodewords << '\n';
  5964.   strm << setw(indent+22) << "maximumStringLength = " << setprecision(indent) << m_maximumStringLength << '\n';
  5965.   strm << setw(indent-1) << "}";
  5966. }
  5967. #endif
  5968.  
  5969.  
  5970. PObject::Comparison H245_V42bis::Compare(const PObject & obj) const
  5971. {
  5972. #ifndef PASN_LEANANDMEAN
  5973.   PAssert(IsDescendant(H245_V42bis::Class()), PInvalidCast);
  5974. #endif
  5975.   const H245_V42bis & other = (const H245_V42bis &)obj;
  5976.  
  5977.   Comparison result;
  5978.  
  5979.   if ((result = m_numberOfCodewords.Compare(other.m_numberOfCodewords)) != EqualTo)
  5980.     return result;
  5981.   if ((result = m_maximumStringLength.Compare(other.m_maximumStringLength)) != EqualTo)
  5982.     return result;
  5983.  
  5984.   return PASN_Sequence::Compare(other);
  5985. }
  5986.  
  5987.  
  5988. PINDEX H245_V42bis::GetDataLength() const
  5989. {
  5990.   PINDEX length = 0;
  5991.   length += m_numberOfCodewords.GetObjectLength();
  5992.   length += m_maximumStringLength.GetObjectLength();
  5993.   return length;
  5994. }
  5995.  
  5996.  
  5997. BOOL H245_V42bis::Decode(PASN_Stream & strm)
  5998. {
  5999.   if (!PreambleDecode(strm))
  6000.     return FALSE;
  6001.  
  6002.   if (!m_numberOfCodewords.Decode(strm))
  6003.     return FALSE;
  6004.   if (!m_maximumStringLength.Decode(strm))
  6005.     return FALSE;
  6006.  
  6007.   return UnknownExtensionsDecode(strm);
  6008. }
  6009.  
  6010.  
  6011. void H245_V42bis::Encode(PASN_Stream & strm) const
  6012. {
  6013.   PreambleEncode(strm);
  6014.  
  6015.   m_numberOfCodewords.Encode(strm);
  6016.   m_maximumStringLength.Encode(strm);
  6017.  
  6018.   UnknownExtensionsEncode(strm);
  6019. }
  6020.  
  6021.  
  6022. PObject * H245_V42bis::Clone() const
  6023. {
  6024. #ifndef PASN_LEANANDMEAN
  6025.   PAssert(IsClass(H245_V42bis::Class()), PInvalidCast);
  6026. #endif
  6027.   return new H245_V42bis(*this);
  6028. }
  6029.  
  6030.  
  6031. //
  6032. // T84Profile
  6033. //
  6034.  
  6035. H245_T84Profile::H245_T84Profile(unsigned tag, PASN_Object::TagClass tagClass)
  6036.   : PASN_Choice(tag, tagClass, 2, FALSE
  6037. #ifndef PASN_NOPRINTON
  6038.       , "t84Unrestricted "
  6039.         "t84Restricted "
  6040. #endif
  6041.     )
  6042. {
  6043. }
  6044.  
  6045.  
  6046. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6047. H245_T84Profile::operator H245_T84Profile_t84Restricted &() const
  6048. #else
  6049. H245_T84Profile::operator H245_T84Profile_t84Restricted &()
  6050. {
  6051. #ifndef PASN_LEANANDMEAN
  6052.   PAssert(PAssertNULL(choice)->IsDescendant(H245_T84Profile_t84Restricted::Class()), PInvalidCast);
  6053. #endif
  6054.   return *(H245_T84Profile_t84Restricted *)choice;
  6055. }
  6056.  
  6057.  
  6058. H245_T84Profile::operator const H245_T84Profile_t84Restricted &() const
  6059. #endif
  6060. {
  6061. #ifndef PASN_LEANANDMEAN
  6062.   PAssert(PAssertNULL(choice)->IsDescendant(H245_T84Profile_t84Restricted::Class()), PInvalidCast);
  6063. #endif
  6064.   return *(H245_T84Profile_t84Restricted *)choice;
  6065. }
  6066.  
  6067.  
  6068. BOOL H245_T84Profile::CreateObject()
  6069. {
  6070.   switch (tag) {
  6071.     case e_t84Unrestricted :
  6072.       choice = new PASN_Null();
  6073.       return TRUE;
  6074.     case e_t84Restricted :
  6075.       choice = new H245_T84Profile_t84Restricted();
  6076.       return TRUE;
  6077.   }
  6078.  
  6079.   choice = NULL;
  6080.   return FALSE;
  6081. }
  6082.  
  6083.  
  6084. PObject * H245_T84Profile::Clone() const
  6085. {
  6086. #ifndef PASN_LEANANDMEAN
  6087.   PAssert(IsClass(H245_T84Profile::Class()), PInvalidCast);
  6088. #endif
  6089.   return new H245_T84Profile(*this);
  6090. }
  6091.  
  6092.  
  6093. //
  6094. // T38FaxRateManagement
  6095. //
  6096.  
  6097. H245_T38FaxRateManagement::H245_T38FaxRateManagement(unsigned tag, PASN_Object::TagClass tagClass)
  6098.   : PASN_Choice(tag, tagClass, 2, TRUE
  6099. #ifndef PASN_NOPRINTON
  6100.       , "localTCF "
  6101.         "transferredTCF "
  6102. #endif
  6103.     )
  6104. {
  6105. }
  6106.  
  6107.  
  6108. BOOL H245_T38FaxRateManagement::CreateObject()
  6109. {
  6110.   choice = (tag <= e_transferredTCF) ? new PASN_Null() : NULL;
  6111.   return choice != NULL;
  6112. }
  6113.  
  6114.  
  6115. PObject * H245_T38FaxRateManagement::Clone() const
  6116. {
  6117. #ifndef PASN_LEANANDMEAN
  6118.   PAssert(IsClass(H245_T38FaxRateManagement::Class()), PInvalidCast);
  6119. #endif
  6120.   return new H245_T38FaxRateManagement(*this);
  6121. }
  6122.  
  6123.  
  6124. //
  6125. // T38FaxTcpOptions
  6126. //
  6127.  
  6128. H245_T38FaxTcpOptions::H245_T38FaxTcpOptions(unsigned tag, PASN_Object::TagClass tagClass)
  6129.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  6130. {
  6131. }
  6132.  
  6133.  
  6134. #ifndef PASN_NOPRINTON
  6135. void H245_T38FaxTcpOptions::PrintOn(ostream & strm) const
  6136. {
  6137.   int indent = strm.precision() + 2;
  6138.   strm << "{\n";
  6139.   strm << setw(indent+26) << "t38TCPBidirectionalMode = " << setprecision(indent) << m_t38TCPBidirectionalMode << '\n';
  6140.   strm << setw(indent-1) << "}";
  6141. }
  6142. #endif
  6143.  
  6144.  
  6145. PObject::Comparison H245_T38FaxTcpOptions::Compare(const PObject & obj) const
  6146. {
  6147. #ifndef PASN_LEANANDMEAN
  6148.   PAssert(IsDescendant(H245_T38FaxTcpOptions::Class()), PInvalidCast);
  6149. #endif
  6150.   const H245_T38FaxTcpOptions & other = (const H245_T38FaxTcpOptions &)obj;
  6151.  
  6152.   Comparison result;
  6153.  
  6154.   if ((result = m_t38TCPBidirectionalMode.Compare(other.m_t38TCPBidirectionalMode)) != EqualTo)
  6155.     return result;
  6156.  
  6157.   return PASN_Sequence::Compare(other);
  6158. }
  6159.  
  6160.  
  6161. PINDEX H245_T38FaxTcpOptions::GetDataLength() const
  6162. {
  6163.   PINDEX length = 0;
  6164.   length += m_t38TCPBidirectionalMode.GetObjectLength();
  6165.   return length;
  6166. }
  6167.  
  6168.  
  6169. BOOL H245_T38FaxTcpOptions::Decode(PASN_Stream & strm)
  6170. {
  6171.   if (!PreambleDecode(strm))
  6172.     return FALSE;
  6173.  
  6174.   if (!m_t38TCPBidirectionalMode.Decode(strm))
  6175.     return FALSE;
  6176.  
  6177.   return UnknownExtensionsDecode(strm);
  6178. }
  6179.  
  6180.  
  6181. void H245_T38FaxTcpOptions::Encode(PASN_Stream & strm) const
  6182. {
  6183.   PreambleEncode(strm);
  6184.  
  6185.   m_t38TCPBidirectionalMode.Encode(strm);
  6186.  
  6187.   UnknownExtensionsEncode(strm);
  6188. }
  6189.  
  6190.  
  6191. PObject * H245_T38FaxTcpOptions::Clone() const
  6192. {
  6193. #ifndef PASN_LEANANDMEAN
  6194.   PAssert(IsClass(H245_T38FaxTcpOptions::Class()), PInvalidCast);
  6195. #endif
  6196.   return new H245_T38FaxTcpOptions(*this);
  6197. }
  6198.  
  6199.  
  6200. //
  6201. // EncryptionCapability
  6202. //
  6203.  
  6204. H245_EncryptionCapability::H245_EncryptionCapability(unsigned tag, PASN_Object::TagClass tagClass)
  6205.   : PASN_Array(tag, tagClass)
  6206. {
  6207.   SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  6208. }
  6209.  
  6210.  
  6211. PASN_Object * H245_EncryptionCapability::CreateObject() const
  6212. {
  6213.   return new H245_MediaEncryptionAlgorithm;
  6214. }
  6215.  
  6216.  
  6217. H245_MediaEncryptionAlgorithm & H245_EncryptionCapability::operator[](PINDEX i) const
  6218. {
  6219.   return (H245_MediaEncryptionAlgorithm &)array[i];
  6220. }
  6221.  
  6222.  
  6223. PObject * H245_EncryptionCapability::Clone() const
  6224. {
  6225. #ifndef PASN_LEANANDMEAN
  6226.   PAssert(IsClass(H245_EncryptionCapability::Class()), PInvalidCast);
  6227. #endif
  6228.   return new H245_EncryptionCapability(*this);
  6229. }
  6230.  
  6231.  
  6232. //
  6233. // MediaEncryptionAlgorithm
  6234. //
  6235.  
  6236. H245_MediaEncryptionAlgorithm::H245_MediaEncryptionAlgorithm(unsigned tag, PASN_Object::TagClass tagClass)
  6237.   : PASN_Choice(tag, tagClass, 2, TRUE
  6238. #ifndef PASN_NOPRINTON
  6239.       , "nonStandard "
  6240.         "algorithm "
  6241. #endif
  6242.     )
  6243. {
  6244. }
  6245.  
  6246.  
  6247. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6248. H245_MediaEncryptionAlgorithm::operator H245_NonStandardParameter &() const
  6249. #else
  6250. H245_MediaEncryptionAlgorithm::operator H245_NonStandardParameter &()
  6251. {
  6252. #ifndef PASN_LEANANDMEAN
  6253.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6254. #endif
  6255.   return *(H245_NonStandardParameter *)choice;
  6256. }
  6257.  
  6258.  
  6259. H245_MediaEncryptionAlgorithm::operator const H245_NonStandardParameter &() const
  6260. #endif
  6261. {
  6262. #ifndef PASN_LEANANDMEAN
  6263.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6264. #endif
  6265.   return *(H245_NonStandardParameter *)choice;
  6266. }
  6267.  
  6268.  
  6269. BOOL H245_MediaEncryptionAlgorithm::CreateObject()
  6270. {
  6271.   switch (tag) {
  6272.     case e_nonStandard :
  6273.       choice = new H245_NonStandardParameter();
  6274.       return TRUE;
  6275.     case e_algorithm :
  6276.       choice = new PASN_ObjectId();
  6277.       return TRUE;
  6278.   }
  6279.  
  6280.   choice = NULL;
  6281.   return FALSE;
  6282. }
  6283.  
  6284.  
  6285. PObject * H245_MediaEncryptionAlgorithm::Clone() const
  6286. {
  6287. #ifndef PASN_LEANANDMEAN
  6288.   PAssert(IsClass(H245_MediaEncryptionAlgorithm::Class()), PInvalidCast);
  6289. #endif
  6290.   return new H245_MediaEncryptionAlgorithm(*this);
  6291. }
  6292.  
  6293.  
  6294. //
  6295. // UserInputCapability
  6296. //
  6297.  
  6298. H245_UserInputCapability::H245_UserInputCapability(unsigned tag, PASN_Object::TagClass tagClass)
  6299.   : PASN_Choice(tag, tagClass, 6, TRUE
  6300. #ifndef PASN_NOPRINTON
  6301.       , "nonStandard "
  6302.         "basicString "
  6303.         "iA5String "
  6304.         "generalString "
  6305.         "dtmf "
  6306.         "hookflash "
  6307.         "extendedAlphanumeric "
  6308. #endif
  6309.     )
  6310. {
  6311. }
  6312.  
  6313.  
  6314. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6315. H245_UserInputCapability::operator H245_ArrayOf_NonStandardParameter &() const
  6316. #else
  6317. H245_UserInputCapability::operator H245_ArrayOf_NonStandardParameter &()
  6318. {
  6319. #ifndef PASN_LEANANDMEAN
  6320.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_NonStandardParameter::Class()), PInvalidCast);
  6321. #endif
  6322.   return *(H245_ArrayOf_NonStandardParameter *)choice;
  6323. }
  6324.  
  6325.  
  6326. H245_UserInputCapability::operator const H245_ArrayOf_NonStandardParameter &() const
  6327. #endif
  6328. {
  6329. #ifndef PASN_LEANANDMEAN
  6330.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_NonStandardParameter::Class()), PInvalidCast);
  6331. #endif
  6332.   return *(H245_ArrayOf_NonStandardParameter *)choice;
  6333. }
  6334.  
  6335.  
  6336. BOOL H245_UserInputCapability::CreateObject()
  6337. {
  6338.   switch (tag) {
  6339.     case e_nonStandard :
  6340.       choice = new H245_ArrayOf_NonStandardParameter();
  6341.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 16);
  6342.       return TRUE;
  6343.     case e_basicString :
  6344.     case e_iA5String :
  6345.     case e_generalString :
  6346.     case e_dtmf :
  6347.     case e_hookflash :
  6348.     case e_extendedAlphanumeric :
  6349.       choice = new PASN_Null();
  6350.       return TRUE;
  6351.   }
  6352.  
  6353.   choice = NULL;
  6354.   return FALSE;
  6355. }
  6356.  
  6357.  
  6358. PObject * H245_UserInputCapability::Clone() const
  6359. {
  6360. #ifndef PASN_LEANANDMEAN
  6361.   PAssert(IsClass(H245_UserInputCapability::Class()), PInvalidCast);
  6362. #endif
  6363.   return new H245_UserInputCapability(*this);
  6364. }
  6365.  
  6366.  
  6367. //
  6368. // CapabilityIdentifier
  6369. //
  6370.  
  6371. H245_CapabilityIdentifier::H245_CapabilityIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  6372.   : PASN_Choice(tag, tagClass, 4, TRUE
  6373. #ifndef PASN_NOPRINTON
  6374.       , "standard "
  6375.         "h221NonStandard "
  6376.         "uuid "
  6377.         "domainBased "
  6378. #endif
  6379.     )
  6380. {
  6381. }
  6382.  
  6383.  
  6384. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6385. H245_CapabilityIdentifier::operator H245_NonStandardParameter &() const
  6386. #else
  6387. H245_CapabilityIdentifier::operator H245_NonStandardParameter &()
  6388. {
  6389. #ifndef PASN_LEANANDMEAN
  6390.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6391. #endif
  6392.   return *(H245_NonStandardParameter *)choice;
  6393. }
  6394.  
  6395.  
  6396. H245_CapabilityIdentifier::operator const H245_NonStandardParameter &() const
  6397. #endif
  6398. {
  6399. #ifndef PASN_LEANANDMEAN
  6400.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6401. #endif
  6402.   return *(H245_NonStandardParameter *)choice;
  6403. }
  6404.  
  6405.  
  6406. BOOL H245_CapabilityIdentifier::CreateObject()
  6407. {
  6408.   switch (tag) {
  6409.     case e_standard :
  6410.       choice = new PASN_ObjectId();
  6411.       return TRUE;
  6412.     case e_h221NonStandard :
  6413.       choice = new H245_NonStandardParameter();
  6414.       return TRUE;
  6415.     case e_uuid :
  6416.       choice = new PASN_OctetString();
  6417.       choice->SetConstraints(PASN_Object::FixedConstraint, 16);
  6418.       return TRUE;
  6419.     case e_domainBased :
  6420.       choice = new PASN_IA5String();
  6421.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 64);
  6422.       return TRUE;
  6423.   }
  6424.  
  6425.   choice = NULL;
  6426.   return FALSE;
  6427. }
  6428.  
  6429.  
  6430. PObject * H245_CapabilityIdentifier::Clone() const
  6431. {
  6432. #ifndef PASN_LEANANDMEAN
  6433.   PAssert(IsClass(H245_CapabilityIdentifier::Class()), PInvalidCast);
  6434. #endif
  6435.   return new H245_CapabilityIdentifier(*this);
  6436. }
  6437.  
  6438.  
  6439. //
  6440. // ParameterIdentifier
  6441. //
  6442.  
  6443. H245_ParameterIdentifier::H245_ParameterIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  6444.   : PASN_Choice(tag, tagClass, 4, TRUE
  6445. #ifndef PASN_NOPRINTON
  6446.       , "standard "
  6447.         "h221NonStandard "
  6448.         "uuid "
  6449.         "domainBased "
  6450. #endif
  6451.     )
  6452. {
  6453. }
  6454.  
  6455.  
  6456. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6457. H245_ParameterIdentifier::operator H245_NonStandardParameter &() const
  6458. #else
  6459. H245_ParameterIdentifier::operator H245_NonStandardParameter &()
  6460. {
  6461. #ifndef PASN_LEANANDMEAN
  6462.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6463. #endif
  6464.   return *(H245_NonStandardParameter *)choice;
  6465. }
  6466.  
  6467.  
  6468. H245_ParameterIdentifier::operator const H245_NonStandardParameter &() const
  6469. #endif
  6470. {
  6471. #ifndef PASN_LEANANDMEAN
  6472.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6473. #endif
  6474.   return *(H245_NonStandardParameter *)choice;
  6475. }
  6476.  
  6477.  
  6478. BOOL H245_ParameterIdentifier::CreateObject()
  6479. {
  6480.   switch (tag) {
  6481.     case e_standard :
  6482.       choice = new PASN_Integer();
  6483.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 127);
  6484.       return TRUE;
  6485.     case e_h221NonStandard :
  6486.       choice = new H245_NonStandardParameter();
  6487.       return TRUE;
  6488.     case e_uuid :
  6489.       choice = new PASN_OctetString();
  6490.       choice->SetConstraints(PASN_Object::FixedConstraint, 16);
  6491.       return TRUE;
  6492.     case e_domainBased :
  6493.       choice = new PASN_IA5String();
  6494.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 64);
  6495.       return TRUE;
  6496.   }
  6497.  
  6498.   choice = NULL;
  6499.   return FALSE;
  6500. }
  6501.  
  6502.  
  6503. PObject * H245_ParameterIdentifier::Clone() const
  6504. {
  6505. #ifndef PASN_LEANANDMEAN
  6506.   PAssert(IsClass(H245_ParameterIdentifier::Class()), PInvalidCast);
  6507. #endif
  6508.   return new H245_ParameterIdentifier(*this);
  6509. }
  6510.  
  6511.  
  6512. //
  6513. // ParameterValue
  6514. //
  6515.  
  6516. H245_ParameterValue::H245_ParameterValue(unsigned tag, PASN_Object::TagClass tagClass)
  6517.   : PASN_Choice(tag, tagClass, 8, TRUE
  6518. #ifndef PASN_NOPRINTON
  6519.       , "logical "
  6520.         "booleanArray "
  6521.         "unsignedMin "
  6522.         "unsignedMax "
  6523.         "unsigned32Min "
  6524.         "unsigned32Max "
  6525.         "octetString "
  6526.         "genericParameter "
  6527. #endif
  6528.     )
  6529. {
  6530. }
  6531.  
  6532.  
  6533. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6534. H245_ParameterValue::operator H245_ArrayOf_GenericParameter &() const
  6535. #else
  6536. H245_ParameterValue::operator H245_ArrayOf_GenericParameter &()
  6537. {
  6538. #ifndef PASN_LEANANDMEAN
  6539.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_GenericParameter::Class()), PInvalidCast);
  6540. #endif
  6541.   return *(H245_ArrayOf_GenericParameter *)choice;
  6542. }
  6543.  
  6544.  
  6545. H245_ParameterValue::operator const H245_ArrayOf_GenericParameter &() const
  6546. #endif
  6547. {
  6548. #ifndef PASN_LEANANDMEAN
  6549.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_GenericParameter::Class()), PInvalidCast);
  6550. #endif
  6551.   return *(H245_ArrayOf_GenericParameter *)choice;
  6552. }
  6553.  
  6554.  
  6555. BOOL H245_ParameterValue::CreateObject()
  6556. {
  6557.   switch (tag) {
  6558.     case e_logical :
  6559.       choice = new PASN_Null();
  6560.       return TRUE;
  6561.     case e_booleanArray :
  6562.       choice = new PASN_Integer();
  6563.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  6564.       return TRUE;
  6565.     case e_unsignedMin :
  6566.       choice = new PASN_Integer();
  6567.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  6568.       return TRUE;
  6569.     case e_unsignedMax :
  6570.       choice = new PASN_Integer();
  6571.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  6572.       return TRUE;
  6573.     case e_unsigned32Min :
  6574.       choice = new PASN_Integer();
  6575.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  6576.       return TRUE;
  6577.     case e_unsigned32Max :
  6578.       choice = new PASN_Integer();
  6579.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  6580.       return TRUE;
  6581.     case e_octetString :
  6582.       choice = new PASN_OctetString();
  6583.       return TRUE;
  6584.     case e_genericParameter :
  6585.       choice = new H245_ArrayOf_GenericParameter();
  6586.       return TRUE;
  6587.   }
  6588.  
  6589.   choice = NULL;
  6590.   return FALSE;
  6591. }
  6592.  
  6593.  
  6594. PObject * H245_ParameterValue::Clone() const
  6595. {
  6596. #ifndef PASN_LEANANDMEAN
  6597.   PAssert(IsClass(H245_ParameterValue::Class()), PInvalidCast);
  6598. #endif
  6599.   return new H245_ParameterValue(*this);
  6600. }
  6601.  
  6602.  
  6603. //
  6604. // MultiplexFormat
  6605. //
  6606.  
  6607. H245_MultiplexFormat::H245_MultiplexFormat(unsigned tag, PASN_Object::TagClass tagClass)
  6608.   : PASN_Choice(tag, tagClass, 3, TRUE
  6609. #ifndef PASN_NOPRINTON
  6610.       , "nonStandard "
  6611.         "h222Capability "
  6612.         "h223Capability "
  6613. #endif
  6614.     )
  6615. {
  6616. }
  6617.  
  6618.  
  6619. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6620. H245_MultiplexFormat::operator H245_NonStandardParameter &() const
  6621. #else
  6622. H245_MultiplexFormat::operator H245_NonStandardParameter &()
  6623. {
  6624. #ifndef PASN_LEANANDMEAN
  6625.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6626. #endif
  6627.   return *(H245_NonStandardParameter *)choice;
  6628. }
  6629.  
  6630.  
  6631. H245_MultiplexFormat::operator const H245_NonStandardParameter &() const
  6632. #endif
  6633. {
  6634. #ifndef PASN_LEANANDMEAN
  6635.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6636. #endif
  6637.   return *(H245_NonStandardParameter *)choice;
  6638. }
  6639.  
  6640.  
  6641. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6642. H245_MultiplexFormat::operator H245_H222Capability &() const
  6643. #else
  6644. H245_MultiplexFormat::operator H245_H222Capability &()
  6645. {
  6646. #ifndef PASN_LEANANDMEAN
  6647.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222Capability::Class()), PInvalidCast);
  6648. #endif
  6649.   return *(H245_H222Capability *)choice;
  6650. }
  6651.  
  6652.  
  6653. H245_MultiplexFormat::operator const H245_H222Capability &() const
  6654. #endif
  6655. {
  6656. #ifndef PASN_LEANANDMEAN
  6657.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222Capability::Class()), PInvalidCast);
  6658. #endif
  6659.   return *(H245_H222Capability *)choice;
  6660. }
  6661.  
  6662.  
  6663. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6664. H245_MultiplexFormat::operator H245_H223Capability &() const
  6665. #else
  6666. H245_MultiplexFormat::operator H245_H223Capability &()
  6667. {
  6668. #ifndef PASN_LEANANDMEAN
  6669.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223Capability::Class()), PInvalidCast);
  6670. #endif
  6671.   return *(H245_H223Capability *)choice;
  6672. }
  6673.  
  6674.  
  6675. H245_MultiplexFormat::operator const H245_H223Capability &() const
  6676. #endif
  6677. {
  6678. #ifndef PASN_LEANANDMEAN
  6679.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223Capability::Class()), PInvalidCast);
  6680. #endif
  6681.   return *(H245_H223Capability *)choice;
  6682. }
  6683.  
  6684.  
  6685. BOOL H245_MultiplexFormat::CreateObject()
  6686. {
  6687.   switch (tag) {
  6688.     case e_nonStandard :
  6689.       choice = new H245_NonStandardParameter();
  6690.       return TRUE;
  6691.     case e_h222Capability :
  6692.       choice = new H245_H222Capability();
  6693.       return TRUE;
  6694.     case e_h223Capability :
  6695.       choice = new H245_H223Capability();
  6696.       return TRUE;
  6697.   }
  6698.  
  6699.   choice = NULL;
  6700.   return FALSE;
  6701. }
  6702.  
  6703.  
  6704. PObject * H245_MultiplexFormat::Clone() const
  6705. {
  6706. #ifndef PASN_LEANANDMEAN
  6707.   PAssert(IsClass(H245_MultiplexFormat::Class()), PInvalidCast);
  6708. #endif
  6709.   return new H245_MultiplexFormat(*this);
  6710. }
  6711.  
  6712.  
  6713. //
  6714. // AudioTelephonyEventCapability
  6715. //
  6716.  
  6717. H245_AudioTelephonyEventCapability::H245_AudioTelephonyEventCapability(unsigned tag, PASN_Object::TagClass tagClass)
  6718.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  6719. {
  6720.   m_dynamicRTPPayloadType.SetConstraints(PASN_Object::FixedConstraint, 96, 127);
  6721. }
  6722.  
  6723.  
  6724. #ifndef PASN_NOPRINTON
  6725. void H245_AudioTelephonyEventCapability::PrintOn(ostream & strm) const
  6726. {
  6727.   int indent = strm.precision() + 2;
  6728.   strm << "{\n";
  6729.   strm << setw(indent+24) << "dynamicRTPPayloadType = " << setprecision(indent) << m_dynamicRTPPayloadType << '\n';
  6730.   strm << setw(indent+22) << "audioTelephoneEvent = " << setprecision(indent) << m_audioTelephoneEvent << '\n';
  6731.   strm << setw(indent-1) << "}";
  6732. }
  6733. #endif
  6734.  
  6735.  
  6736. PObject::Comparison H245_AudioTelephonyEventCapability::Compare(const PObject & obj) const
  6737. {
  6738. #ifndef PASN_LEANANDMEAN
  6739.   PAssert(IsDescendant(H245_AudioTelephonyEventCapability::Class()), PInvalidCast);
  6740. #endif
  6741.   const H245_AudioTelephonyEventCapability & other = (const H245_AudioTelephonyEventCapability &)obj;
  6742.  
  6743.   Comparison result;
  6744.  
  6745.   if ((result = m_dynamicRTPPayloadType.Compare(other.m_dynamicRTPPayloadType)) != EqualTo)
  6746.     return result;
  6747.   if ((result = m_audioTelephoneEvent.Compare(other.m_audioTelephoneEvent)) != EqualTo)
  6748.     return result;
  6749.  
  6750.   return PASN_Sequence::Compare(other);
  6751. }
  6752.  
  6753.  
  6754. PINDEX H245_AudioTelephonyEventCapability::GetDataLength() const
  6755. {
  6756.   PINDEX length = 0;
  6757.   length += m_dynamicRTPPayloadType.GetObjectLength();
  6758.   length += m_audioTelephoneEvent.GetObjectLength();
  6759.   return length;
  6760. }
  6761.  
  6762.  
  6763. BOOL H245_AudioTelephonyEventCapability::Decode(PASN_Stream & strm)
  6764. {
  6765.   if (!PreambleDecode(strm))
  6766.     return FALSE;
  6767.  
  6768.   if (!m_dynamicRTPPayloadType.Decode(strm))
  6769.     return FALSE;
  6770.   if (!m_audioTelephoneEvent.Decode(strm))
  6771.     return FALSE;
  6772.  
  6773.   return UnknownExtensionsDecode(strm);
  6774. }
  6775.  
  6776.  
  6777. void H245_AudioTelephonyEventCapability::Encode(PASN_Stream & strm) const
  6778. {
  6779.   PreambleEncode(strm);
  6780.  
  6781.   m_dynamicRTPPayloadType.Encode(strm);
  6782.   m_audioTelephoneEvent.Encode(strm);
  6783.  
  6784.   UnknownExtensionsEncode(strm);
  6785. }
  6786.  
  6787.  
  6788. PObject * H245_AudioTelephonyEventCapability::Clone() const
  6789. {
  6790. #ifndef PASN_LEANANDMEAN
  6791.   PAssert(IsClass(H245_AudioTelephonyEventCapability::Class()), PInvalidCast);
  6792. #endif
  6793.   return new H245_AudioTelephonyEventCapability(*this);
  6794. }
  6795.  
  6796.  
  6797. //
  6798. // AudioToneCapability
  6799. //
  6800.  
  6801. H245_AudioToneCapability::H245_AudioToneCapability(unsigned tag, PASN_Object::TagClass tagClass)
  6802.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  6803. {
  6804.   m_dynamicRTPPayloadType.SetConstraints(PASN_Object::FixedConstraint, 96, 127);
  6805. }
  6806.  
  6807.  
  6808. #ifndef PASN_NOPRINTON
  6809. void H245_AudioToneCapability::PrintOn(ostream & strm) const
  6810. {
  6811.   int indent = strm.precision() + 2;
  6812.   strm << "{\n";
  6813.   strm << setw(indent+24) << "dynamicRTPPayloadType = " << setprecision(indent) << m_dynamicRTPPayloadType << '\n';
  6814.   strm << setw(indent-1) << "}";
  6815. }
  6816. #endif
  6817.  
  6818.  
  6819. PObject::Comparison H245_AudioToneCapability::Compare(const PObject & obj) const
  6820. {
  6821. #ifndef PASN_LEANANDMEAN
  6822.   PAssert(IsDescendant(H245_AudioToneCapability::Class()), PInvalidCast);
  6823. #endif
  6824.   const H245_AudioToneCapability & other = (const H245_AudioToneCapability &)obj;
  6825.  
  6826.   Comparison result;
  6827.  
  6828.   if ((result = m_dynamicRTPPayloadType.Compare(other.m_dynamicRTPPayloadType)) != EqualTo)
  6829.     return result;
  6830.  
  6831.   return PASN_Sequence::Compare(other);
  6832. }
  6833.  
  6834.  
  6835. PINDEX H245_AudioToneCapability::GetDataLength() const
  6836. {
  6837.   PINDEX length = 0;
  6838.   length += m_dynamicRTPPayloadType.GetObjectLength();
  6839.   return length;
  6840. }
  6841.  
  6842.  
  6843. BOOL H245_AudioToneCapability::Decode(PASN_Stream & strm)
  6844. {
  6845.   if (!PreambleDecode(strm))
  6846.     return FALSE;
  6847.  
  6848.   if (!m_dynamicRTPPayloadType.Decode(strm))
  6849.     return FALSE;
  6850.  
  6851.   return UnknownExtensionsDecode(strm);
  6852. }
  6853.  
  6854.  
  6855. void H245_AudioToneCapability::Encode(PASN_Stream & strm) const
  6856. {
  6857.   PreambleEncode(strm);
  6858.  
  6859.   m_dynamicRTPPayloadType.Encode(strm);
  6860.  
  6861.   UnknownExtensionsEncode(strm);
  6862. }
  6863.  
  6864.  
  6865. PObject * H245_AudioToneCapability::Clone() const
  6866. {
  6867. #ifndef PASN_LEANANDMEAN
  6868.   PAssert(IsClass(H245_AudioToneCapability::Class()), PInvalidCast);
  6869. #endif
  6870.   return new H245_AudioToneCapability(*this);
  6871. }
  6872.  
  6873.  
  6874. //
  6875. // LogicalChannelNumber
  6876. //
  6877.  
  6878. H245_LogicalChannelNumber::H245_LogicalChannelNumber(unsigned tag, PASN_Object::TagClass tagClass)
  6879.   : PASN_Integer(tag, tagClass)
  6880. {
  6881.   SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  6882. }
  6883.  
  6884.  
  6885. H245_LogicalChannelNumber & H245_LogicalChannelNumber::operator=(int v)
  6886. {
  6887.   SetValue(v);
  6888.   return *this;
  6889. }
  6890.  
  6891.  
  6892. H245_LogicalChannelNumber & H245_LogicalChannelNumber::operator=(unsigned v)
  6893. {
  6894.   SetValue(v);
  6895.   return *this;
  6896. }
  6897.  
  6898.  
  6899. PObject * H245_LogicalChannelNumber::Clone() const
  6900. {
  6901. #ifndef PASN_LEANANDMEAN
  6902.   PAssert(IsClass(H245_LogicalChannelNumber::Class()), PInvalidCast);
  6903. #endif
  6904.   return new H245_LogicalChannelNumber(*this);
  6905. }
  6906.  
  6907.  
  6908. //
  6909. // V75Parameters
  6910. //
  6911.  
  6912. H245_V75Parameters::H245_V75Parameters(unsigned tag, PASN_Object::TagClass tagClass)
  6913.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  6914. {
  6915. }
  6916.  
  6917.  
  6918. #ifndef PASN_NOPRINTON
  6919. void H245_V75Parameters::PrintOn(ostream & strm) const
  6920. {
  6921.   int indent = strm.precision() + 2;
  6922.   strm << "{\n";
  6923.   strm << setw(indent+21) << "audioHeaderPresent = " << setprecision(indent) << m_audioHeaderPresent << '\n';
  6924.   strm << setw(indent-1) << "}";
  6925. }
  6926. #endif
  6927.  
  6928.  
  6929. PObject::Comparison H245_V75Parameters::Compare(const PObject & obj) const
  6930. {
  6931. #ifndef PASN_LEANANDMEAN
  6932.   PAssert(IsDescendant(H245_V75Parameters::Class()), PInvalidCast);
  6933. #endif
  6934.   const H245_V75Parameters & other = (const H245_V75Parameters &)obj;
  6935.  
  6936.   Comparison result;
  6937.  
  6938.   if ((result = m_audioHeaderPresent.Compare(other.m_audioHeaderPresent)) != EqualTo)
  6939.     return result;
  6940.  
  6941.   return PASN_Sequence::Compare(other);
  6942. }
  6943.  
  6944.  
  6945. PINDEX H245_V75Parameters::GetDataLength() const
  6946. {
  6947.   PINDEX length = 0;
  6948.   length += m_audioHeaderPresent.GetObjectLength();
  6949.   return length;
  6950. }
  6951.  
  6952.  
  6953. BOOL H245_V75Parameters::Decode(PASN_Stream & strm)
  6954. {
  6955.   if (!PreambleDecode(strm))
  6956.     return FALSE;
  6957.  
  6958.   if (!m_audioHeaderPresent.Decode(strm))
  6959.     return FALSE;
  6960.  
  6961.   return UnknownExtensionsDecode(strm);
  6962. }
  6963.  
  6964.  
  6965. void H245_V75Parameters::Encode(PASN_Stream & strm) const
  6966. {
  6967.   PreambleEncode(strm);
  6968.  
  6969.   m_audioHeaderPresent.Encode(strm);
  6970.  
  6971.   UnknownExtensionsEncode(strm);
  6972. }
  6973.  
  6974.  
  6975. PObject * H245_V75Parameters::Clone() const
  6976. {
  6977. #ifndef PASN_LEANANDMEAN
  6978.   PAssert(IsClass(H245_V75Parameters::Class()), PInvalidCast);
  6979. #endif
  6980.   return new H245_V75Parameters(*this);
  6981. }
  6982.  
  6983.  
  6984. //
  6985. // DataType
  6986. //
  6987.  
  6988. H245_DataType::H245_DataType(unsigned tag, PASN_Object::TagClass tagClass)
  6989.   : PASN_Choice(tag, tagClass, 6, TRUE
  6990. #ifndef PASN_NOPRINTON
  6991.       , "nonStandard "
  6992.         "nullData "
  6993.         "videoData "
  6994.         "audioData "
  6995.         "data "
  6996.         "encryptionData "
  6997.         "h235Control "
  6998.         "h235Media "
  6999.         "multiplexedStream "
  7000. #endif
  7001.     )
  7002. {
  7003. }
  7004.  
  7005.  
  7006. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7007. H245_DataType::operator H245_NonStandardParameter &() const
  7008. #else
  7009. H245_DataType::operator H245_NonStandardParameter &()
  7010. {
  7011. #ifndef PASN_LEANANDMEAN
  7012.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  7013. #endif
  7014.   return *(H245_NonStandardParameter *)choice;
  7015. }
  7016.  
  7017.  
  7018. H245_DataType::operator const H245_NonStandardParameter &() const
  7019. #endif
  7020. {
  7021. #ifndef PASN_LEANANDMEAN
  7022.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  7023. #endif
  7024.   return *(H245_NonStandardParameter *)choice;
  7025. }
  7026.  
  7027.  
  7028. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7029. H245_DataType::operator H245_VideoCapability &() const
  7030. #else
  7031. H245_DataType::operator H245_VideoCapability &()
  7032. {
  7033. #ifndef PASN_LEANANDMEAN
  7034.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  7035. #endif
  7036.   return *(H245_VideoCapability *)choice;
  7037. }
  7038.  
  7039.  
  7040. H245_DataType::operator const H245_VideoCapability &() const
  7041. #endif
  7042. {
  7043. #ifndef PASN_LEANANDMEAN
  7044.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  7045. #endif
  7046.   return *(H245_VideoCapability *)choice;
  7047. }
  7048.  
  7049.  
  7050. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7051. H245_DataType::operator H245_AudioCapability &() const
  7052. #else
  7053. H245_DataType::operator H245_AudioCapability &()
  7054. {
  7055. #ifndef PASN_LEANANDMEAN
  7056.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  7057. #endif
  7058.   return *(H245_AudioCapability *)choice;
  7059. }
  7060.  
  7061.  
  7062. H245_DataType::operator const H245_AudioCapability &() const
  7063. #endif
  7064. {
  7065. #ifndef PASN_LEANANDMEAN
  7066.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  7067. #endif
  7068.   return *(H245_AudioCapability *)choice;
  7069. }
  7070.  
  7071.  
  7072. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7073. H245_DataType::operator H245_DataApplicationCapability &() const
  7074. #else
  7075. H245_DataType::operator H245_DataApplicationCapability &()
  7076. {
  7077. #ifndef PASN_LEANANDMEAN
  7078.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  7079. #endif
  7080.   return *(H245_DataApplicationCapability *)choice;
  7081. }
  7082.  
  7083.  
  7084. H245_DataType::operator const H245_DataApplicationCapability &() const
  7085. #endif
  7086. {
  7087. #ifndef PASN_LEANANDMEAN
  7088.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  7089. #endif
  7090.   return *(H245_DataApplicationCapability *)choice;
  7091. }
  7092.  
  7093.  
  7094. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7095. H245_DataType::operator H245_EncryptionMode &() const
  7096. #else
  7097. H245_DataType::operator H245_EncryptionMode &()
  7098. {
  7099. #ifndef PASN_LEANANDMEAN
  7100.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionMode::Class()), PInvalidCast);
  7101. #endif
  7102.   return *(H245_EncryptionMode *)choice;
  7103. }
  7104.  
  7105.  
  7106. H245_DataType::operator const H245_EncryptionMode &() const
  7107. #endif
  7108. {
  7109. #ifndef PASN_LEANANDMEAN
  7110.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionMode::Class()), PInvalidCast);
  7111. #endif
  7112.   return *(H245_EncryptionMode *)choice;
  7113. }
  7114.  
  7115.  
  7116. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7117. H245_DataType::operator H245_H235Media &() const
  7118. #else
  7119. H245_DataType::operator H245_H235Media &()
  7120. {
  7121. #ifndef PASN_LEANANDMEAN
  7122.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H235Media::Class()), PInvalidCast);
  7123. #endif
  7124.   return *(H245_H235Media *)choice;
  7125. }
  7126.  
  7127.  
  7128. H245_DataType::operator const H245_H235Media &() const
  7129. #endif
  7130. {
  7131. #ifndef PASN_LEANANDMEAN
  7132.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H235Media::Class()), PInvalidCast);
  7133. #endif
  7134.   return *(H245_H235Media *)choice;
  7135. }
  7136.  
  7137.  
  7138. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7139. H245_DataType::operator H245_MultiplexedStreamParameter &() const
  7140. #else
  7141. H245_DataType::operator H245_MultiplexedStreamParameter &()
  7142. {
  7143. #ifndef PASN_LEANANDMEAN
  7144.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexedStreamParameter::Class()), PInvalidCast);
  7145. #endif
  7146.   return *(H245_MultiplexedStreamParameter *)choice;
  7147. }
  7148.  
  7149.  
  7150. H245_DataType::operator const H245_MultiplexedStreamParameter &() const
  7151. #endif
  7152. {
  7153. #ifndef PASN_LEANANDMEAN
  7154.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexedStreamParameter::Class()), PInvalidCast);
  7155. #endif
  7156.   return *(H245_MultiplexedStreamParameter *)choice;
  7157. }
  7158.  
  7159.  
  7160. BOOL H245_DataType::CreateObject()
  7161. {
  7162.   switch (tag) {
  7163.     case e_nonStandard :
  7164.     case e_h235Control :
  7165.       choice = new H245_NonStandardParameter();
  7166.       return TRUE;
  7167.     case e_nullData :
  7168.       choice = new PASN_Null();
  7169.       return TRUE;
  7170.     case e_videoData :
  7171.       choice = new H245_VideoCapability();
  7172.       return TRUE;
  7173.     case e_audioData :
  7174.       choice = new H245_AudioCapability();
  7175.       return TRUE;
  7176.     case e_data :
  7177.       choice = new H245_DataApplicationCapability();
  7178.       return TRUE;
  7179.     case e_encryptionData :
  7180.       choice = new H245_EncryptionMode();
  7181.       return TRUE;
  7182.     case e_h235Media :
  7183.       choice = new H245_H235Media();
  7184.       return TRUE;
  7185.     case e_multiplexedStream :
  7186.       choice = new H245_MultiplexedStreamParameter();
  7187.       return TRUE;
  7188.   }
  7189.  
  7190.   choice = NULL;
  7191.   return FALSE;
  7192. }
  7193.  
  7194.  
  7195. PObject * H245_DataType::Clone() const
  7196. {
  7197. #ifndef PASN_LEANANDMEAN
  7198.   PAssert(IsClass(H245_DataType::Class()), PInvalidCast);
  7199. #endif
  7200.   return new H245_DataType(*this);
  7201. }
  7202.  
  7203.  
  7204. //
  7205. // MultiplexedStreamParameter
  7206. //
  7207.  
  7208. H245_MultiplexedStreamParameter::H245_MultiplexedStreamParameter(unsigned tag, PASN_Object::TagClass tagClass)
  7209.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7210. {
  7211. }
  7212.  
  7213.  
  7214. #ifndef PASN_NOPRINTON
  7215. void H245_MultiplexedStreamParameter::PrintOn(ostream & strm) const
  7216. {
  7217.   int indent = strm.precision() + 2;
  7218.   strm << "{\n";
  7219.   strm << setw(indent+18) << "multiplexFormat = " << setprecision(indent) << m_multiplexFormat << '\n';
  7220.   strm << setw(indent+21) << "controlOnMuxStream = " << setprecision(indent) << m_controlOnMuxStream << '\n';
  7221.   strm << setw(indent-1) << "}";
  7222. }
  7223. #endif
  7224.  
  7225.  
  7226. PObject::Comparison H245_MultiplexedStreamParameter::Compare(const PObject & obj) const
  7227. {
  7228. #ifndef PASN_LEANANDMEAN
  7229.   PAssert(IsDescendant(H245_MultiplexedStreamParameter::Class()), PInvalidCast);
  7230. #endif
  7231.   const H245_MultiplexedStreamParameter & other = (const H245_MultiplexedStreamParameter &)obj;
  7232.  
  7233.   Comparison result;
  7234.  
  7235.   if ((result = m_multiplexFormat.Compare(other.m_multiplexFormat)) != EqualTo)
  7236.     return result;
  7237.   if ((result = m_controlOnMuxStream.Compare(other.m_controlOnMuxStream)) != EqualTo)
  7238.     return result;
  7239.  
  7240.   return PASN_Sequence::Compare(other);
  7241. }
  7242.  
  7243.  
  7244. PINDEX H245_MultiplexedStreamParameter::GetDataLength() const
  7245. {
  7246.   PINDEX length = 0;
  7247.   length += m_multiplexFormat.GetObjectLength();
  7248.   length += m_controlOnMuxStream.GetObjectLength();
  7249.   return length;
  7250. }
  7251.  
  7252.  
  7253. BOOL H245_MultiplexedStreamParameter::Decode(PASN_Stream & strm)
  7254. {
  7255.   if (!PreambleDecode(strm))
  7256.     return FALSE;
  7257.  
  7258.   if (!m_multiplexFormat.Decode(strm))
  7259.     return FALSE;
  7260.   if (!m_controlOnMuxStream.Decode(strm))
  7261.     return FALSE;
  7262.  
  7263.   return UnknownExtensionsDecode(strm);
  7264. }
  7265.  
  7266.  
  7267. void H245_MultiplexedStreamParameter::Encode(PASN_Stream & strm) const
  7268. {
  7269.   PreambleEncode(strm);
  7270.  
  7271.   m_multiplexFormat.Encode(strm);
  7272.   m_controlOnMuxStream.Encode(strm);
  7273.  
  7274.   UnknownExtensionsEncode(strm);
  7275. }
  7276.  
  7277.  
  7278. PObject * H245_MultiplexedStreamParameter::Clone() const
  7279. {
  7280. #ifndef PASN_LEANANDMEAN
  7281.   PAssert(IsClass(H245_MultiplexedStreamParameter::Class()), PInvalidCast);
  7282. #endif
  7283.   return new H245_MultiplexedStreamParameter(*this);
  7284. }
  7285.  
  7286.  
  7287. //
  7288. // H222LogicalChannelParameters
  7289. //
  7290.  
  7291. H245_H222LogicalChannelParameters::H245_H222LogicalChannelParameters(unsigned tag, PASN_Object::TagClass tagClass)
  7292.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  7293. {
  7294.   m_resourceID.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  7295.   m_subChannelID.SetConstraints(PASN_Object::FixedConstraint, 0, 8191);
  7296.   m_pcr_pid.SetConstraints(PASN_Object::FixedConstraint, 0, 8191);
  7297. }
  7298.  
  7299.  
  7300. #ifndef PASN_NOPRINTON
  7301. void H245_H222LogicalChannelParameters::PrintOn(ostream & strm) const
  7302. {
  7303.   int indent = strm.precision() + 2;
  7304.   strm << "{\n";
  7305.   strm << setw(indent+13) << "resourceID = " << setprecision(indent) << m_resourceID << '\n';
  7306.   strm << setw(indent+15) << "subChannelID = " << setprecision(indent) << m_subChannelID << '\n';
  7307.   if (HasOptionalField(e_pcr_pid))
  7308.     strm << setw(indent+10) << "pcr_pid = " << setprecision(indent) << m_pcr_pid << '\n';
  7309.   if (HasOptionalField(e_programDescriptors))
  7310.     strm << setw(indent+21) << "programDescriptors = " << setprecision(indent) << m_programDescriptors << '\n';
  7311.   if (HasOptionalField(e_streamDescriptors))
  7312.     strm << setw(indent+20) << "streamDescriptors = " << setprecision(indent) << m_streamDescriptors << '\n';
  7313.   strm << setw(indent-1) << "}";
  7314. }
  7315. #endif
  7316.  
  7317.  
  7318. PObject::Comparison H245_H222LogicalChannelParameters::Compare(const PObject & obj) const
  7319. {
  7320. #ifndef PASN_LEANANDMEAN
  7321.   PAssert(IsDescendant(H245_H222LogicalChannelParameters::Class()), PInvalidCast);
  7322. #endif
  7323.   const H245_H222LogicalChannelParameters & other = (const H245_H222LogicalChannelParameters &)obj;
  7324.  
  7325.   Comparison result;
  7326.  
  7327.   if ((result = m_resourceID.Compare(other.m_resourceID)) != EqualTo)
  7328.     return result;
  7329.   if ((result = m_subChannelID.Compare(other.m_subChannelID)) != EqualTo)
  7330.     return result;
  7331.   if ((result = m_pcr_pid.Compare(other.m_pcr_pid)) != EqualTo)
  7332.     return result;
  7333.   if ((result = m_programDescriptors.Compare(other.m_programDescriptors)) != EqualTo)
  7334.     return result;
  7335.   if ((result = m_streamDescriptors.Compare(other.m_streamDescriptors)) != EqualTo)
  7336.     return result;
  7337.  
  7338.   return PASN_Sequence::Compare(other);
  7339. }
  7340.  
  7341.  
  7342. PINDEX H245_H222LogicalChannelParameters::GetDataLength() const
  7343. {
  7344.   PINDEX length = 0;
  7345.   length += m_resourceID.GetObjectLength();
  7346.   length += m_subChannelID.GetObjectLength();
  7347.   if (HasOptionalField(e_pcr_pid))
  7348.     length += m_pcr_pid.GetObjectLength();
  7349.   if (HasOptionalField(e_programDescriptors))
  7350.     length += m_programDescriptors.GetObjectLength();
  7351.   if (HasOptionalField(e_streamDescriptors))
  7352.     length += m_streamDescriptors.GetObjectLength();
  7353.   return length;
  7354. }
  7355.  
  7356.  
  7357. BOOL H245_H222LogicalChannelParameters::Decode(PASN_Stream & strm)
  7358. {
  7359.   if (!PreambleDecode(strm))
  7360.     return FALSE;
  7361.  
  7362.   if (!m_resourceID.Decode(strm))
  7363.     return FALSE;
  7364.   if (!m_subChannelID.Decode(strm))
  7365.     return FALSE;
  7366.   if (HasOptionalField(e_pcr_pid) && !m_pcr_pid.Decode(strm))
  7367.     return FALSE;
  7368.   if (HasOptionalField(e_programDescriptors) && !m_programDescriptors.Decode(strm))
  7369.     return FALSE;
  7370.   if (HasOptionalField(e_streamDescriptors) && !m_streamDescriptors.Decode(strm))
  7371.     return FALSE;
  7372.  
  7373.   return UnknownExtensionsDecode(strm);
  7374. }
  7375.  
  7376.  
  7377. void H245_H222LogicalChannelParameters::Encode(PASN_Stream & strm) const
  7378. {
  7379.   PreambleEncode(strm);
  7380.  
  7381.   m_resourceID.Encode(strm);
  7382.   m_subChannelID.Encode(strm);
  7383.   if (HasOptionalField(e_pcr_pid))
  7384.     m_pcr_pid.Encode(strm);
  7385.   if (HasOptionalField(e_programDescriptors))
  7386.     m_programDescriptors.Encode(strm);
  7387.   if (HasOptionalField(e_streamDescriptors))
  7388.     m_streamDescriptors.Encode(strm);
  7389.  
  7390.   UnknownExtensionsEncode(strm);
  7391. }
  7392.  
  7393.  
  7394. PObject * H245_H222LogicalChannelParameters::Clone() const
  7395. {
  7396. #ifndef PASN_LEANANDMEAN
  7397.   PAssert(IsClass(H245_H222LogicalChannelParameters::Class()), PInvalidCast);
  7398. #endif
  7399.   return new H245_H222LogicalChannelParameters(*this);
  7400. }
  7401.  
  7402.  
  7403. //
  7404. // CRCLength
  7405. //
  7406.  
  7407. H245_CRCLength::H245_CRCLength(unsigned tag, PASN_Object::TagClass tagClass)
  7408.   : PASN_Choice(tag, tagClass, 3, TRUE
  7409. #ifndef PASN_NOPRINTON
  7410.       , "crc8bit "
  7411.         "crc16bit "
  7412.         "crc32bit "
  7413. #endif
  7414.     )
  7415. {
  7416. }
  7417.  
  7418.  
  7419. BOOL H245_CRCLength::CreateObject()
  7420. {
  7421.   choice = (tag <= e_crc32bit) ? new PASN_Null() : NULL;
  7422.   return choice != NULL;
  7423. }
  7424.  
  7425.  
  7426. PObject * H245_CRCLength::Clone() const
  7427. {
  7428. #ifndef PASN_LEANANDMEAN
  7429.   PAssert(IsClass(H245_CRCLength::Class()), PInvalidCast);
  7430. #endif
  7431.   return new H245_CRCLength(*this);
  7432. }
  7433.  
  7434.  
  7435. //
  7436. // RedundancyEncoding
  7437. //
  7438.  
  7439. H245_RedundancyEncoding::H245_RedundancyEncoding(unsigned tag, PASN_Object::TagClass tagClass)
  7440.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  7441. {
  7442. }
  7443.  
  7444.  
  7445. #ifndef PASN_NOPRINTON
  7446. void H245_RedundancyEncoding::PrintOn(ostream & strm) const
  7447. {
  7448.   int indent = strm.precision() + 2;
  7449.   strm << "{\n";
  7450.   strm << setw(indent+27) << "redundancyEncodingMethod = " << setprecision(indent) << m_redundancyEncodingMethod << '\n';
  7451.   if (HasOptionalField(e_secondaryEncoding))
  7452.     strm << setw(indent+20) << "secondaryEncoding = " << setprecision(indent) << m_secondaryEncoding << '\n';
  7453.   strm << setw(indent-1) << "}";
  7454. }
  7455. #endif
  7456.  
  7457.  
  7458. PObject::Comparison H245_RedundancyEncoding::Compare(const PObject & obj) const
  7459. {
  7460. #ifndef PASN_LEANANDMEAN
  7461.   PAssert(IsDescendant(H245_RedundancyEncoding::Class()), PInvalidCast);
  7462. #endif
  7463.   const H245_RedundancyEncoding & other = (const H245_RedundancyEncoding &)obj;
  7464.  
  7465.   Comparison result;
  7466.  
  7467.   if ((result = m_redundancyEncodingMethod.Compare(other.m_redundancyEncodingMethod)) != EqualTo)
  7468.     return result;
  7469.   if ((result = m_secondaryEncoding.Compare(other.m_secondaryEncoding)) != EqualTo)
  7470.     return result;
  7471.  
  7472.   return PASN_Sequence::Compare(other);
  7473. }
  7474.  
  7475.  
  7476. PINDEX H245_RedundancyEncoding::GetDataLength() const
  7477. {
  7478.   PINDEX length = 0;
  7479.   length += m_redundancyEncodingMethod.GetObjectLength();
  7480.   if (HasOptionalField(e_secondaryEncoding))
  7481.     length += m_secondaryEncoding.GetObjectLength();
  7482.   return length;
  7483. }
  7484.  
  7485.  
  7486. BOOL H245_RedundancyEncoding::Decode(PASN_Stream & strm)
  7487. {
  7488.   if (!PreambleDecode(strm))
  7489.     return FALSE;
  7490.  
  7491.   if (!m_redundancyEncodingMethod.Decode(strm))
  7492.     return FALSE;
  7493.   if (HasOptionalField(e_secondaryEncoding) && !m_secondaryEncoding.Decode(strm))
  7494.     return FALSE;
  7495.  
  7496.   return UnknownExtensionsDecode(strm);
  7497. }
  7498.  
  7499.  
  7500. void H245_RedundancyEncoding::Encode(PASN_Stream & strm) const
  7501. {
  7502.   PreambleEncode(strm);
  7503.  
  7504.   m_redundancyEncodingMethod.Encode(strm);
  7505.   if (HasOptionalField(e_secondaryEncoding))
  7506.     m_secondaryEncoding.Encode(strm);
  7507.  
  7508.   UnknownExtensionsEncode(strm);
  7509. }
  7510.  
  7511.  
  7512. PObject * H245_RedundancyEncoding::Clone() const
  7513. {
  7514. #ifndef PASN_LEANANDMEAN
  7515.   PAssert(IsClass(H245_RedundancyEncoding::Class()), PInvalidCast);
  7516. #endif
  7517.   return new H245_RedundancyEncoding(*this);
  7518. }
  7519.  
  7520.  
  7521. //
  7522. // TransportAddress
  7523. //
  7524.  
  7525. H245_TransportAddress::H245_TransportAddress(unsigned tag, PASN_Object::TagClass tagClass)
  7526.   : PASN_Choice(tag, tagClass, 2, TRUE
  7527. #ifndef PASN_NOPRINTON
  7528.       , "unicastAddress "
  7529.         "multicastAddress "
  7530. #endif
  7531.     )
  7532. {
  7533. }
  7534.  
  7535.  
  7536. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7537. H245_TransportAddress::operator H245_UnicastAddress &() const
  7538. #else
  7539. H245_TransportAddress::operator H245_UnicastAddress &()
  7540. {
  7541. #ifndef PASN_LEANANDMEAN
  7542.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress::Class()), PInvalidCast);
  7543. #endif
  7544.   return *(H245_UnicastAddress *)choice;
  7545. }
  7546.  
  7547.  
  7548. H245_TransportAddress::operator const H245_UnicastAddress &() const
  7549. #endif
  7550. {
  7551. #ifndef PASN_LEANANDMEAN
  7552.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress::Class()), PInvalidCast);
  7553. #endif
  7554.   return *(H245_UnicastAddress *)choice;
  7555. }
  7556.  
  7557.  
  7558. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7559. H245_TransportAddress::operator H245_MulticastAddress &() const
  7560. #else
  7561. H245_TransportAddress::operator H245_MulticastAddress &()
  7562. {
  7563. #ifndef PASN_LEANANDMEAN
  7564.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MulticastAddress::Class()), PInvalidCast);
  7565. #endif
  7566.   return *(H245_MulticastAddress *)choice;
  7567. }
  7568.  
  7569.  
  7570. H245_TransportAddress::operator const H245_MulticastAddress &() const
  7571. #endif
  7572. {
  7573. #ifndef PASN_LEANANDMEAN
  7574.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MulticastAddress::Class()), PInvalidCast);
  7575. #endif
  7576.   return *(H245_MulticastAddress *)choice;
  7577. }
  7578.  
  7579.  
  7580. BOOL H245_TransportAddress::CreateObject()
  7581. {
  7582.   switch (tag) {
  7583.     case e_unicastAddress :
  7584.       choice = new H245_UnicastAddress();
  7585.       return TRUE;
  7586.     case e_multicastAddress :
  7587.       choice = new H245_MulticastAddress();
  7588.       return TRUE;
  7589.   }
  7590.  
  7591.   choice = NULL;
  7592.   return FALSE;
  7593. }
  7594.  
  7595.  
  7596. PObject * H245_TransportAddress::Clone() const
  7597. {
  7598. #ifndef PASN_LEANANDMEAN
  7599.   PAssert(IsClass(H245_TransportAddress::Class()), PInvalidCast);
  7600. #endif
  7601.   return new H245_TransportAddress(*this);
  7602. }
  7603.  
  7604.  
  7605. //
  7606. // UnicastAddress
  7607. //
  7608.  
  7609. H245_UnicastAddress::H245_UnicastAddress(unsigned tag, PASN_Object::TagClass tagClass)
  7610.   : PASN_Choice(tag, tagClass, 5, TRUE
  7611. #ifndef PASN_NOPRINTON
  7612.       , "iPAddress "
  7613.         "iPXAddress "
  7614.         "iP6Address "
  7615.         "netBios "
  7616.         "iPSourceRouteAddress "
  7617.         "nsap "
  7618.         "nonStandardAddress "
  7619. #endif
  7620.     )
  7621. {
  7622. }
  7623.  
  7624.  
  7625. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7626. H245_UnicastAddress::operator H245_UnicastAddress_iPAddress &() const
  7627. #else
  7628. H245_UnicastAddress::operator H245_UnicastAddress_iPAddress &()
  7629. {
  7630. #ifndef PASN_LEANANDMEAN
  7631.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iPAddress::Class()), PInvalidCast);
  7632. #endif
  7633.   return *(H245_UnicastAddress_iPAddress *)choice;
  7634. }
  7635.  
  7636.  
  7637. H245_UnicastAddress::operator const H245_UnicastAddress_iPAddress &() const
  7638. #endif
  7639. {
  7640. #ifndef PASN_LEANANDMEAN
  7641.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iPAddress::Class()), PInvalidCast);
  7642. #endif
  7643.   return *(H245_UnicastAddress_iPAddress *)choice;
  7644. }
  7645.  
  7646.  
  7647. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7648. H245_UnicastAddress::operator H245_UnicastAddress_iPXAddress &() const
  7649. #else
  7650. H245_UnicastAddress::operator H245_UnicastAddress_iPXAddress &()
  7651. {
  7652. #ifndef PASN_LEANANDMEAN
  7653.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iPXAddress::Class()), PInvalidCast);
  7654. #endif
  7655.   return *(H245_UnicastAddress_iPXAddress *)choice;
  7656. }
  7657.  
  7658.  
  7659. H245_UnicastAddress::operator const H245_UnicastAddress_iPXAddress &() const
  7660. #endif
  7661. {
  7662. #ifndef PASN_LEANANDMEAN
  7663.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iPXAddress::Class()), PInvalidCast);
  7664. #endif
  7665.   return *(H245_UnicastAddress_iPXAddress *)choice;
  7666. }
  7667.  
  7668.  
  7669. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7670. H245_UnicastAddress::operator H245_UnicastAddress_iP6Address &() const
  7671. #else
  7672. H245_UnicastAddress::operator H245_UnicastAddress_iP6Address &()
  7673. {
  7674. #ifndef PASN_LEANANDMEAN
  7675.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iP6Address::Class()), PInvalidCast);
  7676. #endif
  7677.   return *(H245_UnicastAddress_iP6Address *)choice;
  7678. }
  7679.  
  7680.  
  7681. H245_UnicastAddress::operator const H245_UnicastAddress_iP6Address &() const
  7682. #endif
  7683. {
  7684. #ifndef PASN_LEANANDMEAN
  7685.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iP6Address::Class()), PInvalidCast);
  7686. #endif
  7687.   return *(H245_UnicastAddress_iP6Address *)choice;
  7688. }
  7689.  
  7690.  
  7691. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7692. H245_UnicastAddress::operator H245_UnicastAddress_iPSourceRouteAddress &() const
  7693. #else
  7694. H245_UnicastAddress::operator H245_UnicastAddress_iPSourceRouteAddress &()
  7695. {
  7696. #ifndef PASN_LEANANDMEAN
  7697.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iPSourceRouteAddress::Class()), PInvalidCast);
  7698. #endif
  7699.   return *(H245_UnicastAddress_iPSourceRouteAddress *)choice;
  7700. }
  7701.  
  7702.  
  7703. H245_UnicastAddress::operator const H245_UnicastAddress_iPSourceRouteAddress &() const
  7704. #endif
  7705. {
  7706. #ifndef PASN_LEANANDMEAN
  7707.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UnicastAddress_iPSourceRouteAddress::Class()), PInvalidCast);
  7708. #endif
  7709.   return *(H245_UnicastAddress_iPSourceRouteAddress *)choice;
  7710. }
  7711.  
  7712.  
  7713. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7714. H245_UnicastAddress::operator H245_NonStandardParameter &() const
  7715. #else
  7716. H245_UnicastAddress::operator H245_NonStandardParameter &()
  7717. {
  7718. #ifndef PASN_LEANANDMEAN
  7719.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  7720. #endif
  7721.   return *(H245_NonStandardParameter *)choice;
  7722. }
  7723.  
  7724.  
  7725. H245_UnicastAddress::operator const H245_NonStandardParameter &() const
  7726. #endif
  7727. {
  7728. #ifndef PASN_LEANANDMEAN
  7729.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  7730. #endif
  7731.   return *(H245_NonStandardParameter *)choice;
  7732. }
  7733.  
  7734.  
  7735. BOOL H245_UnicastAddress::CreateObject()
  7736. {
  7737.   switch (tag) {
  7738.     case e_iPAddress :
  7739.       choice = new H245_UnicastAddress_iPAddress();
  7740.       return TRUE;
  7741.     case e_iPXAddress :
  7742.       choice = new H245_UnicastAddress_iPXAddress();
  7743.       return TRUE;
  7744.     case e_iP6Address :
  7745.       choice = new H245_UnicastAddress_iP6Address();
  7746.       return TRUE;
  7747.     case e_netBios :
  7748.       choice = new PASN_OctetString();
  7749.       choice->SetConstraints(PASN_Object::FixedConstraint, 16);
  7750.       return TRUE;
  7751.     case e_iPSourceRouteAddress :
  7752.       choice = new H245_UnicastAddress_iPSourceRouteAddress();
  7753.       return TRUE;
  7754.     case e_nsap :
  7755.       choice = new PASN_OctetString();
  7756.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 20);
  7757.       return TRUE;
  7758.     case e_nonStandardAddress :
  7759.       choice = new H245_NonStandardParameter();
  7760.       return TRUE;
  7761.   }
  7762.  
  7763.   choice = NULL;
  7764.   return FALSE;
  7765. }
  7766.  
  7767.  
  7768. PObject * H245_UnicastAddress::Clone() const
  7769. {
  7770. #ifndef PASN_LEANANDMEAN
  7771.   PAssert(IsClass(H245_UnicastAddress::Class()), PInvalidCast);
  7772. #endif
  7773.   return new H245_UnicastAddress(*this);
  7774. }
  7775.  
  7776.  
  7777. //
  7778. // MulticastAddress
  7779. //
  7780.  
  7781. H245_MulticastAddress::H245_MulticastAddress(unsigned tag, PASN_Object::TagClass tagClass)
  7782.   : PASN_Choice(tag, tagClass, 2, TRUE
  7783. #ifndef PASN_NOPRINTON
  7784.       , "iPAddress "
  7785.         "iP6Address "
  7786.         "nsap "
  7787.         "nonStandardAddress "
  7788. #endif
  7789.     )
  7790. {
  7791. }
  7792.  
  7793.  
  7794. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7795. H245_MulticastAddress::operator H245_MulticastAddress_iPAddress &() const
  7796. #else
  7797. H245_MulticastAddress::operator H245_MulticastAddress_iPAddress &()
  7798. {
  7799. #ifndef PASN_LEANANDMEAN
  7800.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MulticastAddress_iPAddress::Class()), PInvalidCast);
  7801. #endif
  7802.   return *(H245_MulticastAddress_iPAddress *)choice;
  7803. }
  7804.  
  7805.  
  7806. H245_MulticastAddress::operator const H245_MulticastAddress_iPAddress &() const
  7807. #endif
  7808. {
  7809. #ifndef PASN_LEANANDMEAN
  7810.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MulticastAddress_iPAddress::Class()), PInvalidCast);
  7811. #endif
  7812.   return *(H245_MulticastAddress_iPAddress *)choice;
  7813. }
  7814.  
  7815.  
  7816. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7817. H245_MulticastAddress::operator H245_MulticastAddress_iP6Address &() const
  7818. #else
  7819. H245_MulticastAddress::operator H245_MulticastAddress_iP6Address &()
  7820. {
  7821. #ifndef PASN_LEANANDMEAN
  7822.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MulticastAddress_iP6Address::Class()), PInvalidCast);
  7823. #endif
  7824.   return *(H245_MulticastAddress_iP6Address *)choice;
  7825. }
  7826.  
  7827.  
  7828. H245_MulticastAddress::operator const H245_MulticastAddress_iP6Address &() const
  7829. #endif
  7830. {
  7831. #ifndef PASN_LEANANDMEAN
  7832.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MulticastAddress_iP6Address::Class()), PInvalidCast);
  7833. #endif
  7834.   return *(H245_MulticastAddress_iP6Address *)choice;
  7835. }
  7836.  
  7837.  
  7838. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7839. H245_MulticastAddress::operator H245_NonStandardParameter &() const
  7840. #else
  7841. H245_MulticastAddress::operator H245_NonStandardParameter &()
  7842. {
  7843. #ifndef PASN_LEANANDMEAN
  7844.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  7845. #endif
  7846.   return *(H245_NonStandardParameter *)choice;
  7847. }
  7848.  
  7849.  
  7850. H245_MulticastAddress::operator const H245_NonStandardParameter &() const
  7851. #endif
  7852. {
  7853. #ifndef PASN_LEANANDMEAN
  7854.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  7855. #endif
  7856.   return *(H245_NonStandardParameter *)choice;
  7857. }
  7858.  
  7859.  
  7860. BOOL H245_MulticastAddress::CreateObject()
  7861. {
  7862.   switch (tag) {
  7863.     case e_iPAddress :
  7864.       choice = new H245_MulticastAddress_iPAddress();
  7865.       return TRUE;
  7866.     case e_iP6Address :
  7867.       choice = new H245_MulticastAddress_iP6Address();
  7868.       return TRUE;
  7869.     case e_nsap :
  7870.       choice = new PASN_OctetString();
  7871.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 20);
  7872.       return TRUE;
  7873.     case e_nonStandardAddress :
  7874.       choice = new H245_NonStandardParameter();
  7875.       return TRUE;
  7876.   }
  7877.  
  7878.   choice = NULL;
  7879.   return FALSE;
  7880. }
  7881.  
  7882.  
  7883. PObject * H245_MulticastAddress::Clone() const
  7884. {
  7885. #ifndef PASN_LEANANDMEAN
  7886.   PAssert(IsClass(H245_MulticastAddress::Class()), PInvalidCast);
  7887. #endif
  7888.   return new H245_MulticastAddress(*this);
  7889. }
  7890.  
  7891.  
  7892. //
  7893. // EscrowData
  7894. //
  7895.  
  7896. H245_EscrowData::H245_EscrowData(unsigned tag, PASN_Object::TagClass tagClass)
  7897.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7898. {
  7899.   m_escrowValue.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  7900. }
  7901.  
  7902.  
  7903. #ifndef PASN_NOPRINTON
  7904. void H245_EscrowData::PrintOn(ostream & strm) const
  7905. {
  7906.   int indent = strm.precision() + 2;
  7907.   strm << "{\n";
  7908.   strm << setw(indent+11) << "escrowID = " << setprecision(indent) << m_escrowID << '\n';
  7909.   strm << setw(indent+14) << "escrowValue = " << setprecision(indent) << m_escrowValue << '\n';
  7910.   strm << setw(indent-1) << "}";
  7911. }
  7912. #endif
  7913.  
  7914.  
  7915. PObject::Comparison H245_EscrowData::Compare(const PObject & obj) const
  7916. {
  7917. #ifndef PASN_LEANANDMEAN
  7918.   PAssert(IsDescendant(H245_EscrowData::Class()), PInvalidCast);
  7919. #endif
  7920.   const H245_EscrowData & other = (const H245_EscrowData &)obj;
  7921.  
  7922.   Comparison result;
  7923.  
  7924.   if ((result = m_escrowID.Compare(other.m_escrowID)) != EqualTo)
  7925.     return result;
  7926.   if ((result = m_escrowValue.Compare(other.m_escrowValue)) != EqualTo)
  7927.     return result;
  7928.  
  7929.   return PASN_Sequence::Compare(other);
  7930. }
  7931.  
  7932.  
  7933. PINDEX H245_EscrowData::GetDataLength() const
  7934. {
  7935.   PINDEX length = 0;
  7936.   length += m_escrowID.GetObjectLength();
  7937.   length += m_escrowValue.GetObjectLength();
  7938.   return length;
  7939. }
  7940.  
  7941.  
  7942. BOOL H245_EscrowData::Decode(PASN_Stream & strm)
  7943. {
  7944.   if (!PreambleDecode(strm))
  7945.     return FALSE;
  7946.  
  7947.   if (!m_escrowID.Decode(strm))
  7948.     return FALSE;
  7949.   if (!m_escrowValue.Decode(strm))
  7950.     return FALSE;
  7951.  
  7952.   return UnknownExtensionsDecode(strm);
  7953. }
  7954.  
  7955.  
  7956. void H245_EscrowData::Encode(PASN_Stream & strm) const
  7957. {
  7958.   PreambleEncode(strm);
  7959.  
  7960.   m_escrowID.Encode(strm);
  7961.   m_escrowValue.Encode(strm);
  7962.  
  7963.   UnknownExtensionsEncode(strm);
  7964. }
  7965.  
  7966.  
  7967. PObject * H245_EscrowData::Clone() const
  7968. {
  7969. #ifndef PASN_LEANANDMEAN
  7970.   PAssert(IsClass(H245_EscrowData::Class()), PInvalidCast);
  7971. #endif
  7972.   return new H245_EscrowData(*this);
  7973. }
  7974.  
  7975.  
  7976. //
  7977. // OpenLogicalChannelConfirm
  7978. //
  7979.  
  7980. H245_OpenLogicalChannelConfirm::H245_OpenLogicalChannelConfirm(unsigned tag, PASN_Object::TagClass tagClass)
  7981.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7982. {
  7983. }
  7984.  
  7985.  
  7986. #ifndef PASN_NOPRINTON
  7987. void H245_OpenLogicalChannelConfirm::PrintOn(ostream & strm) const
  7988. {
  7989.   int indent = strm.precision() + 2;
  7990.   strm << "{\n";
  7991.   strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
  7992.   strm << setw(indent-1) << "}";
  7993. }
  7994. #endif
  7995.  
  7996.  
  7997. PObject::Comparison H245_OpenLogicalChannelConfirm::Compare(const PObject & obj) const
  7998. {
  7999. #ifndef PASN_LEANANDMEAN
  8000.   PAssert(IsDescendant(H245_OpenLogicalChannelConfirm::Class()), PInvalidCast);
  8001. #endif
  8002.   const H245_OpenLogicalChannelConfirm & other = (const H245_OpenLogicalChannelConfirm &)obj;
  8003.  
  8004.   Comparison result;
  8005.  
  8006.   if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
  8007.     return result;
  8008.  
  8009.   return PASN_Sequence::Compare(other);
  8010. }
  8011.  
  8012.  
  8013. PINDEX H245_OpenLogicalChannelConfirm::GetDataLength() const
  8014. {
  8015.   PINDEX length = 0;
  8016.   length += m_forwardLogicalChannelNumber.GetObjectLength();
  8017.   return length;
  8018. }
  8019.  
  8020.  
  8021. BOOL H245_OpenLogicalChannelConfirm::Decode(PASN_Stream & strm)
  8022. {
  8023.   if (!PreambleDecode(strm))
  8024.     return FALSE;
  8025.  
  8026.   if (!m_forwardLogicalChannelNumber.Decode(strm))
  8027.     return FALSE;
  8028.  
  8029.   return UnknownExtensionsDecode(strm);
  8030. }
  8031.  
  8032.  
  8033. void H245_OpenLogicalChannelConfirm::Encode(PASN_Stream & strm) const
  8034. {
  8035.   PreambleEncode(strm);
  8036.  
  8037.   m_forwardLogicalChannelNumber.Encode(strm);
  8038.  
  8039.   UnknownExtensionsEncode(strm);
  8040. }
  8041.  
  8042.  
  8043. PObject * H245_OpenLogicalChannelConfirm::Clone() const
  8044. {
  8045. #ifndef PASN_LEANANDMEAN
  8046.   PAssert(IsClass(H245_OpenLogicalChannelConfirm::Class()), PInvalidCast);
  8047. #endif
  8048.   return new H245_OpenLogicalChannelConfirm(*this);
  8049. }
  8050.  
  8051.  
  8052. //
  8053. // CloseLogicalChannelAck
  8054. //
  8055.  
  8056. H245_CloseLogicalChannelAck::H245_CloseLogicalChannelAck(unsigned tag, PASN_Object::TagClass tagClass)
  8057.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8058. {
  8059. }
  8060.  
  8061.  
  8062. #ifndef PASN_NOPRINTON
  8063. void H245_CloseLogicalChannelAck::PrintOn(ostream & strm) const
  8064. {
  8065.   int indent = strm.precision() + 2;
  8066.   strm << "{\n";
  8067.   strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
  8068.   strm << setw(indent-1) << "}";
  8069. }
  8070. #endif
  8071.  
  8072.  
  8073. PObject::Comparison H245_CloseLogicalChannelAck::Compare(const PObject & obj) const
  8074. {
  8075. #ifndef PASN_LEANANDMEAN
  8076.   PAssert(IsDescendant(H245_CloseLogicalChannelAck::Class()), PInvalidCast);
  8077. #endif
  8078.   const H245_CloseLogicalChannelAck & other = (const H245_CloseLogicalChannelAck &)obj;
  8079.  
  8080.   Comparison result;
  8081.  
  8082.   if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
  8083.     return result;
  8084.  
  8085.   return PASN_Sequence::Compare(other);
  8086. }
  8087.  
  8088.  
  8089. PINDEX H245_CloseLogicalChannelAck::GetDataLength() const
  8090. {
  8091.   PINDEX length = 0;
  8092.   length += m_forwardLogicalChannelNumber.GetObjectLength();
  8093.   return length;
  8094. }
  8095.  
  8096.  
  8097. BOOL H245_CloseLogicalChannelAck::Decode(PASN_Stream & strm)
  8098. {
  8099.   if (!PreambleDecode(strm))
  8100.     return FALSE;
  8101.  
  8102.   if (!m_forwardLogicalChannelNumber.Decode(strm))
  8103.     return FALSE;
  8104.  
  8105.   return UnknownExtensionsDecode(strm);
  8106. }
  8107.  
  8108.  
  8109. void H245_CloseLogicalChannelAck::Encode(PASN_Stream & strm) const
  8110. {
  8111.   PreambleEncode(strm);
  8112.  
  8113.   m_forwardLogicalChannelNumber.Encode(strm);
  8114.  
  8115.   UnknownExtensionsEncode(strm);
  8116. }
  8117.  
  8118.  
  8119. PObject * H245_CloseLogicalChannelAck::Clone() const
  8120. {
  8121. #ifndef PASN_LEANANDMEAN
  8122.   PAssert(IsClass(H245_CloseLogicalChannelAck::Class()), PInvalidCast);
  8123. #endif
  8124.   return new H245_CloseLogicalChannelAck(*this);
  8125. }
  8126.  
  8127.  
  8128. //
  8129. // RequestChannelCloseAck
  8130. //
  8131.  
  8132. H245_RequestChannelCloseAck::H245_RequestChannelCloseAck(unsigned tag, PASN_Object::TagClass tagClass)
  8133.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8134. {
  8135. }
  8136.  
  8137.  
  8138. #ifndef PASN_NOPRINTON
  8139. void H245_RequestChannelCloseAck::PrintOn(ostream & strm) const
  8140. {
  8141.   int indent = strm.precision() + 2;
  8142.   strm << "{\n";
  8143.   strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
  8144.   strm << setw(indent-1) << "}";
  8145. }
  8146. #endif
  8147.  
  8148.  
  8149. PObject::Comparison H245_RequestChannelCloseAck::Compare(const PObject & obj) const
  8150. {
  8151. #ifndef PASN_LEANANDMEAN
  8152.   PAssert(IsDescendant(H245_RequestChannelCloseAck::Class()), PInvalidCast);
  8153. #endif
  8154.   const H245_RequestChannelCloseAck & other = (const H245_RequestChannelCloseAck &)obj;
  8155.  
  8156.   Comparison result;
  8157.  
  8158.   if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
  8159.     return result;
  8160.  
  8161.   return PASN_Sequence::Compare(other);
  8162. }
  8163.  
  8164.  
  8165. PINDEX H245_RequestChannelCloseAck::GetDataLength() const
  8166. {
  8167.   PINDEX length = 0;
  8168.   length += m_forwardLogicalChannelNumber.GetObjectLength();
  8169.   return length;
  8170. }
  8171.  
  8172.  
  8173. BOOL H245_RequestChannelCloseAck::Decode(PASN_Stream & strm)
  8174. {
  8175.   if (!PreambleDecode(strm))
  8176.     return FALSE;
  8177.  
  8178.   if (!m_forwardLogicalChannelNumber.Decode(strm))
  8179.     return FALSE;
  8180.  
  8181.   return UnknownExtensionsDecode(strm);
  8182. }
  8183.  
  8184.  
  8185. void H245_RequestChannelCloseAck::Encode(PASN_Stream & strm) const
  8186. {
  8187.   PreambleEncode(strm);
  8188.  
  8189.   m_forwardLogicalChannelNumber.Encode(strm);
  8190.  
  8191.   UnknownExtensionsEncode(strm);
  8192. }
  8193.  
  8194.  
  8195. PObject * H245_RequestChannelCloseAck::Clone() const
  8196. {
  8197. #ifndef PASN_LEANANDMEAN
  8198.   PAssert(IsClass(H245_RequestChannelCloseAck::Class()), PInvalidCast);
  8199. #endif
  8200.   return new H245_RequestChannelCloseAck(*this);
  8201. }
  8202.  
  8203.  
  8204. //
  8205. // RequestChannelCloseRelease
  8206. //
  8207.  
  8208. H245_RequestChannelCloseRelease::H245_RequestChannelCloseRelease(unsigned tag, PASN_Object::TagClass tagClass)
  8209.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8210. {
  8211. }
  8212.  
  8213.  
  8214. #ifndef PASN_NOPRINTON
  8215. void H245_RequestChannelCloseRelease::PrintOn(ostream & strm) const
  8216. {
  8217.   int indent = strm.precision() + 2;
  8218.   strm << "{\n";
  8219.   strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
  8220.   strm << setw(indent-1) << "}";
  8221. }
  8222. #endif
  8223.  
  8224.  
  8225. PObject::Comparison H245_RequestChannelCloseRelease::Compare(const PObject & obj) const
  8226. {
  8227. #ifndef PASN_LEANANDMEAN
  8228.   PAssert(IsDescendant(H245_RequestChannelCloseRelease::Class()), PInvalidCast);
  8229. #endif
  8230.   const H245_RequestChannelCloseRelease & other = (const H245_RequestChannelCloseRelease &)obj;
  8231.  
  8232.   Comparison result;
  8233.  
  8234.   if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
  8235.     return result;
  8236.  
  8237.   return PASN_Sequence::Compare(other);
  8238. }
  8239.  
  8240.  
  8241. PINDEX H245_RequestChannelCloseRelease::GetDataLength() const
  8242. {
  8243.   PINDEX length = 0;
  8244.   length += m_forwardLogicalChannelNumber.GetObjectLength();
  8245.   return length;
  8246. }
  8247.  
  8248.  
  8249. BOOL H245_RequestChannelCloseRelease::Decode(PASN_Stream & strm)
  8250. {
  8251.   if (!PreambleDecode(strm))
  8252.     return FALSE;
  8253.  
  8254.   if (!m_forwardLogicalChannelNumber.Decode(strm))
  8255.     return FALSE;
  8256.  
  8257.   return UnknownExtensionsDecode(strm);
  8258. }
  8259.  
  8260.  
  8261. void H245_RequestChannelCloseRelease::Encode(PASN_Stream & strm) const
  8262. {
  8263.   PreambleEncode(strm);
  8264.  
  8265.   m_forwardLogicalChannelNumber.Encode(strm);
  8266.  
  8267.   UnknownExtensionsEncode(strm);
  8268. }
  8269.  
  8270.  
  8271. PObject * H245_RequestChannelCloseRelease::Clone() const
  8272. {
  8273. #ifndef PASN_LEANANDMEAN
  8274.   PAssert(IsClass(H245_RequestChannelCloseRelease::Class()), PInvalidCast);
  8275. #endif
  8276.   return new H245_RequestChannelCloseRelease(*this);
  8277. }
  8278.  
  8279.  
  8280. //
  8281. // MultiplexTableEntryNumber
  8282. //
  8283.  
  8284. H245_MultiplexTableEntryNumber::H245_MultiplexTableEntryNumber(unsigned tag, PASN_Object::TagClass tagClass)
  8285.   : PASN_Integer(tag, tagClass)
  8286. {
  8287.   SetConstraints(PASN_Object::FixedConstraint, 1, 15);
  8288. }
  8289.  
  8290.  
  8291. H245_MultiplexTableEntryNumber & H245_MultiplexTableEntryNumber::operator=(int v)
  8292. {
  8293.   SetValue(v);
  8294.   return *this;
  8295. }
  8296.  
  8297.  
  8298. H245_MultiplexTableEntryNumber & H245_MultiplexTableEntryNumber::operator=(unsigned v)
  8299. {
  8300.   SetValue(v);
  8301.   return *this;
  8302. }
  8303.  
  8304.  
  8305. PObject * H245_MultiplexTableEntryNumber::Clone() const
  8306. {
  8307. #ifndef PASN_LEANANDMEAN
  8308.   PAssert(IsClass(H245_MultiplexTableEntryNumber::Class()), PInvalidCast);
  8309. #endif
  8310.   return new H245_MultiplexTableEntryNumber(*this);
  8311. }
  8312.  
  8313.  
  8314. //
  8315. // RequestModeRelease
  8316. //
  8317.  
  8318. H245_RequestModeRelease::H245_RequestModeRelease(unsigned tag, PASN_Object::TagClass tagClass)
  8319.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8320. {
  8321. }
  8322.  
  8323.  
  8324. #ifndef PASN_NOPRINTON
  8325. void H245_RequestModeRelease::PrintOn(ostream & strm) const
  8326. {
  8327.   int indent = strm.precision() + 2;
  8328.   strm << "{\n";
  8329.   strm << setw(indent-1) << "}";
  8330. }
  8331. #endif
  8332.  
  8333.  
  8334. PINDEX H245_RequestModeRelease::GetDataLength() const
  8335. {
  8336.   PINDEX length = 0;
  8337.   return length;
  8338. }
  8339.  
  8340.  
  8341. BOOL H245_RequestModeRelease::Decode(PASN_Stream & strm)
  8342. {
  8343.   if (!PreambleDecode(strm))
  8344.     return FALSE;
  8345.  
  8346.  
  8347.   return UnknownExtensionsDecode(strm);
  8348. }
  8349.  
  8350.  
  8351. void H245_RequestModeRelease::Encode(PASN_Stream & strm) const
  8352. {
  8353.   PreambleEncode(strm);
  8354.  
  8355.  
  8356.   UnknownExtensionsEncode(strm);
  8357. }
  8358.  
  8359.  
  8360. PObject * H245_RequestModeRelease::Clone() const
  8361. {
  8362. #ifndef PASN_LEANANDMEAN
  8363.   PAssert(IsClass(H245_RequestModeRelease::Class()), PInvalidCast);
  8364. #endif
  8365.   return new H245_RequestModeRelease(*this);
  8366. }
  8367.  
  8368.  
  8369. //
  8370. // ModeDescription
  8371. //
  8372.  
  8373. H245_ModeDescription::H245_ModeDescription(unsigned tag, PASN_Object::TagClass tagClass)
  8374.   : PASN_Array(tag, tagClass)
  8375. {
  8376.   SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  8377. }
  8378.  
  8379.  
  8380. PASN_Object * H245_ModeDescription::CreateObject() const
  8381. {
  8382.   return new H245_ModeElement;
  8383. }
  8384.  
  8385.  
  8386. H245_ModeElement & H245_ModeDescription::operator[](PINDEX i) const
  8387. {
  8388.   return (H245_ModeElement &)array[i];
  8389. }
  8390.  
  8391.  
  8392. PObject * H245_ModeDescription::Clone() const
  8393. {
  8394. #ifndef PASN_LEANANDMEAN
  8395.   PAssert(IsClass(H245_ModeDescription::Class()), PInvalidCast);
  8396. #endif
  8397.   return new H245_ModeDescription(*this);
  8398. }
  8399.  
  8400.  
  8401. //
  8402. // MultiplexedStreamModeParameters
  8403. //
  8404.  
  8405. H245_MultiplexedStreamModeParameters::H245_MultiplexedStreamModeParameters(unsigned tag, PASN_Object::TagClass tagClass)
  8406.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8407. {
  8408. }
  8409.  
  8410.  
  8411. #ifndef PASN_NOPRINTON
  8412. void H245_MultiplexedStreamModeParameters::PrintOn(ostream & strm) const
  8413. {
  8414.   int indent = strm.precision() + 2;
  8415.   strm << "{\n";
  8416.   strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
  8417.   strm << setw(indent-1) << "}";
  8418. }
  8419. #endif
  8420.  
  8421.  
  8422. PObject::Comparison H245_MultiplexedStreamModeParameters::Compare(const PObject & obj) const
  8423. {
  8424. #ifndef PASN_LEANANDMEAN
  8425.   PAssert(IsDescendant(H245_MultiplexedStreamModeParameters::Class()), PInvalidCast);
  8426. #endif
  8427.   const H245_MultiplexedStreamModeParameters & other = (const H245_MultiplexedStreamModeParameters &)obj;
  8428.  
  8429.   Comparison result;
  8430.  
  8431.   if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
  8432.     return result;
  8433.  
  8434.   return PASN_Sequence::Compare(other);
  8435. }
  8436.  
  8437.  
  8438. PINDEX H245_MultiplexedStreamModeParameters::GetDataLength() const
  8439. {
  8440.   PINDEX length = 0;
  8441.   length += m_logicalChannelNumber.GetObjectLength();
  8442.   return length;
  8443. }
  8444.  
  8445.  
  8446. BOOL H245_MultiplexedStreamModeParameters::Decode(PASN_Stream & strm)
  8447. {
  8448.   if (!PreambleDecode(strm))
  8449.     return FALSE;
  8450.  
  8451.   if (!m_logicalChannelNumber.Decode(strm))
  8452.     return FALSE;
  8453.  
  8454.   return UnknownExtensionsDecode(strm);
  8455. }
  8456.  
  8457.  
  8458. void H245_MultiplexedStreamModeParameters::Encode(PASN_Stream & strm) const
  8459. {
  8460.   PreambleEncode(strm);
  8461.  
  8462.   m_logicalChannelNumber.Encode(strm);
  8463.  
  8464.   UnknownExtensionsEncode(strm);
  8465. }
  8466.  
  8467.  
  8468. PObject * H245_MultiplexedStreamModeParameters::Clone() const
  8469. {
  8470. #ifndef PASN_LEANANDMEAN
  8471.   PAssert(IsClass(H245_MultiplexedStreamModeParameters::Class()), PInvalidCast);
  8472. #endif
  8473.   return new H245_MultiplexedStreamModeParameters(*this);
  8474. }
  8475.  
  8476.  
  8477. //
  8478. // V76ModeParameters
  8479. //
  8480.  
  8481. H245_V76ModeParameters::H245_V76ModeParameters(unsigned tag, PASN_Object::TagClass tagClass)
  8482.   : PASN_Choice(tag, tagClass, 2, TRUE
  8483. #ifndef PASN_NOPRINTON
  8484.       , "suspendResumewAddress "
  8485.         "suspendResumewoAddress "
  8486. #endif
  8487.     )
  8488. {
  8489. }
  8490.  
  8491.  
  8492. BOOL H245_V76ModeParameters::CreateObject()
  8493. {
  8494.   choice = (tag <= e_suspendResumewoAddress) ? new PASN_Null() : NULL;
  8495.   return choice != NULL;
  8496. }
  8497.  
  8498.  
  8499. PObject * H245_V76ModeParameters::Clone() const
  8500. {
  8501. #ifndef PASN_LEANANDMEAN
  8502.   PAssert(IsClass(H245_V76ModeParameters::Class()), PInvalidCast);
  8503. #endif
  8504.   return new H245_V76ModeParameters(*this);
  8505. }
  8506.  
  8507.  
  8508. //
  8509. // VideoMode
  8510. //
  8511.  
  8512. H245_VideoMode::H245_VideoMode(unsigned tag, PASN_Object::TagClass tagClass)
  8513.   : PASN_Choice(tag, tagClass, 5, TRUE
  8514. #ifndef PASN_NOPRINTON
  8515.       , "nonStandard "
  8516.         "h261VideoMode "
  8517.         "h262VideoMode "
  8518.         "h263VideoMode "
  8519.         "is11172VideoMode "
  8520.         "genericVideoMode "
  8521. #endif
  8522.     )
  8523. {
  8524. }
  8525.  
  8526.  
  8527. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8528. H245_VideoMode::operator H245_NonStandardParameter &() const
  8529. #else
  8530. H245_VideoMode::operator H245_NonStandardParameter &()
  8531. {
  8532. #ifndef PASN_LEANANDMEAN
  8533.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  8534. #endif
  8535.   return *(H245_NonStandardParameter *)choice;
  8536. }
  8537.  
  8538.  
  8539. H245_VideoMode::operator const H245_NonStandardParameter &() const
  8540. #endif
  8541. {
  8542. #ifndef PASN_LEANANDMEAN
  8543.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  8544. #endif
  8545.   return *(H245_NonStandardParameter *)choice;
  8546. }
  8547.  
  8548.  
  8549. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8550. H245_VideoMode::operator H245_H261VideoMode &() const
  8551. #else
  8552. H245_VideoMode::operator H245_H261VideoMode &()
  8553. {
  8554. #ifndef PASN_LEANANDMEAN
  8555.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H261VideoMode::Class()), PInvalidCast);
  8556. #endif
  8557.   return *(H245_H261VideoMode *)choice;
  8558. }
  8559.  
  8560.  
  8561. H245_VideoMode::operator const H245_H261VideoMode &() const
  8562. #endif
  8563. {
  8564. #ifndef PASN_LEANANDMEAN
  8565.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H261VideoMode::Class()), PInvalidCast);
  8566. #endif
  8567.   return *(H245_H261VideoMode *)choice;
  8568. }
  8569.  
  8570.  
  8571. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8572. H245_VideoMode::operator H245_H262VideoMode &() const
  8573. #else
  8574. H245_VideoMode::operator H245_H262VideoMode &()
  8575. {
  8576. #ifndef PASN_LEANANDMEAN
  8577.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H262VideoMode::Class()), PInvalidCast);
  8578. #endif
  8579.   return *(H245_H262VideoMode *)choice;
  8580. }
  8581.  
  8582.  
  8583. H245_VideoMode::operator const H245_H262VideoMode &() const
  8584. #endif
  8585. {
  8586. #ifndef PASN_LEANANDMEAN
  8587.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H262VideoMode::Class()), PInvalidCast);
  8588. #endif
  8589.   return *(H245_H262VideoMode *)choice;
  8590. }
  8591.  
  8592.  
  8593. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8594. H245_VideoMode::operator H245_H263VideoMode &() const
  8595. #else
  8596. H245_VideoMode::operator H245_H263VideoMode &()
  8597. {
  8598. #ifndef PASN_LEANANDMEAN
  8599.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H263VideoMode::Class()), PInvalidCast);
  8600. #endif
  8601.   return *(H245_H263VideoMode *)choice;
  8602. }
  8603.  
  8604.  
  8605. H245_VideoMode::operator const H245_H263VideoMode &() const
  8606. #endif
  8607. {
  8608. #ifndef PASN_LEANANDMEAN
  8609.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H263VideoMode::Class()), PInvalidCast);
  8610. #endif
  8611.   return *(H245_H263VideoMode *)choice;
  8612. }
  8613.  
  8614.  
  8615. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8616. H245_VideoMode::operator H245_IS11172VideoMode &() const
  8617. #else
  8618. H245_VideoMode::operator H245_IS11172VideoMode &()
  8619. {
  8620. #ifndef PASN_LEANANDMEAN
  8621.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172VideoMode::Class()), PInvalidCast);
  8622. #endif
  8623.   return *(H245_IS11172VideoMode *)choice;
  8624. }
  8625.  
  8626.  
  8627. H245_VideoMode::operator const H245_IS11172VideoMode &() const
  8628. #endif
  8629. {
  8630. #ifndef PASN_LEANANDMEAN
  8631.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172VideoMode::Class()), PInvalidCast);
  8632. #endif
  8633.   return *(H245_IS11172VideoMode *)choice;
  8634. }
  8635.  
  8636.  
  8637. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8638. H245_VideoMode::operator H245_GenericCapability &() const
  8639. #else
  8640. H245_VideoMode::operator H245_GenericCapability &()
  8641. {
  8642. #ifndef PASN_LEANANDMEAN
  8643.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  8644. #endif
  8645.   return *(H245_GenericCapability *)choice;
  8646. }
  8647.  
  8648.  
  8649. H245_VideoMode::operator const H245_GenericCapability &() const
  8650. #endif
  8651. {
  8652. #ifndef PASN_LEANANDMEAN
  8653.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  8654. #endif
  8655.   return *(H245_GenericCapability *)choice;
  8656. }
  8657.  
  8658.  
  8659. BOOL H245_VideoMode::CreateObject()
  8660. {
  8661.   switch (tag) {
  8662.     case e_nonStandard :
  8663.       choice = new H245_NonStandardParameter();
  8664.       return TRUE;
  8665.     case e_h261VideoMode :
  8666.       choice = new H245_H261VideoMode();
  8667.       return TRUE;
  8668.     case e_h262VideoMode :
  8669.       choice = new H245_H262VideoMode();
  8670.       return TRUE;
  8671.     case e_h263VideoMode :
  8672.       choice = new H245_H263VideoMode();
  8673.       return TRUE;
  8674.     case e_is11172VideoMode :
  8675.       choice = new H245_IS11172VideoMode();
  8676.       return TRUE;
  8677.     case e_genericVideoMode :
  8678.       choice = new H245_GenericCapability();
  8679.       return TRUE;
  8680.   }
  8681.  
  8682.   choice = NULL;
  8683.   return FALSE;
  8684. }
  8685.  
  8686.  
  8687. PObject * H245_VideoMode::Clone() const
  8688. {
  8689. #ifndef PASN_LEANANDMEAN
  8690.   PAssert(IsClass(H245_VideoMode::Class()), PInvalidCast);
  8691. #endif
  8692.   return new H245_VideoMode(*this);
  8693. }
  8694.  
  8695.  
  8696. //
  8697. // IS11172VideoMode
  8698. //
  8699.  
  8700. H245_IS11172VideoMode::H245_IS11172VideoMode(unsigned tag, PASN_Object::TagClass tagClass)
  8701.   : PASN_Sequence(tag, tagClass, 6, TRUE, 0)
  8702. {
  8703.   m_videoBitRate.SetConstraints(PASN_Object::FixedConstraint, 0, 1073741823);
  8704.   m_vbvBufferSize.SetConstraints(PASN_Object::FixedConstraint, 0, 262143);
  8705.   m_samplesPerLine.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
  8706.   m_linesPerFrame.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
  8707.   m_pictureRate.SetConstraints(PASN_Object::FixedConstraint, 0, 15);
  8708.   m_luminanceSampleRate.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  8709. }
  8710.  
  8711.  
  8712. #ifndef PASN_NOPRINTON
  8713. void H245_IS11172VideoMode::PrintOn(ostream & strm) const
  8714. {
  8715.   int indent = strm.precision() + 2;
  8716.   strm << "{\n";
  8717.   strm << setw(indent+23) << "constrainedBitstream = " << setprecision(indent) << m_constrainedBitstream << '\n';
  8718.   if (HasOptionalField(e_videoBitRate))
  8719.     strm << setw(indent+15) << "videoBitRate = " << setprecision(indent) << m_videoBitRate << '\n';
  8720.   if (HasOptionalField(e_vbvBufferSize))
  8721.     strm << setw(indent+16) << "vbvBufferSize = " << setprecision(indent) << m_vbvBufferSize << '\n';
  8722.   if (HasOptionalField(e_samplesPerLine))
  8723.     strm << setw(indent+17) << "samplesPerLine = " << setprecision(indent) << m_samplesPerLine << '\n';
  8724.   if (HasOptionalField(e_linesPerFrame))
  8725.     strm << setw(indent+16) << "linesPerFrame = " << setprecision(indent) << m_linesPerFrame << '\n';
  8726.   if (HasOptionalField(e_pictureRate))
  8727.     strm << setw(indent+14) << "pictureRate = " << setprecision(indent) << m_pictureRate << '\n';
  8728.   if (HasOptionalField(e_luminanceSampleRate))
  8729.     strm << setw(indent+22) << "luminanceSampleRate = " << setprecision(indent) << m_luminanceSampleRate << '\n';
  8730.   strm << setw(indent-1) << "}";
  8731. }
  8732. #endif
  8733.  
  8734.  
  8735. PObject::Comparison H245_IS11172VideoMode::Compare(const PObject & obj) const
  8736. {
  8737. #ifndef PASN_LEANANDMEAN
  8738.   PAssert(IsDescendant(H245_IS11172VideoMode::Class()), PInvalidCast);
  8739. #endif
  8740.   const H245_IS11172VideoMode & other = (const H245_IS11172VideoMode &)obj;
  8741.  
  8742.   Comparison result;
  8743.  
  8744.   if ((result = m_constrainedBitstream.Compare(other.m_constrainedBitstream)) != EqualTo)
  8745.     return result;
  8746.   if ((result = m_videoBitRate.Compare(other.m_videoBitRate)) != EqualTo)
  8747.     return result;
  8748.   if ((result = m_vbvBufferSize.Compare(other.m_vbvBufferSize)) != EqualTo)
  8749.     return result;
  8750.   if ((result = m_samplesPerLine.Compare(other.m_samplesPerLine)) != EqualTo)
  8751.     return result;
  8752.   if ((result = m_linesPerFrame.Compare(other.m_linesPerFrame)) != EqualTo)
  8753.     return result;
  8754.   if ((result = m_pictureRate.Compare(other.m_pictureRate)) != EqualTo)
  8755.     return result;
  8756.   if ((result = m_luminanceSampleRate.Compare(other.m_luminanceSampleRate)) != EqualTo)
  8757.     return result;
  8758.  
  8759.   return PASN_Sequence::Compare(other);
  8760. }
  8761.  
  8762.  
  8763. PINDEX H245_IS11172VideoMode::GetDataLength() const
  8764. {
  8765.   PINDEX length = 0;
  8766.   length += m_constrainedBitstream.GetObjectLength();
  8767.   if (HasOptionalField(e_videoBitRate))
  8768.     length += m_videoBitRate.GetObjectLength();
  8769.   if (HasOptionalField(e_vbvBufferSize))
  8770.     length += m_vbvBufferSize.GetObjectLength();
  8771.   if (HasOptionalField(e_samplesPerLine))
  8772.     length += m_samplesPerLine.GetObjectLength();
  8773.   if (HasOptionalField(e_linesPerFrame))
  8774.     length += m_linesPerFrame.GetObjectLength();
  8775.   if (HasOptionalField(e_pictureRate))
  8776.     length += m_pictureRate.GetObjectLength();
  8777.   if (HasOptionalField(e_luminanceSampleRate))
  8778.     length += m_luminanceSampleRate.GetObjectLength();
  8779.   return length;
  8780. }
  8781.  
  8782.  
  8783. BOOL H245_IS11172VideoMode::Decode(PASN_Stream & strm)
  8784. {
  8785.   if (!PreambleDecode(strm))
  8786.     return FALSE;
  8787.  
  8788.   if (!m_constrainedBitstream.Decode(strm))
  8789.     return FALSE;
  8790.   if (HasOptionalField(e_videoBitRate) && !m_videoBitRate.Decode(strm))
  8791.     return FALSE;
  8792.   if (HasOptionalField(e_vbvBufferSize) && !m_vbvBufferSize.Decode(strm))
  8793.     return FALSE;
  8794.   if (HasOptionalField(e_samplesPerLine) && !m_samplesPerLine.Decode(strm))
  8795.     return FALSE;
  8796.   if (HasOptionalField(e_linesPerFrame) && !m_linesPerFrame.Decode(strm))
  8797.     return FALSE;
  8798.   if (HasOptionalField(e_pictureRate) && !m_pictureRate.Decode(strm))
  8799.     return FALSE;
  8800.   if (HasOptionalField(e_luminanceSampleRate) && !m_luminanceSampleRate.Decode(strm))
  8801.     return FALSE;
  8802.  
  8803.   return UnknownExtensionsDecode(strm);
  8804. }
  8805.  
  8806.  
  8807. void H245_IS11172VideoMode::Encode(PASN_Stream & strm) const
  8808. {
  8809.   PreambleEncode(strm);
  8810.  
  8811.   m_constrainedBitstream.Encode(strm);
  8812.   if (HasOptionalField(e_videoBitRate))
  8813.     m_videoBitRate.Encode(strm);
  8814.   if (HasOptionalField(e_vbvBufferSize))
  8815.     m_vbvBufferSize.Encode(strm);
  8816.   if (HasOptionalField(e_samplesPerLine))
  8817.     m_samplesPerLine.Encode(strm);
  8818.   if (HasOptionalField(e_linesPerFrame))
  8819.     m_linesPerFrame.Encode(strm);
  8820.   if (HasOptionalField(e_pictureRate))
  8821.     m_pictureRate.Encode(strm);
  8822.   if (HasOptionalField(e_luminanceSampleRate))
  8823.     m_luminanceSampleRate.Encode(strm);
  8824.  
  8825.   UnknownExtensionsEncode(strm);
  8826. }
  8827.  
  8828.  
  8829. PObject * H245_IS11172VideoMode::Clone() const
  8830. {
  8831. #ifndef PASN_LEANANDMEAN
  8832.   PAssert(IsClass(H245_IS11172VideoMode::Class()), PInvalidCast);
  8833. #endif
  8834.   return new H245_IS11172VideoMode(*this);
  8835. }
  8836.  
  8837.  
  8838. //
  8839. // AudioMode
  8840. //
  8841.  
  8842. H245_AudioMode::H245_AudioMode(unsigned tag, PASN_Object::TagClass tagClass)
  8843.   : PASN_Choice(tag, tagClass, 14, TRUE
  8844. #ifndef PASN_NOPRINTON
  8845.       , "nonStandard "
  8846.         "g711Alaw64k "
  8847.         "g711Alaw56k "
  8848.         "g711Ulaw64k "
  8849.         "g711Ulaw56k "
  8850.         "g722_64k "
  8851.         "g722_56k "
  8852.         "g722_48k "
  8853.         "g728 "
  8854.         "g729 "
  8855.         "g729AnnexA "
  8856.         "g7231 "
  8857.         "is11172AudioMode "
  8858.         "is13818AudioMode "
  8859.         "g729wAnnexB "
  8860.         "g729AnnexAwAnnexB "
  8861.         "g7231AnnexCMode "
  8862.         "gsmFullRate "
  8863.         "gsmHalfRate "
  8864.         "gsmEnhancedFullRate "
  8865.         "genericAudioMode "
  8866.         "g729Extensions "
  8867. #endif
  8868.     )
  8869. {
  8870. }
  8871.  
  8872.  
  8873. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8874. H245_AudioMode::operator H245_NonStandardParameter &() const
  8875. #else
  8876. H245_AudioMode::operator H245_NonStandardParameter &()
  8877. {
  8878. #ifndef PASN_LEANANDMEAN
  8879.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  8880. #endif
  8881.   return *(H245_NonStandardParameter *)choice;
  8882. }
  8883.  
  8884.  
  8885. H245_AudioMode::operator const H245_NonStandardParameter &() const
  8886. #endif
  8887. {
  8888. #ifndef PASN_LEANANDMEAN
  8889.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  8890. #endif
  8891.   return *(H245_NonStandardParameter *)choice;
  8892. }
  8893.  
  8894.  
  8895. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8896. H245_AudioMode::operator H245_AudioMode_g7231 &() const
  8897. #else
  8898. H245_AudioMode::operator H245_AudioMode_g7231 &()
  8899. {
  8900. #ifndef PASN_LEANANDMEAN
  8901.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode_g7231::Class()), PInvalidCast);
  8902. #endif
  8903.   return *(H245_AudioMode_g7231 *)choice;
  8904. }
  8905.  
  8906.  
  8907. H245_AudioMode::operator const H245_AudioMode_g7231 &() const
  8908. #endif
  8909. {
  8910. #ifndef PASN_LEANANDMEAN
  8911.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode_g7231::Class()), PInvalidCast);
  8912. #endif
  8913.   return *(H245_AudioMode_g7231 *)choice;
  8914. }
  8915.  
  8916.  
  8917. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8918. H245_AudioMode::operator H245_IS11172AudioMode &() const
  8919. #else
  8920. H245_AudioMode::operator H245_IS11172AudioMode &()
  8921. {
  8922. #ifndef PASN_LEANANDMEAN
  8923.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172AudioMode::Class()), PInvalidCast);
  8924. #endif
  8925.   return *(H245_IS11172AudioMode *)choice;
  8926. }
  8927.  
  8928.  
  8929. H245_AudioMode::operator const H245_IS11172AudioMode &() const
  8930. #endif
  8931. {
  8932. #ifndef PASN_LEANANDMEAN
  8933.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS11172AudioMode::Class()), PInvalidCast);
  8934. #endif
  8935.   return *(H245_IS11172AudioMode *)choice;
  8936. }
  8937.  
  8938.  
  8939. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8940. H245_AudioMode::operator H245_IS13818AudioMode &() const
  8941. #else
  8942. H245_AudioMode::operator H245_IS13818AudioMode &()
  8943. {
  8944. #ifndef PASN_LEANANDMEAN
  8945.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS13818AudioMode::Class()), PInvalidCast);
  8946. #endif
  8947.   return *(H245_IS13818AudioMode *)choice;
  8948. }
  8949.  
  8950.  
  8951. H245_AudioMode::operator const H245_IS13818AudioMode &() const
  8952. #endif
  8953. {
  8954. #ifndef PASN_LEANANDMEAN
  8955.   PAssert(PAssertNULL(choice)->IsDescendant(H245_IS13818AudioMode::Class()), PInvalidCast);
  8956. #endif
  8957.   return *(H245_IS13818AudioMode *)choice;
  8958. }
  8959.  
  8960.  
  8961. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8962. H245_AudioMode::operator H245_G7231AnnexCMode &() const
  8963. #else
  8964. H245_AudioMode::operator H245_G7231AnnexCMode &()
  8965. {
  8966. #ifndef PASN_LEANANDMEAN
  8967.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G7231AnnexCMode::Class()), PInvalidCast);
  8968. #endif
  8969.   return *(H245_G7231AnnexCMode *)choice;
  8970. }
  8971.  
  8972.  
  8973. H245_AudioMode::operator const H245_G7231AnnexCMode &() const
  8974. #endif
  8975. {
  8976. #ifndef PASN_LEANANDMEAN
  8977.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G7231AnnexCMode::Class()), PInvalidCast);
  8978. #endif
  8979.   return *(H245_G7231AnnexCMode *)choice;
  8980. }
  8981.  
  8982.  
  8983. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8984. H245_AudioMode::operator H245_GSMAudioCapability &() const
  8985. #else
  8986. H245_AudioMode::operator H245_GSMAudioCapability &()
  8987. {
  8988. #ifndef PASN_LEANANDMEAN
  8989.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GSMAudioCapability::Class()), PInvalidCast);
  8990. #endif
  8991.   return *(H245_GSMAudioCapability *)choice;
  8992. }
  8993.  
  8994.  
  8995. H245_AudioMode::operator const H245_GSMAudioCapability &() const
  8996. #endif
  8997. {
  8998. #ifndef PASN_LEANANDMEAN
  8999.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GSMAudioCapability::Class()), PInvalidCast);
  9000. #endif
  9001.   return *(H245_GSMAudioCapability *)choice;
  9002. }
  9003.  
  9004.  
  9005. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9006. H245_AudioMode::operator H245_GenericCapability &() const
  9007. #else
  9008. H245_AudioMode::operator H245_GenericCapability &()
  9009. {
  9010. #ifndef PASN_LEANANDMEAN
  9011.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  9012. #endif
  9013.   return *(H245_GenericCapability *)choice;
  9014. }
  9015.  
  9016.  
  9017. H245_AudioMode::operator const H245_GenericCapability &() const
  9018. #endif
  9019. {
  9020. #ifndef PASN_LEANANDMEAN
  9021.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  9022. #endif
  9023.   return *(H245_GenericCapability *)choice;
  9024. }
  9025.  
  9026.  
  9027. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9028. H245_AudioMode::operator H245_G729Extensions &() const
  9029. #else
  9030. H245_AudioMode::operator H245_G729Extensions &()
  9031. {
  9032. #ifndef PASN_LEANANDMEAN
  9033.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G729Extensions::Class()), PInvalidCast);
  9034. #endif
  9035.   return *(H245_G729Extensions *)choice;
  9036. }
  9037.  
  9038.  
  9039. H245_AudioMode::operator const H245_G729Extensions &() const
  9040. #endif
  9041. {
  9042. #ifndef PASN_LEANANDMEAN
  9043.   PAssert(PAssertNULL(choice)->IsDescendant(H245_G729Extensions::Class()), PInvalidCast);
  9044. #endif
  9045.   return *(H245_G729Extensions *)choice;
  9046. }
  9047.  
  9048.  
  9049. BOOL H245_AudioMode::CreateObject()
  9050. {
  9051.   switch (tag) {
  9052.     case e_nonStandard :
  9053.       choice = new H245_NonStandardParameter();
  9054.       return TRUE;
  9055.     case e_g711Alaw64k :
  9056.     case e_g711Alaw56k :
  9057.     case e_g711Ulaw64k :
  9058.     case e_g711Ulaw56k :
  9059.     case e_g722_64k :
  9060.     case e_g722_56k :
  9061.     case e_g722_48k :
  9062.     case e_g728 :
  9063.     case e_g729 :
  9064.     case e_g729AnnexA :
  9065.       choice = new PASN_Null();
  9066.       return TRUE;
  9067.     case e_g7231 :
  9068.       choice = new H245_AudioMode_g7231();
  9069.       return TRUE;
  9070.     case e_is11172AudioMode :
  9071.       choice = new H245_IS11172AudioMode();
  9072.       return TRUE;
  9073.     case e_is13818AudioMode :
  9074.       choice = new H245_IS13818AudioMode();
  9075.       return TRUE;
  9076.     case e_g729wAnnexB :
  9077.       choice = new PASN_Integer();
  9078.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  9079.       return TRUE;
  9080.     case e_g729AnnexAwAnnexB :
  9081.       choice = new PASN_Integer();
  9082.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  9083.       return TRUE;
  9084.     case e_g7231AnnexCMode :
  9085.       choice = new H245_G7231AnnexCMode();
  9086.       return TRUE;
  9087.     case e_gsmFullRate :
  9088.     case e_gsmHalfRate :
  9089.     case e_gsmEnhancedFullRate :
  9090.       choice = new H245_GSMAudioCapability();
  9091.       return TRUE;
  9092.     case e_genericAudioMode :
  9093.       choice = new H245_GenericCapability();
  9094.       return TRUE;
  9095.     case e_g729Extensions :
  9096.       choice = new H245_G729Extensions();
  9097.       return TRUE;
  9098.   }
  9099.  
  9100.   choice = NULL;
  9101.   return FALSE;
  9102. }
  9103.  
  9104.  
  9105. PObject * H245_AudioMode::Clone() const
  9106. {
  9107. #ifndef PASN_LEANANDMEAN
  9108.   PAssert(IsClass(H245_AudioMode::Class()), PInvalidCast);
  9109. #endif
  9110.   return new H245_AudioMode(*this);
  9111. }
  9112.  
  9113.  
  9114. //
  9115. // EncryptionMode
  9116. //
  9117.  
  9118. H245_EncryptionMode::H245_EncryptionMode(unsigned tag, PASN_Object::TagClass tagClass)
  9119.   : PASN_Choice(tag, tagClass, 2, TRUE
  9120. #ifndef PASN_NOPRINTON
  9121.       , "nonStandard "
  9122.         "h233Encryption "
  9123. #endif
  9124.     )
  9125. {
  9126. }
  9127.  
  9128.  
  9129. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9130. H245_EncryptionMode::operator H245_NonStandardParameter &() const
  9131. #else
  9132. H245_EncryptionMode::operator H245_NonStandardParameter &()
  9133. {
  9134. #ifndef PASN_LEANANDMEAN
  9135.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  9136. #endif
  9137.   return *(H245_NonStandardParameter *)choice;
  9138. }
  9139.  
  9140.  
  9141. H245_EncryptionMode::operator const H245_NonStandardParameter &() const
  9142. #endif
  9143. {
  9144. #ifndef PASN_LEANANDMEAN
  9145.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  9146. #endif
  9147.   return *(H245_NonStandardParameter *)choice;
  9148. }
  9149.  
  9150.  
  9151. BOOL H245_EncryptionMode::CreateObject()
  9152. {
  9153.   switch (tag) {
  9154.     case e_nonStandard :
  9155.       choice = new H245_NonStandardParameter();
  9156.       return TRUE;
  9157.     case e_h233Encryption :
  9158.       choice = new PASN_Null();
  9159.       return TRUE;
  9160.   }
  9161.  
  9162.   choice = NULL;
  9163.   return FALSE;
  9164. }
  9165.  
  9166.  
  9167. PObject * H245_EncryptionMode::Clone() const
  9168. {
  9169. #ifndef PASN_LEANANDMEAN
  9170.   PAssert(IsClass(H245_EncryptionMode::Class()), PInvalidCast);
  9171. #endif
  9172.   return new H245_EncryptionMode(*this);
  9173. }
  9174.  
  9175.  
  9176. //
  9177. // RoundTripDelayRequest
  9178. //
  9179.  
  9180. H245_RoundTripDelayRequest::H245_RoundTripDelayRequest(unsigned tag, PASN_Object::TagClass tagClass)
  9181.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9182. {
  9183. }
  9184.  
  9185.  
  9186. #ifndef PASN_NOPRINTON
  9187. void H245_RoundTripDelayRequest::PrintOn(ostream & strm) const
  9188. {
  9189.   int indent = strm.precision() + 2;
  9190.   strm << "{\n";
  9191.   strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
  9192.   strm << setw(indent-1) << "}";
  9193. }
  9194. #endif
  9195.  
  9196.  
  9197. PObject::Comparison H245_RoundTripDelayRequest::Compare(const PObject & obj) const
  9198. {
  9199. #ifndef PASN_LEANANDMEAN
  9200.   PAssert(IsDescendant(H245_RoundTripDelayRequest::Class()), PInvalidCast);
  9201. #endif
  9202.   const H245_RoundTripDelayRequest & other = (const H245_RoundTripDelayRequest &)obj;
  9203.  
  9204.   Comparison result;
  9205.  
  9206.   if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
  9207.     return result;
  9208.  
  9209.   return PASN_Sequence::Compare(other);
  9210. }
  9211.  
  9212.  
  9213. PINDEX H245_RoundTripDelayRequest::GetDataLength() const
  9214. {
  9215.   PINDEX length = 0;
  9216.   length += m_sequenceNumber.GetObjectLength();
  9217.   return length;
  9218. }
  9219.  
  9220.  
  9221. BOOL H245_RoundTripDelayRequest::Decode(PASN_Stream & strm)
  9222. {
  9223.   if (!PreambleDecode(strm))
  9224.     return FALSE;
  9225.  
  9226.   if (!m_sequenceNumber.Decode(strm))
  9227.     return FALSE;
  9228.  
  9229.   return UnknownExtensionsDecode(strm);
  9230. }
  9231.  
  9232.  
  9233. void H245_RoundTripDelayRequest::Encode(PASN_Stream & strm) const
  9234. {
  9235.   PreambleEncode(strm);
  9236.  
  9237.   m_sequenceNumber.Encode(strm);
  9238.  
  9239.   UnknownExtensionsEncode(strm);
  9240. }
  9241.  
  9242.  
  9243. PObject * H245_RoundTripDelayRequest::Clone() const
  9244. {
  9245. #ifndef PASN_LEANANDMEAN
  9246.   PAssert(IsClass(H245_RoundTripDelayRequest::Class()), PInvalidCast);
  9247. #endif
  9248.   return new H245_RoundTripDelayRequest(*this);
  9249. }
  9250.  
  9251.  
  9252. //
  9253. // RoundTripDelayResponse
  9254. //
  9255.  
  9256. H245_RoundTripDelayResponse::H245_RoundTripDelayResponse(unsigned tag, PASN_Object::TagClass tagClass)
  9257.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9258. {
  9259. }
  9260.  
  9261.  
  9262. #ifndef PASN_NOPRINTON
  9263. void H245_RoundTripDelayResponse::PrintOn(ostream & strm) const
  9264. {
  9265.   int indent = strm.precision() + 2;
  9266.   strm << "{\n";
  9267.   strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
  9268.   strm << setw(indent-1) << "}";
  9269. }
  9270. #endif
  9271.  
  9272.  
  9273. PObject::Comparison H245_RoundTripDelayResponse::Compare(const PObject & obj) const
  9274. {
  9275. #ifndef PASN_LEANANDMEAN
  9276.   PAssert(IsDescendant(H245_RoundTripDelayResponse::Class()), PInvalidCast);
  9277. #endif
  9278.   const H245_RoundTripDelayResponse & other = (const H245_RoundTripDelayResponse &)obj;
  9279.  
  9280.   Comparison result;
  9281.  
  9282.   if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
  9283.     return result;
  9284.  
  9285.   return PASN_Sequence::Compare(other);
  9286. }
  9287.  
  9288.  
  9289. PINDEX H245_RoundTripDelayResponse::GetDataLength() const
  9290. {
  9291.   PINDEX length = 0;
  9292.   length += m_sequenceNumber.GetObjectLength();
  9293.   return length;
  9294. }
  9295.  
  9296.  
  9297. BOOL H245_RoundTripDelayResponse::Decode(PASN_Stream & strm)
  9298. {
  9299.   if (!PreambleDecode(strm))
  9300.     return FALSE;
  9301.  
  9302.   if (!m_sequenceNumber.Decode(strm))
  9303.     return FALSE;
  9304.  
  9305.   return UnknownExtensionsDecode(strm);
  9306. }
  9307.  
  9308.  
  9309. void H245_RoundTripDelayResponse::Encode(PASN_Stream & strm) const
  9310. {
  9311.   PreambleEncode(strm);
  9312.  
  9313.   m_sequenceNumber.Encode(strm);
  9314.  
  9315.   UnknownExtensionsEncode(strm);
  9316. }
  9317.  
  9318.  
  9319. PObject * H245_RoundTripDelayResponse::Clone() const
  9320. {
  9321. #ifndef PASN_LEANANDMEAN
  9322.   PAssert(IsClass(H245_RoundTripDelayResponse::Class()), PInvalidCast);
  9323. #endif
  9324.   return new H245_RoundTripDelayResponse(*this);
  9325. }
  9326.  
  9327.  
  9328. //
  9329. // MaintenanceLoopOffCommand
  9330. //
  9331.  
  9332. H245_MaintenanceLoopOffCommand::H245_MaintenanceLoopOffCommand(unsigned tag, PASN_Object::TagClass tagClass)
  9333.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9334. {
  9335. }
  9336.  
  9337.  
  9338. #ifndef PASN_NOPRINTON
  9339. void H245_MaintenanceLoopOffCommand::PrintOn(ostream & strm) const
  9340. {
  9341.   int indent = strm.precision() + 2;
  9342.   strm << "{\n";
  9343.   strm << setw(indent-1) << "}";
  9344. }
  9345. #endif
  9346.  
  9347.  
  9348. PINDEX H245_MaintenanceLoopOffCommand::GetDataLength() const
  9349. {
  9350.   PINDEX length = 0;
  9351.   return length;
  9352. }
  9353.  
  9354.  
  9355. BOOL H245_MaintenanceLoopOffCommand::Decode(PASN_Stream & strm)
  9356. {
  9357.   if (!PreambleDecode(strm))
  9358.     return FALSE;
  9359.  
  9360.  
  9361.   return UnknownExtensionsDecode(strm);
  9362. }
  9363.  
  9364.  
  9365. void H245_MaintenanceLoopOffCommand::Encode(PASN_Stream & strm) const
  9366. {
  9367.   PreambleEncode(strm);
  9368.  
  9369.  
  9370.   UnknownExtensionsEncode(strm);
  9371. }
  9372.  
  9373.  
  9374. PObject * H245_MaintenanceLoopOffCommand::Clone() const
  9375. {
  9376. #ifndef PASN_LEANANDMEAN
  9377.   PAssert(IsClass(H245_MaintenanceLoopOffCommand::Class()), PInvalidCast);
  9378. #endif
  9379.   return new H245_MaintenanceLoopOffCommand(*this);
  9380. }
  9381.  
  9382.  
  9383. //
  9384. // CommunicationModeRequest
  9385. //
  9386.  
  9387. H245_CommunicationModeRequest::H245_CommunicationModeRequest(unsigned tag, PASN_Object::TagClass tagClass)
  9388.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9389. {
  9390. }
  9391.  
  9392.  
  9393. #ifndef PASN_NOPRINTON
  9394. void H245_CommunicationModeRequest::PrintOn(ostream & strm) const
  9395. {
  9396.   int indent = strm.precision() + 2;
  9397.   strm << "{\n";
  9398.   strm << setw(indent-1) << "}";
  9399. }
  9400. #endif
  9401.  
  9402.  
  9403. PINDEX H245_CommunicationModeRequest::GetDataLength() const
  9404. {
  9405.   PINDEX length = 0;
  9406.   return length;
  9407. }
  9408.  
  9409.  
  9410. BOOL H245_CommunicationModeRequest::Decode(PASN_Stream & strm)
  9411. {
  9412.   if (!PreambleDecode(strm))
  9413.     return FALSE;
  9414.  
  9415.  
  9416.   return UnknownExtensionsDecode(strm);
  9417. }
  9418.  
  9419.  
  9420. void H245_CommunicationModeRequest::Encode(PASN_Stream & strm) const
  9421. {
  9422.   PreambleEncode(strm);
  9423.  
  9424.  
  9425.   UnknownExtensionsEncode(strm);
  9426. }
  9427.  
  9428.  
  9429. PObject * H245_CommunicationModeRequest::Clone() const
  9430. {
  9431. #ifndef PASN_LEANANDMEAN
  9432.   PAssert(IsClass(H245_CommunicationModeRequest::Class()), PInvalidCast);
  9433. #endif
  9434.   return new H245_CommunicationModeRequest(*this);
  9435. }
  9436.  
  9437.  
  9438. //
  9439. // CommunicationModeResponse
  9440. //
  9441.  
  9442. H245_CommunicationModeResponse::H245_CommunicationModeResponse(unsigned tag, PASN_Object::TagClass tagClass)
  9443.   : PASN_Choice(tag, tagClass, 1, TRUE
  9444. #ifndef PASN_NOPRINTON
  9445.       , "communicationModeTable "
  9446. #endif
  9447.     )
  9448. {
  9449. }
  9450.  
  9451.  
  9452. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9453. H245_CommunicationModeResponse::operator H245_ArrayOf_CommunicationModeTableEntry &() const
  9454. #else
  9455. H245_CommunicationModeResponse::operator H245_ArrayOf_CommunicationModeTableEntry &()
  9456. {
  9457. #ifndef PASN_LEANANDMEAN
  9458.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_CommunicationModeTableEntry::Class()), PInvalidCast);
  9459. #endif
  9460.   return *(H245_ArrayOf_CommunicationModeTableEntry *)choice;
  9461. }
  9462.  
  9463.  
  9464. H245_CommunicationModeResponse::operator const H245_ArrayOf_CommunicationModeTableEntry &() const
  9465. #endif
  9466. {
  9467. #ifndef PASN_LEANANDMEAN
  9468.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_CommunicationModeTableEntry::Class()), PInvalidCast);
  9469. #endif
  9470.   return *(H245_ArrayOf_CommunicationModeTableEntry *)choice;
  9471. }
  9472.  
  9473.  
  9474. BOOL H245_CommunicationModeResponse::CreateObject()
  9475. {
  9476.   switch (tag) {
  9477.     case e_communicationModeTable :
  9478.       choice = new H245_ArrayOf_CommunicationModeTableEntry();
  9479.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  9480.       return TRUE;
  9481.   }
  9482.  
  9483.   choice = NULL;
  9484.   return FALSE;
  9485. }
  9486.  
  9487.  
  9488. PObject * H245_CommunicationModeResponse::Clone() const
  9489. {
  9490. #ifndef PASN_LEANANDMEAN
  9491.   PAssert(IsClass(H245_CommunicationModeResponse::Class()), PInvalidCast);
  9492. #endif
  9493.   return new H245_CommunicationModeResponse(*this);
  9494. }
  9495.  
  9496.  
  9497. //
  9498. // ConferenceRequest
  9499. //
  9500.  
  9501. H245_ConferenceRequest::H245_ConferenceRequest(unsigned tag, PASN_Object::TagClass tagClass)
  9502.   : PASN_Choice(tag, tagClass, 8, TRUE
  9503. #ifndef PASN_NOPRINTON
  9504.       , "terminalListRequest "
  9505.         "makeMeChair "
  9506.         "cancelMakeMeChair "
  9507.         "dropTerminal "
  9508.         "requestTerminalID "
  9509.         "enterH243Password "
  9510.         "enterH243TerminalID "
  9511.         "enterH243ConferenceID "
  9512.         "enterExtensionAddress "
  9513.         "requestChairTokenOwner "
  9514.         "requestTerminalCertificate "
  9515.         "broadcastMyLogicalChannel "
  9516.         "makeTerminalBroadcaster "
  9517.         "sendThisSource "
  9518.         "requestAllTerminalIDs "
  9519.         "remoteMCRequest "
  9520. #endif
  9521.     )
  9522. {
  9523. }
  9524.  
  9525.  
  9526. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9527. H245_ConferenceRequest::operator H245_TerminalLabel &() const
  9528. #else
  9529. H245_ConferenceRequest::operator H245_TerminalLabel &()
  9530. {
  9531. #ifndef PASN_LEANANDMEAN
  9532.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalLabel::Class()), PInvalidCast);
  9533. #endif
  9534.   return *(H245_TerminalLabel *)choice;
  9535. }
  9536.  
  9537.  
  9538. H245_ConferenceRequest::operator const H245_TerminalLabel &() const
  9539. #endif
  9540. {
  9541. #ifndef PASN_LEANANDMEAN
  9542.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalLabel::Class()), PInvalidCast);
  9543. #endif
  9544.   return *(H245_TerminalLabel *)choice;
  9545. }
  9546.  
  9547.  
  9548. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9549. H245_ConferenceRequest::operator H245_ConferenceRequest_requestTerminalCertificate &() const
  9550. #else
  9551. H245_ConferenceRequest::operator H245_ConferenceRequest_requestTerminalCertificate &()
  9552. {
  9553. #ifndef PASN_LEANANDMEAN
  9554.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceRequest_requestTerminalCertificate::Class()), PInvalidCast);
  9555. #endif
  9556.   return *(H245_ConferenceRequest_requestTerminalCertificate *)choice;
  9557. }
  9558.  
  9559.  
  9560. H245_ConferenceRequest::operator const H245_ConferenceRequest_requestTerminalCertificate &() const
  9561. #endif
  9562. {
  9563. #ifndef PASN_LEANANDMEAN
  9564.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceRequest_requestTerminalCertificate::Class()), PInvalidCast);
  9565. #endif
  9566.   return *(H245_ConferenceRequest_requestTerminalCertificate *)choice;
  9567. }
  9568.  
  9569.  
  9570. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9571. H245_ConferenceRequest::operator H245_LogicalChannelNumber &() const
  9572. #else
  9573. H245_ConferenceRequest::operator H245_LogicalChannelNumber &()
  9574. {
  9575. #ifndef PASN_LEANANDMEAN
  9576.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  9577. #endif
  9578.   return *(H245_LogicalChannelNumber *)choice;
  9579. }
  9580.  
  9581.  
  9582. H245_ConferenceRequest::operator const H245_LogicalChannelNumber &() const
  9583. #endif
  9584. {
  9585. #ifndef PASN_LEANANDMEAN
  9586.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  9587. #endif
  9588.   return *(H245_LogicalChannelNumber *)choice;
  9589. }
  9590.  
  9591.  
  9592. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9593. H245_ConferenceRequest::operator H245_RemoteMCRequest &() const
  9594. #else
  9595. H245_ConferenceRequest::operator H245_RemoteMCRequest &()
  9596. {
  9597. #ifndef PASN_LEANANDMEAN
  9598.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RemoteMCRequest::Class()), PInvalidCast);
  9599. #endif
  9600.   return *(H245_RemoteMCRequest *)choice;
  9601. }
  9602.  
  9603.  
  9604. H245_ConferenceRequest::operator const H245_RemoteMCRequest &() const
  9605. #endif
  9606. {
  9607. #ifndef PASN_LEANANDMEAN
  9608.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RemoteMCRequest::Class()), PInvalidCast);
  9609. #endif
  9610.   return *(H245_RemoteMCRequest *)choice;
  9611. }
  9612.  
  9613.  
  9614. BOOL H245_ConferenceRequest::CreateObject()
  9615. {
  9616.   switch (tag) {
  9617.     case e_terminalListRequest :
  9618.     case e_makeMeChair :
  9619.     case e_cancelMakeMeChair :
  9620.     case e_enterH243Password :
  9621.     case e_enterH243TerminalID :
  9622.     case e_enterH243ConferenceID :
  9623.     case e_enterExtensionAddress :
  9624.     case e_requestChairTokenOwner :
  9625.     case e_requestAllTerminalIDs :
  9626.       choice = new PASN_Null();
  9627.       return TRUE;
  9628.     case e_dropTerminal :
  9629.     case e_requestTerminalID :
  9630.     case e_makeTerminalBroadcaster :
  9631.     case e_sendThisSource :
  9632.       choice = new H245_TerminalLabel();
  9633.       return TRUE;
  9634.     case e_requestTerminalCertificate :
  9635.       choice = new H245_ConferenceRequest_requestTerminalCertificate();
  9636.       return TRUE;
  9637.     case e_broadcastMyLogicalChannel :
  9638.       choice = new H245_LogicalChannelNumber();
  9639.       return TRUE;
  9640.     case e_remoteMCRequest :
  9641.       choice = new H245_RemoteMCRequest();
  9642.       return TRUE;
  9643.   }
  9644.  
  9645.   choice = NULL;
  9646.   return FALSE;
  9647. }
  9648.  
  9649.  
  9650. PObject * H245_ConferenceRequest::Clone() const
  9651. {
  9652. #ifndef PASN_LEANANDMEAN
  9653.   PAssert(IsClass(H245_ConferenceRequest::Class()), PInvalidCast);
  9654. #endif
  9655.   return new H245_ConferenceRequest(*this);
  9656. }
  9657.  
  9658.  
  9659. //
  9660. // CertSelectionCriteria
  9661. //
  9662.  
  9663. H245_CertSelectionCriteria::H245_CertSelectionCriteria(unsigned tag, PASN_Object::TagClass tagClass)
  9664.   : PASN_Array(tag, tagClass)
  9665. {
  9666.   SetConstraints(PASN_Object::FixedConstraint, 1, 16);
  9667. }
  9668.  
  9669.  
  9670. PASN_Object * H245_CertSelectionCriteria::CreateObject() const
  9671. {
  9672.   return new H245_Criteria;
  9673. }
  9674.  
  9675.  
  9676. H245_Criteria & H245_CertSelectionCriteria::operator[](PINDEX i) const
  9677. {
  9678.   return (H245_Criteria &)array[i];
  9679. }
  9680.  
  9681.  
  9682. PObject * H245_CertSelectionCriteria::Clone() const
  9683. {
  9684. #ifndef PASN_LEANANDMEAN
  9685.   PAssert(IsClass(H245_CertSelectionCriteria::Class()), PInvalidCast);
  9686. #endif
  9687.   return new H245_CertSelectionCriteria(*this);
  9688. }
  9689.  
  9690.  
  9691. //
  9692. // Criteria
  9693. //
  9694.  
  9695. H245_Criteria::H245_Criteria(unsigned tag, PASN_Object::TagClass tagClass)
  9696.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9697. {
  9698.   m_value.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  9699. }
  9700.  
  9701.  
  9702. #ifndef PASN_NOPRINTON
  9703. void H245_Criteria::PrintOn(ostream & strm) const
  9704. {
  9705.   int indent = strm.precision() + 2;
  9706.   strm << "{\n";
  9707.   strm << setw(indent+8) << "field = " << setprecision(indent) << m_field << '\n';
  9708.   strm << setw(indent+8) << "value = " << setprecision(indent) << m_value << '\n';
  9709.   strm << setw(indent-1) << "}";
  9710. }
  9711. #endif
  9712.  
  9713.  
  9714. PObject::Comparison H245_Criteria::Compare(const PObject & obj) const
  9715. {
  9716. #ifndef PASN_LEANANDMEAN
  9717.   PAssert(IsDescendant(H245_Criteria::Class()), PInvalidCast);
  9718. #endif
  9719.   const H245_Criteria & other = (const H245_Criteria &)obj;
  9720.  
  9721.   Comparison result;
  9722.  
  9723.   if ((result = m_field.Compare(other.m_field)) != EqualTo)
  9724.     return result;
  9725.   if ((result = m_value.Compare(other.m_value)) != EqualTo)
  9726.     return result;
  9727.  
  9728.   return PASN_Sequence::Compare(other);
  9729. }
  9730.  
  9731.  
  9732. PINDEX H245_Criteria::GetDataLength() const
  9733. {
  9734.   PINDEX length = 0;
  9735.   length += m_field.GetObjectLength();
  9736.   length += m_value.GetObjectLength();
  9737.   return length;
  9738. }
  9739.  
  9740.  
  9741. BOOL H245_Criteria::Decode(PASN_Stream & strm)
  9742. {
  9743.   if (!PreambleDecode(strm))
  9744.     return FALSE;
  9745.  
  9746.   if (!m_field.Decode(strm))
  9747.     return FALSE;
  9748.   if (!m_value.Decode(strm))
  9749.     return FALSE;
  9750.  
  9751.   return UnknownExtensionsDecode(strm);
  9752. }
  9753.  
  9754.  
  9755. void H245_Criteria::Encode(PASN_Stream & strm) const
  9756. {
  9757.   PreambleEncode(strm);
  9758.  
  9759.   m_field.Encode(strm);
  9760.   m_value.Encode(strm);
  9761.  
  9762.   UnknownExtensionsEncode(strm);
  9763. }
  9764.  
  9765.  
  9766. PObject * H245_Criteria::Clone() const
  9767. {
  9768. #ifndef PASN_LEANANDMEAN
  9769.   PAssert(IsClass(H245_Criteria::Class()), PInvalidCast);
  9770. #endif
  9771.   return new H245_Criteria(*this);
  9772. }
  9773.  
  9774.  
  9775. //
  9776. // McuNumber
  9777. //
  9778.  
  9779. H245_McuNumber::H245_McuNumber(unsigned tag, PASN_Object::TagClass tagClass)
  9780.   : PASN_Integer(tag, tagClass)
  9781. {
  9782.   SetConstraints(PASN_Object::FixedConstraint, 0, 192);
  9783. }
  9784.  
  9785.  
  9786. H245_McuNumber & H245_McuNumber::operator=(int v)
  9787. {
  9788.   SetValue(v);
  9789.   return *this;
  9790. }
  9791.  
  9792.  
  9793. H245_McuNumber & H245_McuNumber::operator=(unsigned v)
  9794. {
  9795.   SetValue(v);
  9796.   return *this;
  9797. }
  9798.  
  9799.  
  9800. PObject * H245_McuNumber::Clone() const
  9801. {
  9802. #ifndef PASN_LEANANDMEAN
  9803.   PAssert(IsClass(H245_McuNumber::Class()), PInvalidCast);
  9804. #endif
  9805.   return new H245_McuNumber(*this);
  9806. }
  9807.  
  9808.  
  9809. //
  9810. // TerminalNumber
  9811. //
  9812.  
  9813. H245_TerminalNumber::H245_TerminalNumber(unsigned tag, PASN_Object::TagClass tagClass)
  9814.   : PASN_Integer(tag, tagClass)
  9815. {
  9816.   SetConstraints(PASN_Object::FixedConstraint, 0, 192);
  9817. }
  9818.  
  9819.  
  9820. H245_TerminalNumber & H245_TerminalNumber::operator=(int v)
  9821. {
  9822.   SetValue(v);
  9823.   return *this;
  9824. }
  9825.  
  9826.  
  9827. H245_TerminalNumber & H245_TerminalNumber::operator=(unsigned v)
  9828. {
  9829.   SetValue(v);
  9830.   return *this;
  9831. }
  9832.  
  9833.  
  9834. PObject * H245_TerminalNumber::Clone() const
  9835. {
  9836. #ifndef PASN_LEANANDMEAN
  9837.   PAssert(IsClass(H245_TerminalNumber::Class()), PInvalidCast);
  9838. #endif
  9839.   return new H245_TerminalNumber(*this);
  9840. }
  9841.  
  9842.  
  9843. //
  9844. // ConferenceResponse
  9845. //
  9846.  
  9847. H245_ConferenceResponse::H245_ConferenceResponse(unsigned tag, PASN_Object::TagClass tagClass)
  9848.   : PASN_Choice(tag, tagClass, 8, TRUE
  9849. #ifndef PASN_NOPRINTON
  9850.       , "mCTerminalIDResponse "
  9851.         "terminalIDResponse "
  9852.         "conferenceIDResponse "
  9853.         "passwordResponse "
  9854.         "terminalListResponse "
  9855.         "videoCommandReject "
  9856.         "terminalDropReject "
  9857.         "makeMeChairResponse "
  9858.         "extensionAddressResponse "
  9859.         "chairTokenOwnerResponse "
  9860.         "terminalCertificateResponse "
  9861.         "broadcastMyLogicalChannelResponse "
  9862.         "makeTerminalBroadcasterResponse "
  9863.         "sendThisSourceResponse "
  9864.         "requestAllTerminalIDsResponse "
  9865.         "remoteMCResponse "
  9866. #endif
  9867.     )
  9868. {
  9869. }
  9870.  
  9871.  
  9872. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9873. H245_ConferenceResponse::operator H245_ConferenceResponse_mCTerminalIDResponse &() const
  9874. #else
  9875. H245_ConferenceResponse::operator H245_ConferenceResponse_mCTerminalIDResponse &()
  9876. {
  9877. #ifndef PASN_LEANANDMEAN
  9878.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_mCTerminalIDResponse::Class()), PInvalidCast);
  9879. #endif
  9880.   return *(H245_ConferenceResponse_mCTerminalIDResponse *)choice;
  9881. }
  9882.  
  9883.  
  9884. H245_ConferenceResponse::operator const H245_ConferenceResponse_mCTerminalIDResponse &() const
  9885. #endif
  9886. {
  9887. #ifndef PASN_LEANANDMEAN
  9888.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_mCTerminalIDResponse::Class()), PInvalidCast);
  9889. #endif
  9890.   return *(H245_ConferenceResponse_mCTerminalIDResponse *)choice;
  9891. }
  9892.  
  9893.  
  9894. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9895. H245_ConferenceResponse::operator H245_ConferenceResponse_terminalIDResponse &() const
  9896. #else
  9897. H245_ConferenceResponse::operator H245_ConferenceResponse_terminalIDResponse &()
  9898. {
  9899. #ifndef PASN_LEANANDMEAN
  9900.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_terminalIDResponse::Class()), PInvalidCast);
  9901. #endif
  9902.   return *(H245_ConferenceResponse_terminalIDResponse *)choice;
  9903. }
  9904.  
  9905.  
  9906. H245_ConferenceResponse::operator const H245_ConferenceResponse_terminalIDResponse &() const
  9907. #endif
  9908. {
  9909. #ifndef PASN_LEANANDMEAN
  9910.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_terminalIDResponse::Class()), PInvalidCast);
  9911. #endif
  9912.   return *(H245_ConferenceResponse_terminalIDResponse *)choice;
  9913. }
  9914.  
  9915.  
  9916. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9917. H245_ConferenceResponse::operator H245_ConferenceResponse_conferenceIDResponse &() const
  9918. #else
  9919. H245_ConferenceResponse::operator H245_ConferenceResponse_conferenceIDResponse &()
  9920. {
  9921. #ifndef PASN_LEANANDMEAN
  9922.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_conferenceIDResponse::Class()), PInvalidCast);
  9923. #endif
  9924.   return *(H245_ConferenceResponse_conferenceIDResponse *)choice;
  9925. }
  9926.  
  9927.  
  9928. H245_ConferenceResponse::operator const H245_ConferenceResponse_conferenceIDResponse &() const
  9929. #endif
  9930. {
  9931. #ifndef PASN_LEANANDMEAN
  9932.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_conferenceIDResponse::Class()), PInvalidCast);
  9933. #endif
  9934.   return *(H245_ConferenceResponse_conferenceIDResponse *)choice;
  9935. }
  9936.  
  9937.  
  9938. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9939. H245_ConferenceResponse::operator H245_ConferenceResponse_passwordResponse &() const
  9940. #else
  9941. H245_ConferenceResponse::operator H245_ConferenceResponse_passwordResponse &()
  9942. {
  9943. #ifndef PASN_LEANANDMEAN
  9944.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_passwordResponse::Class()), PInvalidCast);
  9945. #endif
  9946.   return *(H245_ConferenceResponse_passwordResponse *)choice;
  9947. }
  9948.  
  9949.  
  9950. H245_ConferenceResponse::operator const H245_ConferenceResponse_passwordResponse &() const
  9951. #endif
  9952. {
  9953. #ifndef PASN_LEANANDMEAN
  9954.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_passwordResponse::Class()), PInvalidCast);
  9955. #endif
  9956.   return *(H245_ConferenceResponse_passwordResponse *)choice;
  9957. }
  9958.  
  9959.  
  9960. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9961. H245_ConferenceResponse::operator H245_ArrayOf_TerminalLabel &() const
  9962. #else
  9963. H245_ConferenceResponse::operator H245_ArrayOf_TerminalLabel &()
  9964. {
  9965. #ifndef PASN_LEANANDMEAN
  9966.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_TerminalLabel::Class()), PInvalidCast);
  9967. #endif
  9968.   return *(H245_ArrayOf_TerminalLabel *)choice;
  9969. }
  9970.  
  9971.  
  9972. H245_ConferenceResponse::operator const H245_ArrayOf_TerminalLabel &() const
  9973. #endif
  9974. {
  9975. #ifndef PASN_LEANANDMEAN
  9976.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_TerminalLabel::Class()), PInvalidCast);
  9977. #endif
  9978.   return *(H245_ArrayOf_TerminalLabel *)choice;
  9979. }
  9980.  
  9981.  
  9982. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  9983. H245_ConferenceResponse::operator H245_ConferenceResponse_makeMeChairResponse &() const
  9984. #else
  9985. H245_ConferenceResponse::operator H245_ConferenceResponse_makeMeChairResponse &()
  9986. {
  9987. #ifndef PASN_LEANANDMEAN
  9988.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_makeMeChairResponse::Class()), PInvalidCast);
  9989. #endif
  9990.   return *(H245_ConferenceResponse_makeMeChairResponse *)choice;
  9991. }
  9992.  
  9993.  
  9994. H245_ConferenceResponse::operator const H245_ConferenceResponse_makeMeChairResponse &() const
  9995. #endif
  9996. {
  9997. #ifndef PASN_LEANANDMEAN
  9998.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_makeMeChairResponse::Class()), PInvalidCast);
  9999. #endif
  10000.   return *(H245_ConferenceResponse_makeMeChairResponse *)choice;
  10001. }
  10002.  
  10003.  
  10004. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10005. H245_ConferenceResponse::operator H245_ConferenceResponse_extensionAddressResponse &() const
  10006. #else
  10007. H245_ConferenceResponse::operator H245_ConferenceResponse_extensionAddressResponse &()
  10008. {
  10009. #ifndef PASN_LEANANDMEAN
  10010.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_extensionAddressResponse::Class()), PInvalidCast);
  10011. #endif
  10012.   return *(H245_ConferenceResponse_extensionAddressResponse *)choice;
  10013. }
  10014.  
  10015.  
  10016. H245_ConferenceResponse::operator const H245_ConferenceResponse_extensionAddressResponse &() const
  10017. #endif
  10018. {
  10019. #ifndef PASN_LEANANDMEAN
  10020.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_extensionAddressResponse::Class()), PInvalidCast);
  10021. #endif
  10022.   return *(H245_ConferenceResponse_extensionAddressResponse *)choice;
  10023. }
  10024.  
  10025.  
  10026. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10027. H245_ConferenceResponse::operator H245_ConferenceResponse_chairTokenOwnerResponse &() const
  10028. #else
  10029. H245_ConferenceResponse::operator H245_ConferenceResponse_chairTokenOwnerResponse &()
  10030. {
  10031. #ifndef PASN_LEANANDMEAN
  10032.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_chairTokenOwnerResponse::Class()), PInvalidCast);
  10033. #endif
  10034.   return *(H245_ConferenceResponse_chairTokenOwnerResponse *)choice;
  10035. }
  10036.  
  10037.  
  10038. H245_ConferenceResponse::operator const H245_ConferenceResponse_chairTokenOwnerResponse &() const
  10039. #endif
  10040. {
  10041. #ifndef PASN_LEANANDMEAN
  10042.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_chairTokenOwnerResponse::Class()), PInvalidCast);
  10043. #endif
  10044.   return *(H245_ConferenceResponse_chairTokenOwnerResponse *)choice;
  10045. }
  10046.  
  10047.  
  10048. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10049. H245_ConferenceResponse::operator H245_ConferenceResponse_terminalCertificateResponse &() const
  10050. #else
  10051. H245_ConferenceResponse::operator H245_ConferenceResponse_terminalCertificateResponse &()
  10052. {
  10053. #ifndef PASN_LEANANDMEAN
  10054.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_terminalCertificateResponse::Class()), PInvalidCast);
  10055. #endif
  10056.   return *(H245_ConferenceResponse_terminalCertificateResponse *)choice;
  10057. }
  10058.  
  10059.  
  10060. H245_ConferenceResponse::operator const H245_ConferenceResponse_terminalCertificateResponse &() const
  10061. #endif
  10062. {
  10063. #ifndef PASN_LEANANDMEAN
  10064.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_terminalCertificateResponse::Class()), PInvalidCast);
  10065. #endif
  10066.   return *(H245_ConferenceResponse_terminalCertificateResponse *)choice;
  10067. }
  10068.  
  10069.  
  10070. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10071. H245_ConferenceResponse::operator H245_ConferenceResponse_broadcastMyLogicalChannelResponse &() const
  10072. #else
  10073. H245_ConferenceResponse::operator H245_ConferenceResponse_broadcastMyLogicalChannelResponse &()
  10074. {
  10075. #ifndef PASN_LEANANDMEAN
  10076.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_broadcastMyLogicalChannelResponse::Class()), PInvalidCast);
  10077. #endif
  10078.   return *(H245_ConferenceResponse_broadcastMyLogicalChannelResponse *)choice;
  10079. }
  10080.  
  10081.  
  10082. H245_ConferenceResponse::operator const H245_ConferenceResponse_broadcastMyLogicalChannelResponse &() const
  10083. #endif
  10084. {
  10085. #ifndef PASN_LEANANDMEAN
  10086.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_broadcastMyLogicalChannelResponse::Class()), PInvalidCast);
  10087. #endif
  10088.   return *(H245_ConferenceResponse_broadcastMyLogicalChannelResponse *)choice;
  10089. }
  10090.  
  10091.  
  10092. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10093. H245_ConferenceResponse::operator H245_ConferenceResponse_makeTerminalBroadcasterResponse &() const
  10094. #else
  10095. H245_ConferenceResponse::operator H245_ConferenceResponse_makeTerminalBroadcasterResponse &()
  10096. {
  10097. #ifndef PASN_LEANANDMEAN
  10098.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_makeTerminalBroadcasterResponse::Class()), PInvalidCast);
  10099. #endif
  10100.   return *(H245_ConferenceResponse_makeTerminalBroadcasterResponse *)choice;
  10101. }
  10102.  
  10103.  
  10104. H245_ConferenceResponse::operator const H245_ConferenceResponse_makeTerminalBroadcasterResponse &() const
  10105. #endif
  10106. {
  10107. #ifndef PASN_LEANANDMEAN
  10108.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_makeTerminalBroadcasterResponse::Class()), PInvalidCast);
  10109. #endif
  10110.   return *(H245_ConferenceResponse_makeTerminalBroadcasterResponse *)choice;
  10111. }
  10112.  
  10113.  
  10114. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10115. H245_ConferenceResponse::operator H245_ConferenceResponse_sendThisSourceResponse &() const
  10116. #else
  10117. H245_ConferenceResponse::operator H245_ConferenceResponse_sendThisSourceResponse &()
  10118. {
  10119. #ifndef PASN_LEANANDMEAN
  10120.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_sendThisSourceResponse::Class()), PInvalidCast);
  10121. #endif
  10122.   return *(H245_ConferenceResponse_sendThisSourceResponse *)choice;
  10123. }
  10124.  
  10125.  
  10126. H245_ConferenceResponse::operator const H245_ConferenceResponse_sendThisSourceResponse &() const
  10127. #endif
  10128. {
  10129. #ifndef PASN_LEANANDMEAN
  10130.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ConferenceResponse_sendThisSourceResponse::Class()), PInvalidCast);
  10131. #endif
  10132.   return *(H245_ConferenceResponse_sendThisSourceResponse *)choice;
  10133. }
  10134.  
  10135.  
  10136. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10137. H245_ConferenceResponse::operator H245_RequestAllTerminalIDsResponse &() const
  10138. #else
  10139. H245_ConferenceResponse::operator H245_RequestAllTerminalIDsResponse &()
  10140. {
  10141. #ifndef PASN_LEANANDMEAN
  10142.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestAllTerminalIDsResponse::Class()), PInvalidCast);
  10143. #endif
  10144.   return *(H245_RequestAllTerminalIDsResponse *)choice;
  10145. }
  10146.  
  10147.  
  10148. H245_ConferenceResponse::operator const H245_RequestAllTerminalIDsResponse &() const
  10149. #endif
  10150. {
  10151. #ifndef PASN_LEANANDMEAN
  10152.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestAllTerminalIDsResponse::Class()), PInvalidCast);
  10153. #endif
  10154.   return *(H245_RequestAllTerminalIDsResponse *)choice;
  10155. }
  10156.  
  10157.  
  10158. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10159. H245_ConferenceResponse::operator H245_RemoteMCResponse &() const
  10160. #else
  10161. H245_ConferenceResponse::operator H245_RemoteMCResponse &()
  10162. {
  10163. #ifndef PASN_LEANANDMEAN
  10164.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RemoteMCResponse::Class()), PInvalidCast);
  10165. #endif
  10166.   return *(H245_RemoteMCResponse *)choice;
  10167. }
  10168.  
  10169.  
  10170. H245_ConferenceResponse::operator const H245_RemoteMCResponse &() const
  10171. #endif
  10172. {
  10173. #ifndef PASN_LEANANDMEAN
  10174.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RemoteMCResponse::Class()), PInvalidCast);
  10175. #endif
  10176.   return *(H245_RemoteMCResponse *)choice;
  10177. }
  10178.  
  10179.  
  10180. BOOL H245_ConferenceResponse::CreateObject()
  10181. {
  10182.   switch (tag) {
  10183.     case e_mCTerminalIDResponse :
  10184.       choice = new H245_ConferenceResponse_mCTerminalIDResponse();
  10185.       return TRUE;
  10186.     case e_terminalIDResponse :
  10187.       choice = new H245_ConferenceResponse_terminalIDResponse();
  10188.       return TRUE;
  10189.     case e_conferenceIDResponse :
  10190.       choice = new H245_ConferenceResponse_conferenceIDResponse();
  10191.       return TRUE;
  10192.     case e_passwordResponse :
  10193.       choice = new H245_ConferenceResponse_passwordResponse();
  10194.       return TRUE;
  10195.     case e_terminalListResponse :
  10196.       choice = new H245_ArrayOf_TerminalLabel();
  10197.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  10198.       return TRUE;
  10199.     case e_videoCommandReject :
  10200.     case e_terminalDropReject :
  10201.       choice = new PASN_Null();
  10202.       return TRUE;
  10203.     case e_makeMeChairResponse :
  10204.       choice = new H245_ConferenceResponse_makeMeChairResponse();
  10205.       return TRUE;
  10206.     case e_extensionAddressResponse :
  10207.       choice = new H245_ConferenceResponse_extensionAddressResponse();
  10208.       return TRUE;
  10209.     case e_chairTokenOwnerResponse :
  10210.       choice = new H245_ConferenceResponse_chairTokenOwnerResponse();
  10211.       return TRUE;
  10212.     case e_terminalCertificateResponse :
  10213.       choice = new H245_ConferenceResponse_terminalCertificateResponse();
  10214.       return TRUE;
  10215.     case e_broadcastMyLogicalChannelResponse :
  10216.       choice = new H245_ConferenceResponse_broadcastMyLogicalChannelResponse();
  10217.       return TRUE;
  10218.     case e_makeTerminalBroadcasterResponse :
  10219.       choice = new H245_ConferenceResponse_makeTerminalBroadcasterResponse();
  10220.       return TRUE;
  10221.     case e_sendThisSourceResponse :
  10222.       choice = new H245_ConferenceResponse_sendThisSourceResponse();
  10223.       return TRUE;
  10224.     case e_requestAllTerminalIDsResponse :
  10225.       choice = new H245_RequestAllTerminalIDsResponse();
  10226.       return TRUE;
  10227.     case e_remoteMCResponse :
  10228.       choice = new H245_RemoteMCResponse();
  10229.       return TRUE;
  10230.   }
  10231.  
  10232.   choice = NULL;
  10233.   return FALSE;
  10234. }
  10235.  
  10236.  
  10237. PObject * H245_ConferenceResponse::Clone() const
  10238. {
  10239. #ifndef PASN_LEANANDMEAN
  10240.   PAssert(IsClass(H245_ConferenceResponse::Class()), PInvalidCast);
  10241. #endif
  10242.   return new H245_ConferenceResponse(*this);
  10243. }
  10244.  
  10245.  
  10246. //
  10247. // TerminalID
  10248. //
  10249.  
  10250. H245_TerminalID::H245_TerminalID(unsigned tag, PASN_Object::TagClass tagClass)
  10251.   : PASN_OctetString(tag, tagClass)
  10252. {
  10253.   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  10254. }
  10255.  
  10256.  
  10257. H245_TerminalID::H245_TerminalID(const char * v)
  10258. {
  10259.   SetValue(v);
  10260. }
  10261.  
  10262.  
  10263. H245_TerminalID::H245_TerminalID(const PString & v)
  10264. {
  10265.   SetValue(v);
  10266. }
  10267.  
  10268.  
  10269. H245_TerminalID::H245_TerminalID(const PBYTEArray & v)
  10270. {
  10271.   SetValue(v);
  10272. }
  10273.  
  10274.  
  10275. H245_TerminalID & H245_TerminalID::operator=(const char * v)
  10276. {
  10277.   SetValue(v);
  10278.   return *this;
  10279. }
  10280.  
  10281.  
  10282. H245_TerminalID & H245_TerminalID::operator=(const PString & v)
  10283. {
  10284.   SetValue(v);
  10285.   return *this;
  10286. }
  10287.  
  10288.  
  10289. H245_TerminalID & H245_TerminalID::operator=(const PBYTEArray & v)
  10290. {
  10291.   SetValue(v);
  10292.   return *this;
  10293. }
  10294.  
  10295.  
  10296. PObject * H245_TerminalID::Clone() const
  10297. {
  10298. #ifndef PASN_LEANANDMEAN
  10299.   PAssert(IsClass(H245_TerminalID::Class()), PInvalidCast);
  10300. #endif
  10301.   return new H245_TerminalID(*this);
  10302. }
  10303.  
  10304.  
  10305. //
  10306. // ConferenceID
  10307. //
  10308.  
  10309. H245_ConferenceID::H245_ConferenceID(unsigned tag, PASN_Object::TagClass tagClass)
  10310.   : PASN_OctetString(tag, tagClass)
  10311. {
  10312.   SetConstraints(PASN_Object::FixedConstraint, 1, 32);
  10313. }
  10314.  
  10315.  
  10316. H245_ConferenceID::H245_ConferenceID(const char * v)
  10317. {
  10318.   SetValue(v);
  10319. }
  10320.  
  10321.  
  10322. H245_ConferenceID::H245_ConferenceID(const PString & v)
  10323. {
  10324.   SetValue(v);
  10325. }
  10326.  
  10327.  
  10328. H245_ConferenceID::H245_ConferenceID(const PBYTEArray & v)
  10329. {
  10330.   SetValue(v);
  10331. }
  10332.  
  10333.  
  10334. H245_ConferenceID & H245_ConferenceID::operator=(const char * v)
  10335. {
  10336.   SetValue(v);
  10337.   return *this;
  10338. }
  10339.  
  10340.  
  10341. H245_ConferenceID & H245_ConferenceID::operator=(const PString & v)
  10342. {
  10343.   SetValue(v);
  10344.   return *this;
  10345. }
  10346.  
  10347.  
  10348. H245_ConferenceID & H245_ConferenceID::operator=(const PBYTEArray & v)
  10349. {
  10350.   SetValue(v);
  10351.   return *this;
  10352. }
  10353.  
  10354.  
  10355. PObject * H245_ConferenceID::Clone() const
  10356. {
  10357. #ifndef PASN_LEANANDMEAN
  10358.   PAssert(IsClass(H245_ConferenceID::Class()), PInvalidCast);
  10359. #endif
  10360.   return new H245_ConferenceID(*this);
  10361. }
  10362.  
  10363.  
  10364. //
  10365. // Password
  10366. //
  10367.  
  10368. H245_Password::H245_Password(unsigned tag, PASN_Object::TagClass tagClass)
  10369.   : PASN_OctetString(tag, tagClass)
  10370. {
  10371.   SetConstraints(PASN_Object::FixedConstraint, 1, 32);
  10372. }
  10373.  
  10374.  
  10375. H245_Password::H245_Password(const char * v)
  10376. {
  10377.   SetValue(v);
  10378. }
  10379.  
  10380.  
  10381. H245_Password::H245_Password(const PString & v)
  10382. {
  10383.   SetValue(v);
  10384. }
  10385.  
  10386.  
  10387. H245_Password::H245_Password(const PBYTEArray & v)
  10388. {
  10389.   SetValue(v);
  10390. }
  10391.  
  10392.  
  10393. H245_Password & H245_Password::operator=(const char * v)
  10394. {
  10395.   SetValue(v);
  10396.   return *this;
  10397. }
  10398.  
  10399.  
  10400. H245_Password & H245_Password::operator=(const PString & v)
  10401. {
  10402.   SetValue(v);
  10403.   return *this;
  10404. }
  10405.  
  10406.  
  10407. H245_Password & H245_Password::operator=(const PBYTEArray & v)
  10408. {
  10409.   SetValue(v);
  10410.   return *this;
  10411. }
  10412.  
  10413.  
  10414. PObject * H245_Password::Clone() const
  10415. {
  10416. #ifndef PASN_LEANANDMEAN
  10417.   PAssert(IsClass(H245_Password::Class()), PInvalidCast);
  10418. #endif
  10419.   return new H245_Password(*this);
  10420. }
  10421.  
  10422.  
  10423. //
  10424. // RemoteMCRequest
  10425. //
  10426.  
  10427. H245_RemoteMCRequest::H245_RemoteMCRequest(unsigned tag, PASN_Object::TagClass tagClass)
  10428.   : PASN_Choice(tag, tagClass, 3, TRUE
  10429. #ifndef PASN_NOPRINTON
  10430.       , "masterActivate "
  10431.         "slaveActivate "
  10432.         "deActivate "
  10433. #endif
  10434.     )
  10435. {
  10436. }
  10437.  
  10438.  
  10439. BOOL H245_RemoteMCRequest::CreateObject()
  10440. {
  10441.   choice = (tag <= e_deActivate) ? new PASN_Null() : NULL;
  10442.   return choice != NULL;
  10443. }
  10444.  
  10445.  
  10446. PObject * H245_RemoteMCRequest::Clone() const
  10447. {
  10448. #ifndef PASN_LEANANDMEAN
  10449.   PAssert(IsClass(H245_RemoteMCRequest::Class()), PInvalidCast);
  10450. #endif
  10451.   return new H245_RemoteMCRequest(*this);
  10452. }
  10453.  
  10454.  
  10455. //
  10456. // RemoteMCResponse
  10457. //
  10458.  
  10459. H245_RemoteMCResponse::H245_RemoteMCResponse(unsigned tag, PASN_Object::TagClass tagClass)
  10460.   : PASN_Choice(tag, tagClass, 2, TRUE
  10461. #ifndef PASN_NOPRINTON
  10462.       , "accept "
  10463.         "reject "
  10464. #endif
  10465.     )
  10466. {
  10467. }
  10468.  
  10469.  
  10470. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10471. H245_RemoteMCResponse::operator H245_RemoteMCResponse_reject &() const
  10472. #else
  10473. H245_RemoteMCResponse::operator H245_RemoteMCResponse_reject &()
  10474. {
  10475. #ifndef PASN_LEANANDMEAN
  10476.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RemoteMCResponse_reject::Class()), PInvalidCast);
  10477. #endif
  10478.   return *(H245_RemoteMCResponse_reject *)choice;
  10479. }
  10480.  
  10481.  
  10482. H245_RemoteMCResponse::operator const H245_RemoteMCResponse_reject &() const
  10483. #endif
  10484. {
  10485. #ifndef PASN_LEANANDMEAN
  10486.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RemoteMCResponse_reject::Class()), PInvalidCast);
  10487. #endif
  10488.   return *(H245_RemoteMCResponse_reject *)choice;
  10489. }
  10490.  
  10491.  
  10492. BOOL H245_RemoteMCResponse::CreateObject()
  10493. {
  10494.   switch (tag) {
  10495.     case e_accept :
  10496.       choice = new PASN_Null();
  10497.       return TRUE;
  10498.     case e_reject :
  10499.       choice = new H245_RemoteMCResponse_reject();
  10500.       return TRUE;
  10501.   }
  10502.  
  10503.   choice = NULL;
  10504.   return FALSE;
  10505. }
  10506.  
  10507.  
  10508. PObject * H245_RemoteMCResponse::Clone() const
  10509. {
  10510. #ifndef PASN_LEANANDMEAN
  10511.   PAssert(IsClass(H245_RemoteMCResponse::Class()), PInvalidCast);
  10512. #endif
  10513.   return new H245_RemoteMCResponse(*this);
  10514. }
  10515.  
  10516.  
  10517. //
  10518. // MultilinkRequest
  10519. //
  10520.  
  10521. H245_MultilinkRequest::H245_MultilinkRequest(unsigned tag, PASN_Object::TagClass tagClass)
  10522.   : PASN_Choice(tag, tagClass, 5, TRUE
  10523. #ifndef PASN_NOPRINTON
  10524.       , "nonStandard "
  10525.         "callInformation "
  10526.         "addConnection "
  10527.         "removeConnection "
  10528.         "maximumHeaderInterval "
  10529. #endif
  10530.     )
  10531. {
  10532. }
  10533.  
  10534.  
  10535. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10536. H245_MultilinkRequest::operator H245_NonStandardMessage &() const
  10537. #else
  10538. H245_MultilinkRequest::operator H245_NonStandardMessage &()
  10539. {
  10540. #ifndef PASN_LEANANDMEAN
  10541.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10542. #endif
  10543.   return *(H245_NonStandardMessage *)choice;
  10544. }
  10545.  
  10546.  
  10547. H245_MultilinkRequest::operator const H245_NonStandardMessage &() const
  10548. #endif
  10549. {
  10550. #ifndef PASN_LEANANDMEAN
  10551.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10552. #endif
  10553.   return *(H245_NonStandardMessage *)choice;
  10554. }
  10555.  
  10556.  
  10557. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10558. H245_MultilinkRequest::operator H245_MultilinkRequest_callInformation &() const
  10559. #else
  10560. H245_MultilinkRequest::operator H245_MultilinkRequest_callInformation &()
  10561. {
  10562. #ifndef PASN_LEANANDMEAN
  10563.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_callInformation::Class()), PInvalidCast);
  10564. #endif
  10565.   return *(H245_MultilinkRequest_callInformation *)choice;
  10566. }
  10567.  
  10568.  
  10569. H245_MultilinkRequest::operator const H245_MultilinkRequest_callInformation &() const
  10570. #endif
  10571. {
  10572. #ifndef PASN_LEANANDMEAN
  10573.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_callInformation::Class()), PInvalidCast);
  10574. #endif
  10575.   return *(H245_MultilinkRequest_callInformation *)choice;
  10576. }
  10577.  
  10578.  
  10579. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10580. H245_MultilinkRequest::operator H245_MultilinkRequest_addConnection &() const
  10581. #else
  10582. H245_MultilinkRequest::operator H245_MultilinkRequest_addConnection &()
  10583. {
  10584. #ifndef PASN_LEANANDMEAN
  10585.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_addConnection::Class()), PInvalidCast);
  10586. #endif
  10587.   return *(H245_MultilinkRequest_addConnection *)choice;
  10588. }
  10589.  
  10590.  
  10591. H245_MultilinkRequest::operator const H245_MultilinkRequest_addConnection &() const
  10592. #endif
  10593. {
  10594. #ifndef PASN_LEANANDMEAN
  10595.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_addConnection::Class()), PInvalidCast);
  10596. #endif
  10597.   return *(H245_MultilinkRequest_addConnection *)choice;
  10598. }
  10599.  
  10600.  
  10601. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10602. H245_MultilinkRequest::operator H245_MultilinkRequest_removeConnection &() const
  10603. #else
  10604. H245_MultilinkRequest::operator H245_MultilinkRequest_removeConnection &()
  10605. {
  10606. #ifndef PASN_LEANANDMEAN
  10607.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_removeConnection::Class()), PInvalidCast);
  10608. #endif
  10609.   return *(H245_MultilinkRequest_removeConnection *)choice;
  10610. }
  10611.  
  10612.  
  10613. H245_MultilinkRequest::operator const H245_MultilinkRequest_removeConnection &() const
  10614. #endif
  10615. {
  10616. #ifndef PASN_LEANANDMEAN
  10617.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_removeConnection::Class()), PInvalidCast);
  10618. #endif
  10619.   return *(H245_MultilinkRequest_removeConnection *)choice;
  10620. }
  10621.  
  10622.  
  10623. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10624. H245_MultilinkRequest::operator H245_MultilinkRequest_maximumHeaderInterval &() const
  10625. #else
  10626. H245_MultilinkRequest::operator H245_MultilinkRequest_maximumHeaderInterval &()
  10627. {
  10628. #ifndef PASN_LEANANDMEAN
  10629.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_maximumHeaderInterval::Class()), PInvalidCast);
  10630. #endif
  10631.   return *(H245_MultilinkRequest_maximumHeaderInterval *)choice;
  10632. }
  10633.  
  10634.  
  10635. H245_MultilinkRequest::operator const H245_MultilinkRequest_maximumHeaderInterval &() const
  10636. #endif
  10637. {
  10638. #ifndef PASN_LEANANDMEAN
  10639.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkRequest_maximumHeaderInterval::Class()), PInvalidCast);
  10640. #endif
  10641.   return *(H245_MultilinkRequest_maximumHeaderInterval *)choice;
  10642. }
  10643.  
  10644.  
  10645. BOOL H245_MultilinkRequest::CreateObject()
  10646. {
  10647.   switch (tag) {
  10648.     case e_nonStandard :
  10649.       choice = new H245_NonStandardMessage();
  10650.       return TRUE;
  10651.     case e_callInformation :
  10652.       choice = new H245_MultilinkRequest_callInformation();
  10653.       return TRUE;
  10654.     case e_addConnection :
  10655.       choice = new H245_MultilinkRequest_addConnection();
  10656.       return TRUE;
  10657.     case e_removeConnection :
  10658.       choice = new H245_MultilinkRequest_removeConnection();
  10659.       return TRUE;
  10660.     case e_maximumHeaderInterval :
  10661.       choice = new H245_MultilinkRequest_maximumHeaderInterval();
  10662.       return TRUE;
  10663.   }
  10664.  
  10665.   choice = NULL;
  10666.   return FALSE;
  10667. }
  10668.  
  10669.  
  10670. PObject * H245_MultilinkRequest::Clone() const
  10671. {
  10672. #ifndef PASN_LEANANDMEAN
  10673.   PAssert(IsClass(H245_MultilinkRequest::Class()), PInvalidCast);
  10674. #endif
  10675.   return new H245_MultilinkRequest(*this);
  10676. }
  10677.  
  10678.  
  10679. //
  10680. // MultilinkResponse
  10681. //
  10682.  
  10683. H245_MultilinkResponse::H245_MultilinkResponse(unsigned tag, PASN_Object::TagClass tagClass)
  10684.   : PASN_Choice(tag, tagClass, 5, TRUE
  10685. #ifndef PASN_NOPRINTON
  10686.       , "nonStandard "
  10687.         "callInformation "
  10688.         "addConnection "
  10689.         "removeConnection "
  10690.         "maximumHeaderInterval "
  10691. #endif
  10692.     )
  10693. {
  10694. }
  10695.  
  10696.  
  10697. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10698. H245_MultilinkResponse::operator H245_NonStandardMessage &() const
  10699. #else
  10700. H245_MultilinkResponse::operator H245_NonStandardMessage &()
  10701. {
  10702. #ifndef PASN_LEANANDMEAN
  10703.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10704. #endif
  10705.   return *(H245_NonStandardMessage *)choice;
  10706. }
  10707.  
  10708.  
  10709. H245_MultilinkResponse::operator const H245_NonStandardMessage &() const
  10710. #endif
  10711. {
  10712. #ifndef PASN_LEANANDMEAN
  10713.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10714. #endif
  10715.   return *(H245_NonStandardMessage *)choice;
  10716. }
  10717.  
  10718.  
  10719. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10720. H245_MultilinkResponse::operator H245_MultilinkResponse_callInformation &() const
  10721. #else
  10722. H245_MultilinkResponse::operator H245_MultilinkResponse_callInformation &()
  10723. {
  10724. #ifndef PASN_LEANANDMEAN
  10725.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_callInformation::Class()), PInvalidCast);
  10726. #endif
  10727.   return *(H245_MultilinkResponse_callInformation *)choice;
  10728. }
  10729.  
  10730.  
  10731. H245_MultilinkResponse::operator const H245_MultilinkResponse_callInformation &() const
  10732. #endif
  10733. {
  10734. #ifndef PASN_LEANANDMEAN
  10735.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_callInformation::Class()), PInvalidCast);
  10736. #endif
  10737.   return *(H245_MultilinkResponse_callInformation *)choice;
  10738. }
  10739.  
  10740.  
  10741. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10742. H245_MultilinkResponse::operator H245_MultilinkResponse_addConnection &() const
  10743. #else
  10744. H245_MultilinkResponse::operator H245_MultilinkResponse_addConnection &()
  10745. {
  10746. #ifndef PASN_LEANANDMEAN
  10747.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_addConnection::Class()), PInvalidCast);
  10748. #endif
  10749.   return *(H245_MultilinkResponse_addConnection *)choice;
  10750. }
  10751.  
  10752.  
  10753. H245_MultilinkResponse::operator const H245_MultilinkResponse_addConnection &() const
  10754. #endif
  10755. {
  10756. #ifndef PASN_LEANANDMEAN
  10757.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_addConnection::Class()), PInvalidCast);
  10758. #endif
  10759.   return *(H245_MultilinkResponse_addConnection *)choice;
  10760. }
  10761.  
  10762.  
  10763. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10764. H245_MultilinkResponse::operator H245_MultilinkResponse_removeConnection &() const
  10765. #else
  10766. H245_MultilinkResponse::operator H245_MultilinkResponse_removeConnection &()
  10767. {
  10768. #ifndef PASN_LEANANDMEAN
  10769.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_removeConnection::Class()), PInvalidCast);
  10770. #endif
  10771.   return *(H245_MultilinkResponse_removeConnection *)choice;
  10772. }
  10773.  
  10774.  
  10775. H245_MultilinkResponse::operator const H245_MultilinkResponse_removeConnection &() const
  10776. #endif
  10777. {
  10778. #ifndef PASN_LEANANDMEAN
  10779.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_removeConnection::Class()), PInvalidCast);
  10780. #endif
  10781.   return *(H245_MultilinkResponse_removeConnection *)choice;
  10782. }
  10783.  
  10784.  
  10785. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10786. H245_MultilinkResponse::operator H245_MultilinkResponse_maximumHeaderInterval &() const
  10787. #else
  10788. H245_MultilinkResponse::operator H245_MultilinkResponse_maximumHeaderInterval &()
  10789. {
  10790. #ifndef PASN_LEANANDMEAN
  10791.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_maximumHeaderInterval::Class()), PInvalidCast);
  10792. #endif
  10793.   return *(H245_MultilinkResponse_maximumHeaderInterval *)choice;
  10794. }
  10795.  
  10796.  
  10797. H245_MultilinkResponse::operator const H245_MultilinkResponse_maximumHeaderInterval &() const
  10798. #endif
  10799. {
  10800. #ifndef PASN_LEANANDMEAN
  10801.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_maximumHeaderInterval::Class()), PInvalidCast);
  10802. #endif
  10803.   return *(H245_MultilinkResponse_maximumHeaderInterval *)choice;
  10804. }
  10805.  
  10806.  
  10807. BOOL H245_MultilinkResponse::CreateObject()
  10808. {
  10809.   switch (tag) {
  10810.     case e_nonStandard :
  10811.       choice = new H245_NonStandardMessage();
  10812.       return TRUE;
  10813.     case e_callInformation :
  10814.       choice = new H245_MultilinkResponse_callInformation();
  10815.       return TRUE;
  10816.     case e_addConnection :
  10817.       choice = new H245_MultilinkResponse_addConnection();
  10818.       return TRUE;
  10819.     case e_removeConnection :
  10820.       choice = new H245_MultilinkResponse_removeConnection();
  10821.       return TRUE;
  10822.     case e_maximumHeaderInterval :
  10823.       choice = new H245_MultilinkResponse_maximumHeaderInterval();
  10824.       return TRUE;
  10825.   }
  10826.  
  10827.   choice = NULL;
  10828.   return FALSE;
  10829. }
  10830.  
  10831.  
  10832. PObject * H245_MultilinkResponse::Clone() const
  10833. {
  10834. #ifndef PASN_LEANANDMEAN
  10835.   PAssert(IsClass(H245_MultilinkResponse::Class()), PInvalidCast);
  10836. #endif
  10837.   return new H245_MultilinkResponse(*this);
  10838. }
  10839.  
  10840.  
  10841. //
  10842. // MultilinkIndication
  10843. //
  10844.  
  10845. H245_MultilinkIndication::H245_MultilinkIndication(unsigned tag, PASN_Object::TagClass tagClass)
  10846.   : PASN_Choice(tag, tagClass, 3, TRUE
  10847. #ifndef PASN_NOPRINTON
  10848.       , "nonStandard "
  10849.         "crcDesired "
  10850.         "excessiveError "
  10851. #endif
  10852.     )
  10853. {
  10854. }
  10855.  
  10856.  
  10857. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10858. H245_MultilinkIndication::operator H245_NonStandardMessage &() const
  10859. #else
  10860. H245_MultilinkIndication::operator H245_NonStandardMessage &()
  10861. {
  10862. #ifndef PASN_LEANANDMEAN
  10863.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10864. #endif
  10865.   return *(H245_NonStandardMessage *)choice;
  10866. }
  10867.  
  10868.  
  10869. H245_MultilinkIndication::operator const H245_NonStandardMessage &() const
  10870. #endif
  10871. {
  10872. #ifndef PASN_LEANANDMEAN
  10873.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10874. #endif
  10875.   return *(H245_NonStandardMessage *)choice;
  10876. }
  10877.  
  10878.  
  10879. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10880. H245_MultilinkIndication::operator H245_MultilinkIndication_crcDesired &() const
  10881. #else
  10882. H245_MultilinkIndication::operator H245_MultilinkIndication_crcDesired &()
  10883. {
  10884. #ifndef PASN_LEANANDMEAN
  10885.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkIndication_crcDesired::Class()), PInvalidCast);
  10886. #endif
  10887.   return *(H245_MultilinkIndication_crcDesired *)choice;
  10888. }
  10889.  
  10890.  
  10891. H245_MultilinkIndication::operator const H245_MultilinkIndication_crcDesired &() const
  10892. #endif
  10893. {
  10894. #ifndef PASN_LEANANDMEAN
  10895.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkIndication_crcDesired::Class()), PInvalidCast);
  10896. #endif
  10897.   return *(H245_MultilinkIndication_crcDesired *)choice;
  10898. }
  10899.  
  10900.  
  10901. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10902. H245_MultilinkIndication::operator H245_MultilinkIndication_excessiveError &() const
  10903. #else
  10904. H245_MultilinkIndication::operator H245_MultilinkIndication_excessiveError &()
  10905. {
  10906. #ifndef PASN_LEANANDMEAN
  10907.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkIndication_excessiveError::Class()), PInvalidCast);
  10908. #endif
  10909.   return *(H245_MultilinkIndication_excessiveError *)choice;
  10910. }
  10911.  
  10912.  
  10913. H245_MultilinkIndication::operator const H245_MultilinkIndication_excessiveError &() const
  10914. #endif
  10915. {
  10916. #ifndef PASN_LEANANDMEAN
  10917.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkIndication_excessiveError::Class()), PInvalidCast);
  10918. #endif
  10919.   return *(H245_MultilinkIndication_excessiveError *)choice;
  10920. }
  10921.  
  10922.  
  10923. BOOL H245_MultilinkIndication::CreateObject()
  10924. {
  10925.   switch (tag) {
  10926.     case e_nonStandard :
  10927.       choice = new H245_NonStandardMessage();
  10928.       return TRUE;
  10929.     case e_crcDesired :
  10930.       choice = new H245_MultilinkIndication_crcDesired();
  10931.       return TRUE;
  10932.     case e_excessiveError :
  10933.       choice = new H245_MultilinkIndication_excessiveError();
  10934.       return TRUE;
  10935.   }
  10936.  
  10937.   choice = NULL;
  10938.   return FALSE;
  10939. }
  10940.  
  10941.  
  10942. PObject * H245_MultilinkIndication::Clone() const
  10943. {
  10944. #ifndef PASN_LEANANDMEAN
  10945.   PAssert(IsClass(H245_MultilinkIndication::Class()), PInvalidCast);
  10946. #endif
  10947.   return new H245_MultilinkIndication(*this);
  10948. }
  10949.  
  10950.  
  10951. //
  10952. // DialingInformation
  10953. //
  10954.  
  10955. H245_DialingInformation::H245_DialingInformation(unsigned tag, PASN_Object::TagClass tagClass)
  10956.   : PASN_Choice(tag, tagClass, 3, TRUE
  10957. #ifndef PASN_NOPRINTON
  10958.       , "nonStandard "
  10959.         "differential "
  10960.         "infoNotAvailable "
  10961. #endif
  10962.     )
  10963. {
  10964. }
  10965.  
  10966.  
  10967. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10968. H245_DialingInformation::operator H245_NonStandardMessage &() const
  10969. #else
  10970. H245_DialingInformation::operator H245_NonStandardMessage &()
  10971. {
  10972. #ifndef PASN_LEANANDMEAN
  10973.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10974. #endif
  10975.   return *(H245_NonStandardMessage *)choice;
  10976. }
  10977.  
  10978.  
  10979. H245_DialingInformation::operator const H245_NonStandardMessage &() const
  10980. #endif
  10981. {
  10982. #ifndef PASN_LEANANDMEAN
  10983.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  10984. #endif
  10985.   return *(H245_NonStandardMessage *)choice;
  10986. }
  10987.  
  10988.  
  10989. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  10990. H245_DialingInformation::operator H245_ArrayOf_DialingInformationNumber &() const
  10991. #else
  10992. H245_DialingInformation::operator H245_ArrayOf_DialingInformationNumber &()
  10993. {
  10994. #ifndef PASN_LEANANDMEAN
  10995.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_DialingInformationNumber::Class()), PInvalidCast);
  10996. #endif
  10997.   return *(H245_ArrayOf_DialingInformationNumber *)choice;
  10998. }
  10999.  
  11000.  
  11001. H245_DialingInformation::operator const H245_ArrayOf_DialingInformationNumber &() const
  11002. #endif
  11003. {
  11004. #ifndef PASN_LEANANDMEAN
  11005.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_DialingInformationNumber::Class()), PInvalidCast);
  11006. #endif
  11007.   return *(H245_ArrayOf_DialingInformationNumber *)choice;
  11008. }
  11009.  
  11010.  
  11011. BOOL H245_DialingInformation::CreateObject()
  11012. {
  11013.   switch (tag) {
  11014.     case e_nonStandard :
  11015.       choice = new H245_NonStandardMessage();
  11016.       return TRUE;
  11017.     case e_differential :
  11018.       choice = new H245_ArrayOf_DialingInformationNumber();
  11019.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  11020.       return TRUE;
  11021.     case e_infoNotAvailable :
  11022.       choice = new PASN_Integer();
  11023.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  11024.       return TRUE;
  11025.   }
  11026.  
  11027.   choice = NULL;
  11028.   return FALSE;
  11029. }
  11030.  
  11031.  
  11032. PObject * H245_DialingInformation::Clone() const
  11033. {
  11034. #ifndef PASN_LEANANDMEAN
  11035.   PAssert(IsClass(H245_DialingInformation::Class()), PInvalidCast);
  11036. #endif
  11037.   return new H245_DialingInformation(*this);
  11038. }
  11039.  
  11040.  
  11041. //
  11042. // DialingInformationNetworkType
  11043. //
  11044.  
  11045. H245_DialingInformationNetworkType::H245_DialingInformationNetworkType(unsigned tag, PASN_Object::TagClass tagClass)
  11046.   : PASN_Choice(tag, tagClass, 3, TRUE
  11047. #ifndef PASN_NOPRINTON
  11048.       , "nonStandard "
  11049.         "n_isdn "
  11050.         "gstn "
  11051.         "mobile "
  11052. #endif
  11053.     )
  11054. {
  11055. }
  11056.  
  11057.  
  11058. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11059. H245_DialingInformationNetworkType::operator H245_NonStandardMessage &() const
  11060. #else
  11061. H245_DialingInformationNetworkType::operator H245_NonStandardMessage &()
  11062. {
  11063. #ifndef PASN_LEANANDMEAN
  11064.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  11065. #endif
  11066.   return *(H245_NonStandardMessage *)choice;
  11067. }
  11068.  
  11069.  
  11070. H245_DialingInformationNetworkType::operator const H245_NonStandardMessage &() const
  11071. #endif
  11072. {
  11073. #ifndef PASN_LEANANDMEAN
  11074.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardMessage::Class()), PInvalidCast);
  11075. #endif
  11076.   return *(H245_NonStandardMessage *)choice;
  11077. }
  11078.  
  11079.  
  11080. BOOL H245_DialingInformationNetworkType::CreateObject()
  11081. {
  11082.   switch (tag) {
  11083.     case e_nonStandard :
  11084.       choice = new H245_NonStandardMessage();
  11085.       return TRUE;
  11086.     case e_n_isdn :
  11087.     case e_gstn :
  11088.     case e_mobile :
  11089.       choice = new PASN_Null();
  11090.       return TRUE;
  11091.   }
  11092.  
  11093.   choice = NULL;
  11094.   return FALSE;
  11095. }
  11096.  
  11097.  
  11098. PObject * H245_DialingInformationNetworkType::Clone() const
  11099. {
  11100. #ifndef PASN_LEANANDMEAN
  11101.   PAssert(IsClass(H245_DialingInformationNetworkType::Class()), PInvalidCast);
  11102. #endif
  11103.   return new H245_DialingInformationNetworkType(*this);
  11104. }
  11105.  
  11106.  
  11107. //
  11108. // ConnectionIdentifier
  11109. //
  11110.  
  11111. H245_ConnectionIdentifier::H245_ConnectionIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  11112.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  11113. {
  11114.   m_channelTag.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  11115.   m_sequenceNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  11116. }
  11117.  
  11118.  
  11119. #ifndef PASN_NOPRINTON
  11120. void H245_ConnectionIdentifier::PrintOn(ostream & strm) const
  11121. {
  11122.   int indent = strm.precision() + 2;
  11123.   strm << "{\n";
  11124.   strm << setw(indent+13) << "channelTag = " << setprecision(indent) << m_channelTag << '\n';
  11125.   strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
  11126.   strm << setw(indent-1) << "}";
  11127. }
  11128. #endif
  11129.  
  11130.  
  11131. PObject::Comparison H245_ConnectionIdentifier::Compare(const PObject & obj) const
  11132. {
  11133. #ifndef PASN_LEANANDMEAN
  11134.   PAssert(IsDescendant(H245_ConnectionIdentifier::Class()), PInvalidCast);
  11135. #endif
  11136.   const H245_ConnectionIdentifier & other = (const H245_ConnectionIdentifier &)obj;
  11137.  
  11138.   Comparison result;
  11139.  
  11140.   if ((result = m_channelTag.Compare(other.m_channelTag)) != EqualTo)
  11141.     return result;
  11142.   if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
  11143.     return result;
  11144.  
  11145.   return PASN_Sequence::Compare(other);
  11146. }
  11147.  
  11148.  
  11149. PINDEX H245_ConnectionIdentifier::GetDataLength() const
  11150. {
  11151.   PINDEX length = 0;
  11152.   length += m_channelTag.GetObjectLength();
  11153.   length += m_sequenceNumber.GetObjectLength();
  11154.   return length;
  11155. }
  11156.  
  11157.  
  11158. BOOL H245_ConnectionIdentifier::Decode(PASN_Stream & strm)
  11159. {
  11160.   if (!PreambleDecode(strm))
  11161.     return FALSE;
  11162.  
  11163.   if (!m_channelTag.Decode(strm))
  11164.     return FALSE;
  11165.   if (!m_sequenceNumber.Decode(strm))
  11166.     return FALSE;
  11167.  
  11168.   return UnknownExtensionsDecode(strm);
  11169. }
  11170.  
  11171.  
  11172. void H245_ConnectionIdentifier::Encode(PASN_Stream & strm) const
  11173. {
  11174.   PreambleEncode(strm);
  11175.  
  11176.   m_channelTag.Encode(strm);
  11177.   m_sequenceNumber.Encode(strm);
  11178.  
  11179.   UnknownExtensionsEncode(strm);
  11180. }
  11181.  
  11182.  
  11183. PObject * H245_ConnectionIdentifier::Clone() const
  11184. {
  11185. #ifndef PASN_LEANANDMEAN
  11186.   PAssert(IsClass(H245_ConnectionIdentifier::Class()), PInvalidCast);
  11187. #endif
  11188.   return new H245_ConnectionIdentifier(*this);
  11189. }
  11190.  
  11191.  
  11192. //
  11193. // MaximumBitRate
  11194. //
  11195.  
  11196. H245_MaximumBitRate::H245_MaximumBitRate(unsigned tag, PASN_Object::TagClass tagClass)
  11197.   : PASN_Integer(tag, tagClass)
  11198. {
  11199.   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  11200. }
  11201.  
  11202.  
  11203. H245_MaximumBitRate & H245_MaximumBitRate::operator=(int v)
  11204. {
  11205.   SetValue(v);
  11206.   return *this;
  11207. }
  11208.  
  11209.  
  11210. H245_MaximumBitRate & H245_MaximumBitRate::operator=(unsigned v)
  11211. {
  11212.   SetValue(v);
  11213.   return *this;
  11214. }
  11215.  
  11216.  
  11217. PObject * H245_MaximumBitRate::Clone() const
  11218. {
  11219. #ifndef PASN_LEANANDMEAN
  11220.   PAssert(IsClass(H245_MaximumBitRate::Class()), PInvalidCast);
  11221. #endif
  11222.   return new H245_MaximumBitRate(*this);
  11223. }
  11224.  
  11225.  
  11226. //
  11227. // LogicalChannelRateRequest
  11228. //
  11229.  
  11230. H245_LogicalChannelRateRequest::H245_LogicalChannelRateRequest(unsigned tag, PASN_Object::TagClass tagClass)
  11231.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  11232. {
  11233. }
  11234.  
  11235.  
  11236. #ifndef PASN_NOPRINTON
  11237. void H245_LogicalChannelRateRequest::PrintOn(ostream & strm) const
  11238. {
  11239.   int indent = strm.precision() + 2;
  11240.   strm << "{\n";
  11241.   strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
  11242.   strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
  11243.   strm << setw(indent+17) << "maximumBitRate = " << setprecision(indent) << m_maximumBitRate << '\n';
  11244.   strm << setw(indent-1) << "}";
  11245. }
  11246. #endif
  11247.  
  11248.  
  11249. PObject::Comparison H245_LogicalChannelRateRequest::Compare(const PObject & obj) const
  11250. {
  11251. #ifndef PASN_LEANANDMEAN
  11252.   PAssert(IsDescendant(H245_LogicalChannelRateRequest::Class()), PInvalidCast);
  11253. #endif
  11254.   const H245_LogicalChannelRateRequest & other = (const H245_LogicalChannelRateRequest &)obj;
  11255.  
  11256.   Comparison result;
  11257.  
  11258.   if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
  11259.     return result;
  11260.   if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
  11261.     return result;
  11262.   if ((result = m_maximumBitRate.Compare(other.m_maximumBitRate)) != EqualTo)
  11263.     return result;
  11264.  
  11265.   return PASN_Sequence::Compare(other);
  11266. }
  11267.  
  11268.  
  11269. PINDEX H245_LogicalChannelRateRequest::GetDataLength() const
  11270. {
  11271.   PINDEX length = 0;
  11272.   length += m_sequenceNumber.GetObjectLength();
  11273.   length += m_logicalChannelNumber.GetObjectLength();
  11274.   length += m_maximumBitRate.GetObjectLength();
  11275.   return length;
  11276. }
  11277.  
  11278.  
  11279. BOOL H245_LogicalChannelRateRequest::Decode(PASN_Stream & strm)
  11280. {
  11281.   if (!PreambleDecode(strm))
  11282.     return FALSE;
  11283.  
  11284.   if (!m_sequenceNumber.Decode(strm))
  11285.     return FALSE;
  11286.   if (!m_logicalChannelNumber.Decode(strm))
  11287.     return FALSE;
  11288.   if (!m_maximumBitRate.Decode(strm))
  11289.     return FALSE;
  11290.  
  11291.   return UnknownExtensionsDecode(strm);
  11292. }
  11293.  
  11294.  
  11295. void H245_LogicalChannelRateRequest::Encode(PASN_Stream & strm) const
  11296. {
  11297.   PreambleEncode(strm);
  11298.  
  11299.   m_sequenceNumber.Encode(strm);
  11300.   m_logicalChannelNumber.Encode(strm);
  11301.   m_maximumBitRate.Encode(strm);
  11302.  
  11303.   UnknownExtensionsEncode(strm);
  11304. }
  11305.  
  11306.  
  11307. PObject * H245_LogicalChannelRateRequest::Clone() const
  11308. {
  11309. #ifndef PASN_LEANANDMEAN
  11310.   PAssert(IsClass(H245_LogicalChannelRateRequest::Class()), PInvalidCast);
  11311. #endif
  11312.   return new H245_LogicalChannelRateRequest(*this);
  11313. }
  11314.  
  11315.  
  11316. //
  11317. // LogicalChannelRateAcknowledge
  11318. //
  11319.  
  11320. H245_LogicalChannelRateAcknowledge::H245_LogicalChannelRateAcknowledge(unsigned tag, PASN_Object::TagClass tagClass)
  11321.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  11322. {
  11323. }
  11324.  
  11325.  
  11326. #ifndef PASN_NOPRINTON
  11327. void H245_LogicalChannelRateAcknowledge::PrintOn(ostream & strm) const
  11328. {
  11329.   int indent = strm.precision() + 2;
  11330.   strm << "{\n";
  11331.   strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
  11332.   strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
  11333.   strm << setw(indent+17) << "maximumBitRate = " << setprecision(indent) << m_maximumBitRate << '\n';
  11334.   strm << setw(indent-1) << "}";
  11335. }
  11336. #endif
  11337.  
  11338.  
  11339. PObject::Comparison H245_LogicalChannelRateAcknowledge::Compare(const PObject & obj) const
  11340. {
  11341. #ifndef PASN_LEANANDMEAN
  11342.   PAssert(IsDescendant(H245_LogicalChannelRateAcknowledge::Class()), PInvalidCast);
  11343. #endif
  11344.   const H245_LogicalChannelRateAcknowledge & other = (const H245_LogicalChannelRateAcknowledge &)obj;
  11345.  
  11346.   Comparison result;
  11347.  
  11348.   if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
  11349.     return result;
  11350.   if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
  11351.     return result;
  11352.   if ((result = m_maximumBitRate.Compare(other.m_maximumBitRate)) != EqualTo)
  11353.     return result;
  11354.  
  11355.   return PASN_Sequence::Compare(other);
  11356. }
  11357.  
  11358.  
  11359. PINDEX H245_LogicalChannelRateAcknowledge::GetDataLength() const
  11360. {
  11361.   PINDEX length = 0;
  11362.   length += m_sequenceNumber.GetObjectLength();
  11363.   length += m_logicalChannelNumber.GetObjectLength();
  11364.   length += m_maximumBitRate.GetObjectLength();
  11365.   return length;
  11366. }
  11367.  
  11368.  
  11369. BOOL H245_LogicalChannelRateAcknowledge::Decode(PASN_Stream & strm)
  11370. {
  11371.   if (!PreambleDecode(strm))
  11372.     return FALSE;
  11373.  
  11374.   if (!m_sequenceNumber.Decode(strm))
  11375.     return FALSE;
  11376.   if (!m_logicalChannelNumber.Decode(strm))
  11377.     return FALSE;
  11378.   if (!m_maximumBitRate.Decode(strm))
  11379.     return FALSE;
  11380.  
  11381.   return UnknownExtensionsDecode(strm);
  11382. }
  11383.  
  11384.  
  11385. void H245_LogicalChannelRateAcknowledge::Encode(PASN_Stream & strm) const
  11386. {
  11387.   PreambleEncode(strm);
  11388.  
  11389.   m_sequenceNumber.Encode(strm);
  11390.   m_logicalChannelNumber.Encode(strm);
  11391.   m_maximumBitRate.Encode(strm);
  11392.  
  11393.   UnknownExtensionsEncode(strm);
  11394. }
  11395.  
  11396.  
  11397. PObject * H245_LogicalChannelRateAcknowledge::Clone() const
  11398. {
  11399. #ifndef PASN_LEANANDMEAN
  11400.   PAssert(IsClass(H245_LogicalChannelRateAcknowledge::Class()), PInvalidCast);
  11401. #endif
  11402.   return new H245_LogicalChannelRateAcknowledge(*this);
  11403. }
  11404.  
  11405.  
  11406. //
  11407. // LogicalChannelRateRejectReason
  11408. //
  11409.  
  11410. H245_LogicalChannelRateRejectReason::H245_LogicalChannelRateRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  11411.   : PASN_Choice(tag, tagClass, 2, TRUE
  11412. #ifndef PASN_NOPRINTON
  11413.       , "undefinedReason "
  11414.         "insufficientResources "
  11415. #endif
  11416.     )
  11417. {
  11418. }
  11419.  
  11420.  
  11421. BOOL H245_LogicalChannelRateRejectReason::CreateObject()
  11422. {
  11423.   choice = (tag <= e_insufficientResources) ? new PASN_Null() : NULL;
  11424.   return choice != NULL;
  11425. }
  11426.  
  11427.  
  11428. PObject * H245_LogicalChannelRateRejectReason::Clone() const
  11429. {
  11430. #ifndef PASN_LEANANDMEAN
  11431.   PAssert(IsClass(H245_LogicalChannelRateRejectReason::Class()), PInvalidCast);
  11432. #endif
  11433.   return new H245_LogicalChannelRateRejectReason(*this);
  11434. }
  11435.  
  11436.  
  11437. //
  11438. // LogicalChannelRateRelease
  11439. //
  11440.  
  11441. H245_LogicalChannelRateRelease::H245_LogicalChannelRateRelease(unsigned tag, PASN_Object::TagClass tagClass)
  11442.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  11443. {
  11444. }
  11445.  
  11446.  
  11447. #ifndef PASN_NOPRINTON
  11448. void H245_LogicalChannelRateRelease::PrintOn(ostream & strm) const
  11449. {
  11450.   int indent = strm.precision() + 2;
  11451.   strm << "{\n";
  11452.   strm << setw(indent-1) << "}";
  11453. }
  11454. #endif
  11455.  
  11456.  
  11457. PINDEX H245_LogicalChannelRateRelease::GetDataLength() const
  11458. {
  11459.   PINDEX length = 0;
  11460.   return length;
  11461. }
  11462.  
  11463.  
  11464. BOOL H245_LogicalChannelRateRelease::Decode(PASN_Stream & strm)
  11465. {
  11466.   if (!PreambleDecode(strm))
  11467.     return FALSE;
  11468.  
  11469.  
  11470.   return UnknownExtensionsDecode(strm);
  11471. }
  11472.  
  11473.  
  11474. void H245_LogicalChannelRateRelease::Encode(PASN_Stream & strm) const
  11475. {
  11476.   PreambleEncode(strm);
  11477.  
  11478.  
  11479.   UnknownExtensionsEncode(strm);
  11480. }
  11481.  
  11482.  
  11483. PObject * H245_LogicalChannelRateRelease::Clone() const
  11484. {
  11485. #ifndef PASN_LEANANDMEAN
  11486.   PAssert(IsClass(H245_LogicalChannelRateRelease::Class()), PInvalidCast);
  11487. #endif
  11488.   return new H245_LogicalChannelRateRelease(*this);
  11489. }
  11490.  
  11491.  
  11492. //
  11493. // SendTerminalCapabilitySet
  11494. //
  11495.  
  11496. H245_SendTerminalCapabilitySet::H245_SendTerminalCapabilitySet(unsigned tag, PASN_Object::TagClass tagClass)
  11497.   : PASN_Choice(tag, tagClass, 2, TRUE
  11498. #ifndef PASN_NOPRINTON
  11499.       , "specificRequest "
  11500.         "genericRequest "
  11501. #endif
  11502.     )
  11503. {
  11504. }
  11505.  
  11506.  
  11507. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11508. H245_SendTerminalCapabilitySet::operator H245_SendTerminalCapabilitySet_specificRequest &() const
  11509. #else
  11510. H245_SendTerminalCapabilitySet::operator H245_SendTerminalCapabilitySet_specificRequest &()
  11511. {
  11512. #ifndef PASN_LEANANDMEAN
  11513.   PAssert(PAssertNULL(choice)->IsDescendant(H245_SendTerminalCapabilitySet_specificRequest::Class()), PInvalidCast);
  11514. #endif
  11515.   return *(H245_SendTerminalCapabilitySet_specificRequest *)choice;
  11516. }
  11517.  
  11518.  
  11519. H245_SendTerminalCapabilitySet::operator const H245_SendTerminalCapabilitySet_specificRequest &() const
  11520. #endif
  11521. {
  11522. #ifndef PASN_LEANANDMEAN
  11523.   PAssert(PAssertNULL(choice)->IsDescendant(H245_SendTerminalCapabilitySet_specificRequest::Class()), PInvalidCast);
  11524. #endif
  11525.   return *(H245_SendTerminalCapabilitySet_specificRequest *)choice;
  11526. }
  11527.  
  11528.  
  11529. BOOL H245_SendTerminalCapabilitySet::CreateObject()
  11530. {
  11531.   switch (tag) {
  11532.     case e_specificRequest :
  11533.       choice = new H245_SendTerminalCapabilitySet_specificRequest();
  11534.       return TRUE;
  11535.     case e_genericRequest :
  11536.       choice = new PASN_Null();
  11537.       return TRUE;
  11538.   }
  11539.  
  11540.   choice = NULL;
  11541.   return FALSE;
  11542. }
  11543.  
  11544.  
  11545. PObject * H245_SendTerminalCapabilitySet::Clone() const
  11546. {
  11547. #ifndef PASN_LEANANDMEAN
  11548.   PAssert(IsClass(H245_SendTerminalCapabilitySet::Class()), PInvalidCast);
  11549. #endif
  11550.   return new H245_SendTerminalCapabilitySet(*this);
  11551. }
  11552.  
  11553.  
  11554. //
  11555. // EncryptionCommand
  11556. //
  11557.  
  11558. H245_EncryptionCommand::H245_EncryptionCommand(unsigned tag, PASN_Object::TagClass tagClass)
  11559.   : PASN_Choice(tag, tagClass, 3, TRUE
  11560. #ifndef PASN_NOPRINTON
  11561.       , "encryptionSE "
  11562.         "encryptionIVRequest "
  11563.         "encryptionAlgorithmID "
  11564. #endif
  11565.     )
  11566. {
  11567. }
  11568.  
  11569.  
  11570. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11571. H245_EncryptionCommand::operator H245_EncryptionCommand_encryptionAlgorithmID &() const
  11572. #else
  11573. H245_EncryptionCommand::operator H245_EncryptionCommand_encryptionAlgorithmID &()
  11574. {
  11575. #ifndef PASN_LEANANDMEAN
  11576.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionCommand_encryptionAlgorithmID::Class()), PInvalidCast);
  11577. #endif
  11578.   return *(H245_EncryptionCommand_encryptionAlgorithmID *)choice;
  11579. }
  11580.  
  11581.  
  11582. H245_EncryptionCommand::operator const H245_EncryptionCommand_encryptionAlgorithmID &() const
  11583. #endif
  11584. {
  11585. #ifndef PASN_LEANANDMEAN
  11586.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionCommand_encryptionAlgorithmID::Class()), PInvalidCast);
  11587. #endif
  11588.   return *(H245_EncryptionCommand_encryptionAlgorithmID *)choice;
  11589. }
  11590.  
  11591.  
  11592. BOOL H245_EncryptionCommand::CreateObject()
  11593. {
  11594.   switch (tag) {
  11595.     case e_encryptionSE :
  11596.       choice = new PASN_OctetString();
  11597.       return TRUE;
  11598.     case e_encryptionIVRequest :
  11599.       choice = new PASN_Null();
  11600.       return TRUE;
  11601.     case e_encryptionAlgorithmID :
  11602.       choice = new H245_EncryptionCommand_encryptionAlgorithmID();
  11603.       return TRUE;
  11604.   }
  11605.  
  11606.   choice = NULL;
  11607.   return FALSE;
  11608. }
  11609.  
  11610.  
  11611. PObject * H245_EncryptionCommand::Clone() const
  11612. {
  11613. #ifndef PASN_LEANANDMEAN
  11614.   PAssert(IsClass(H245_EncryptionCommand::Class()), PInvalidCast);
  11615. #endif
  11616.   return new H245_EncryptionCommand(*this);
  11617. }
  11618.  
  11619.  
  11620. //
  11621. // EndSessionCommand
  11622. //
  11623.  
  11624. H245_EndSessionCommand::H245_EndSessionCommand(unsigned tag, PASN_Object::TagClass tagClass)
  11625.   : PASN_Choice(tag, tagClass, 3, TRUE
  11626. #ifndef PASN_NOPRINTON
  11627.       , "nonStandard "
  11628.         "disconnect "
  11629.         "gstnOptions "
  11630.         "isdnOptions "
  11631. #endif
  11632.     )
  11633. {
  11634. }
  11635.  
  11636.  
  11637. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11638. H245_EndSessionCommand::operator H245_NonStandardParameter &() const
  11639. #else
  11640. H245_EndSessionCommand::operator H245_NonStandardParameter &()
  11641. {
  11642. #ifndef PASN_LEANANDMEAN
  11643.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  11644. #endif
  11645.   return *(H245_NonStandardParameter *)choice;
  11646. }
  11647.  
  11648.  
  11649. H245_EndSessionCommand::operator const H245_NonStandardParameter &() const
  11650. #endif
  11651. {
  11652. #ifndef PASN_LEANANDMEAN
  11653.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  11654. #endif
  11655.   return *(H245_NonStandardParameter *)choice;
  11656. }
  11657.  
  11658.  
  11659. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11660. H245_EndSessionCommand::operator H245_EndSessionCommand_gstnOptions &() const
  11661. #else
  11662. H245_EndSessionCommand::operator H245_EndSessionCommand_gstnOptions &()
  11663. {
  11664. #ifndef PASN_LEANANDMEAN
  11665.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EndSessionCommand_gstnOptions::Class()), PInvalidCast);
  11666. #endif
  11667.   return *(H245_EndSessionCommand_gstnOptions *)choice;
  11668. }
  11669.  
  11670.  
  11671. H245_EndSessionCommand::operator const H245_EndSessionCommand_gstnOptions &() const
  11672. #endif
  11673. {
  11674. #ifndef PASN_LEANANDMEAN
  11675.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EndSessionCommand_gstnOptions::Class()), PInvalidCast);
  11676. #endif
  11677.   return *(H245_EndSessionCommand_gstnOptions *)choice;
  11678. }
  11679.  
  11680.  
  11681. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11682. H245_EndSessionCommand::operator H245_EndSessionCommand_isdnOptions &() const
  11683. #else
  11684. H245_EndSessionCommand::operator H245_EndSessionCommand_isdnOptions &()
  11685. {
  11686. #ifndef PASN_LEANANDMEAN
  11687.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EndSessionCommand_isdnOptions::Class()), PInvalidCast);
  11688. #endif
  11689.   return *(H245_EndSessionCommand_isdnOptions *)choice;
  11690. }
  11691.  
  11692.  
  11693. H245_EndSessionCommand::operator const H245_EndSessionCommand_isdnOptions &() const
  11694. #endif
  11695. {
  11696. #ifndef PASN_LEANANDMEAN
  11697.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EndSessionCommand_isdnOptions::Class()), PInvalidCast);
  11698. #endif
  11699.   return *(H245_EndSessionCommand_isdnOptions *)choice;
  11700. }
  11701.  
  11702.  
  11703. BOOL H245_EndSessionCommand::CreateObject()
  11704. {
  11705.   switch (tag) {
  11706.     case e_nonStandard :
  11707.       choice = new H245_NonStandardParameter();
  11708.       return TRUE;
  11709.     case e_disconnect :
  11710.       choice = new PASN_Null();
  11711.       return TRUE;
  11712.     case e_gstnOptions :
  11713.       choice = new H245_EndSessionCommand_gstnOptions();
  11714.       return TRUE;
  11715.     case e_isdnOptions :
  11716.       choice = new H245_EndSessionCommand_isdnOptions();
  11717.       return TRUE;
  11718.   }
  11719.  
  11720.   choice = NULL;
  11721.   return FALSE;
  11722. }
  11723.  
  11724.  
  11725. PObject * H245_EndSessionCommand::Clone() const
  11726. {
  11727. #ifndef PASN_LEANANDMEAN
  11728.   PAssert(IsClass(H245_EndSessionCommand::Class()), PInvalidCast);
  11729. #endif
  11730.   return new H245_EndSessionCommand(*this);
  11731. }
  11732.  
  11733.  
  11734. //
  11735. // ConferenceCommand
  11736. //
  11737.  
  11738. H245_ConferenceCommand::H245_ConferenceCommand(unsigned tag, PASN_Object::TagClass tagClass)
  11739.   : PASN_Choice(tag, tagClass, 7, TRUE
  11740. #ifndef PASN_NOPRINTON
  11741.       , "broadcastMyLogicalChannel "
  11742.         "cancelBroadcastMyLogicalChannel "
  11743.         "makeTerminalBroadcaster "
  11744.         "cancelMakeTerminalBroadcaster "
  11745.         "sendThisSource "
  11746.         "cancelSendThisSource "
  11747.         "dropConference "
  11748.         "substituteConferenceIDCommand "
  11749. #endif
  11750.     )
  11751. {
  11752. }
  11753.  
  11754.  
  11755. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11756. H245_ConferenceCommand::operator H245_LogicalChannelNumber &() const
  11757. #else
  11758. H245_ConferenceCommand::operator H245_LogicalChannelNumber &()
  11759. {
  11760. #ifndef PASN_LEANANDMEAN
  11761.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  11762. #endif
  11763.   return *(H245_LogicalChannelNumber *)choice;
  11764. }
  11765.  
  11766.  
  11767. H245_ConferenceCommand::operator const H245_LogicalChannelNumber &() const
  11768. #endif
  11769. {
  11770. #ifndef PASN_LEANANDMEAN
  11771.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  11772. #endif
  11773.   return *(H245_LogicalChannelNumber *)choice;
  11774. }
  11775.  
  11776.  
  11777. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11778. H245_ConferenceCommand::operator H245_TerminalLabel &() const
  11779. #else
  11780. H245_ConferenceCommand::operator H245_TerminalLabel &()
  11781. {
  11782. #ifndef PASN_LEANANDMEAN
  11783.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalLabel::Class()), PInvalidCast);
  11784. #endif
  11785.   return *(H245_TerminalLabel *)choice;
  11786. }
  11787.  
  11788.  
  11789. H245_ConferenceCommand::operator const H245_TerminalLabel &() const
  11790. #endif
  11791. {
  11792. #ifndef PASN_LEANANDMEAN
  11793.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalLabel::Class()), PInvalidCast);
  11794. #endif
  11795.   return *(H245_TerminalLabel *)choice;
  11796. }
  11797.  
  11798.  
  11799. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  11800. H245_ConferenceCommand::operator H245_SubstituteConferenceIDCommand &() const
  11801. #else
  11802. H245_ConferenceCommand::operator H245_SubstituteConferenceIDCommand &()
  11803. {
  11804. #ifndef PASN_LEANANDMEAN
  11805.   PAssert(PAssertNULL(choice)->IsDescendant(H245_SubstituteConferenceIDCommand::Class()), PInvalidCast);
  11806. #endif
  11807.   return *(H245_SubstituteConferenceIDCommand *)choice;
  11808. }
  11809.  
  11810.  
  11811. H245_ConferenceCommand::operator const H245_SubstituteConferenceIDCommand &() const
  11812. #endif
  11813. {
  11814. #ifndef PASN_LEANANDMEAN
  11815.   PAssert(PAssertNULL(choice)->IsDescendant(H245_SubstituteConferenceIDCommand::Class()), PInvalidCast);
  11816. #endif
  11817.   return *(H245_SubstituteConferenceIDCommand *)choice;
  11818. }
  11819.  
  11820.  
  11821. BOOL H245_ConferenceCommand::CreateObject()
  11822. {
  11823.   switch (tag) {
  11824.     case e_broadcastMyLogicalChannel :
  11825.     case e_cancelBroadcastMyLogicalChannel :
  11826.       choice = new H245_LogicalChannelNumber();
  11827.       return TRUE;
  11828.     case e_makeTerminalBroadcaster :
  11829.     case e_sendThisSource :
  11830.       choice = new H245_TerminalLabel();
  11831.       return TRUE;
  11832.     case e_cancelMakeTerminalBroadcaster :
  11833.     case e_cancelSendThisSource :
  11834.     case e_dropConference :
  11835.       choice = new PASN_Null();
  11836.       return TRUE;
  11837.     case e_substituteConferenceIDCommand :
  11838.       choice = new H245_SubstituteConferenceIDCommand();
  11839.       return TRUE;
  11840.   }
  11841.  
  11842.   choice = NULL;
  11843.   return FALSE;
  11844. }
  11845.  
  11846.  
  11847. PObject * H245_ConferenceCommand::Clone() const
  11848. {
  11849. #ifndef PASN_LEANANDMEAN
  11850.   PAssert(IsClass(H245_ConferenceCommand::Class()), PInvalidCast);
  11851. #endif
  11852.   return new H245_ConferenceCommand(*this);
  11853. }
  11854.  
  11855.  
  11856. //
  11857. // SubstituteConferenceIDCommand
  11858. //
  11859.  
  11860. H245_SubstituteConferenceIDCommand::H245_SubstituteConferenceIDCommand(unsigned tag, PASN_Object::TagClass tagClass)
  11861.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  11862. {
  11863.   m_conferenceIdentifier.SetConstraints(PASN_Object::FixedConstraint, 16);
  11864. }
  11865.  
  11866.  
  11867. #ifndef PASN_NOPRINTON
  11868. void H245_SubstituteConferenceIDCommand::PrintOn(ostream & strm) const
  11869. {
  11870.   int indent = strm.precision() + 2;
  11871.   strm << "{\n";
  11872.   strm << setw(indent+23) << "conferenceIdentifier = " << setprecision(indent) << m_conferenceIdentifier << '\n';
  11873.   strm << setw(indent-1) << "}";
  11874. }
  11875. #endif
  11876.  
  11877.  
  11878. PObject::Comparison H245_SubstituteConferenceIDCommand::Compare(const PObject & obj) const
  11879. {
  11880. #ifndef PASN_LEANANDMEAN
  11881.   PAssert(IsDescendant(H245_SubstituteConferenceIDCommand::Class()), PInvalidCast);
  11882. #endif
  11883.   const H245_SubstituteConferenceIDCommand & other = (const H245_SubstituteConferenceIDCommand &)obj;
  11884.  
  11885.   Comparison result;
  11886.  
  11887.   if ((result = m_conferenceIdentifier.Compare(other.m_conferenceIdentifier)) != EqualTo)
  11888.     return result;
  11889.  
  11890.   return PASN_Sequence::Compare(other);
  11891. }
  11892.  
  11893.  
  11894. PINDEX H245_SubstituteConferenceIDCommand::GetDataLength() const
  11895. {
  11896.   PINDEX length = 0;
  11897.   length += m_conferenceIdentifier.GetObjectLength();
  11898.   return length;
  11899. }
  11900.  
  11901.  
  11902. BOOL H245_SubstituteConferenceIDCommand::Decode(PASN_Stream & strm)
  11903. {
  11904.   if (!PreambleDecode(strm))
  11905.     return FALSE;
  11906.  
  11907.   if (!m_conferenceIdentifier.Decode(strm))
  11908.     return FALSE;
  11909.  
  11910.   return UnknownExtensionsDecode(strm);
  11911. }
  11912.  
  11913.  
  11914. void H245_SubstituteConferenceIDCommand::Encode(PASN_Stream & strm) const
  11915. {
  11916.   PreambleEncode(strm);
  11917.  
  11918.   m_conferenceIdentifier.Encode(strm);
  11919.  
  11920.   UnknownExtensionsEncode(strm);
  11921. }
  11922.  
  11923.  
  11924. PObject * H245_SubstituteConferenceIDCommand::Clone() const
  11925. {
  11926. #ifndef PASN_LEANANDMEAN
  11927.   PAssert(IsClass(H245_SubstituteConferenceIDCommand::Class()), PInvalidCast);
  11928. #endif
  11929.   return new H245_SubstituteConferenceIDCommand(*this);
  11930. }
  11931.  
  11932.  
  11933. //
  11934. // KeyProtectionMethod
  11935. //
  11936.  
  11937. H245_KeyProtectionMethod::H245_KeyProtectionMethod(unsigned tag, PASN_Object::TagClass tagClass)
  11938.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  11939. {
  11940. }
  11941.  
  11942.  
  11943. #ifndef PASN_NOPRINTON
  11944. void H245_KeyProtectionMethod::PrintOn(ostream & strm) const
  11945. {
  11946.   int indent = strm.precision() + 2;
  11947.   strm << "{\n";
  11948.   strm << setw(indent+16) << "secureChannel = " << setprecision(indent) << m_secureChannel << '\n';
  11949.   strm << setw(indent+15) << "sharedSecret = " << setprecision(indent) << m_sharedSecret << '\n';
  11950.   strm << setw(indent+19) << "certProtectedKey = " << setprecision(indent) << m_certProtectedKey << '\n';
  11951.   strm << setw(indent-1) << "}";
  11952. }
  11953. #endif
  11954.  
  11955.  
  11956. PObject::Comparison H245_KeyProtectionMethod::Compare(const PObject & obj) const
  11957. {
  11958. #ifndef PASN_LEANANDMEAN
  11959.   PAssert(IsDescendant(H245_KeyProtectionMethod::Class()), PInvalidCast);
  11960. #endif
  11961.   const H245_KeyProtectionMethod & other = (const H245_KeyProtectionMethod &)obj;
  11962.  
  11963.   Comparison result;
  11964.  
  11965.   if ((result = m_secureChannel.Compare(other.m_secureChannel)) != EqualTo)
  11966.     return result;
  11967.   if ((result = m_sharedSecret.Compare(other.m_sharedSecret)) != EqualTo)
  11968.     return result;
  11969.   if ((result = m_certProtectedKey.Compare(other.m_certProtectedKey)) != EqualTo)
  11970.     return result;
  11971.  
  11972.   return PASN_Sequence::Compare(other);
  11973. }
  11974.  
  11975.  
  11976. PINDEX H245_KeyProtectionMethod::GetDataLength() const
  11977. {
  11978.   PINDEX length = 0;
  11979.   length += m_secureChannel.GetObjectLength();
  11980.   length += m_sharedSecret.GetObjectLength();
  11981.   length += m_certProtectedKey.GetObjectLength();
  11982.   return length;
  11983. }
  11984.  
  11985.  
  11986. BOOL H245_KeyProtectionMethod::Decode(PASN_Stream & strm)
  11987. {
  11988.   if (!PreambleDecode(strm))
  11989.     return FALSE;
  11990.  
  11991.   if (!m_secureChannel.Decode(strm))
  11992.     return FALSE;
  11993.   if (!m_sharedSecret.Decode(strm))
  11994.     return FALSE;
  11995.   if (!m_certProtectedKey.Decode(strm))
  11996.     return FALSE;
  11997.  
  11998.   return UnknownExtensionsDecode(strm);
  11999. }
  12000.  
  12001.  
  12002. void H245_KeyProtectionMethod::Encode(PASN_Stream & strm) const
  12003. {
  12004.   PreambleEncode(strm);
  12005.  
  12006.   m_secureChannel.Encode(strm);
  12007.   m_sharedSecret.Encode(strm);
  12008.   m_certProtectedKey.Encode(strm);
  12009.  
  12010.   UnknownExtensionsEncode(strm);
  12011. }
  12012.  
  12013.  
  12014. PObject * H245_KeyProtectionMethod::Clone() const
  12015. {
  12016. #ifndef PASN_LEANANDMEAN
  12017.   PAssert(IsClass(H245_KeyProtectionMethod::Class()), PInvalidCast);
  12018. #endif
  12019.   return new H245_KeyProtectionMethod(*this);
  12020. }
  12021.  
  12022.  
  12023. //
  12024. // EncryptionUpdateRequest
  12025. //
  12026.  
  12027. H245_EncryptionUpdateRequest::H245_EncryptionUpdateRequest(unsigned tag, PASN_Object::TagClass tagClass)
  12028.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  12029. {
  12030. }
  12031.  
  12032.  
  12033. #ifndef PASN_NOPRINTON
  12034. void H245_EncryptionUpdateRequest::PrintOn(ostream & strm) const
  12035. {
  12036.   int indent = strm.precision() + 2;
  12037.   strm << "{\n";
  12038.   if (HasOptionalField(e_keyProtectionMethod))
  12039.     strm << setw(indent+22) << "keyProtectionMethod = " << setprecision(indent) << m_keyProtectionMethod << '\n';
  12040.   strm << setw(indent-1) << "}";
  12041. }
  12042. #endif
  12043.  
  12044.  
  12045. PObject::Comparison H245_EncryptionUpdateRequest::Compare(const PObject & obj) const
  12046. {
  12047. #ifndef PASN_LEANANDMEAN
  12048.   PAssert(IsDescendant(H245_EncryptionUpdateRequest::Class()), PInvalidCast);
  12049. #endif
  12050.   const H245_EncryptionUpdateRequest & other = (const H245_EncryptionUpdateRequest &)obj;
  12051.  
  12052.   Comparison result;
  12053.  
  12054.   if ((result = m_keyProtectionMethod.Compare(other.m_keyProtectionMethod)) != EqualTo)
  12055.     return result;
  12056.  
  12057.   return PASN_Sequence::Compare(other);
  12058. }
  12059.  
  12060.  
  12061. PINDEX H245_EncryptionUpdateRequest::GetDataLength() const
  12062. {
  12063.   PINDEX length = 0;
  12064.   if (HasOptionalField(e_keyProtectionMethod))
  12065.     length += m_keyProtectionMethod.GetObjectLength();
  12066.   return length;
  12067. }
  12068.  
  12069.  
  12070. BOOL H245_EncryptionUpdateRequest::Decode(PASN_Stream & strm)
  12071. {
  12072.   if (!PreambleDecode(strm))
  12073.     return FALSE;
  12074.  
  12075.   if (HasOptionalField(e_keyProtectionMethod) && !m_keyProtectionMethod.Decode(strm))
  12076.     return FALSE;
  12077.  
  12078.   return UnknownExtensionsDecode(strm);
  12079. }
  12080.  
  12081.  
  12082. void H245_EncryptionUpdateRequest::Encode(PASN_Stream & strm) const
  12083. {
  12084.   PreambleEncode(strm);
  12085.  
  12086.   if (HasOptionalField(e_keyProtectionMethod))
  12087.     m_keyProtectionMethod.Encode(strm);
  12088.  
  12089.   UnknownExtensionsEncode(strm);
  12090. }
  12091.  
  12092.  
  12093. PObject * H245_EncryptionUpdateRequest::Clone() const
  12094. {
  12095. #ifndef PASN_LEANANDMEAN
  12096.   PAssert(IsClass(H245_EncryptionUpdateRequest::Class()), PInvalidCast);
  12097. #endif
  12098.   return new H245_EncryptionUpdateRequest(*this);
  12099. }
  12100.  
  12101.  
  12102. //
  12103. // PictureReference
  12104. //
  12105.  
  12106. H245_PictureReference::H245_PictureReference(unsigned tag, PASN_Object::TagClass tagClass)
  12107.   : PASN_Choice(tag, tagClass, 2, TRUE
  12108. #ifndef PASN_NOPRINTON
  12109.       , "pictureNumber "
  12110.         "longTermPictureIndex "
  12111. #endif
  12112.     )
  12113. {
  12114. }
  12115.  
  12116.  
  12117. BOOL H245_PictureReference::CreateObject()
  12118. {
  12119.   switch (tag) {
  12120.     case e_pictureNumber :
  12121.       choice = new PASN_Integer();
  12122.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 1023);
  12123.       return TRUE;
  12124.     case e_longTermPictureIndex :
  12125.       choice = new PASN_Integer();
  12126.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  12127.       return TRUE;
  12128.   }
  12129.  
  12130.   choice = NULL;
  12131.   return FALSE;
  12132. }
  12133.  
  12134.  
  12135. PObject * H245_PictureReference::Clone() const
  12136. {
  12137. #ifndef PASN_LEANANDMEAN
  12138.   PAssert(IsClass(H245_PictureReference::Class()), PInvalidCast);
  12139. #endif
  12140.   return new H245_PictureReference(*this);
  12141. }
  12142.  
  12143.  
  12144. //
  12145. // H223MultiplexReconfiguration
  12146. //
  12147.  
  12148. H245_H223MultiplexReconfiguration::H245_H223MultiplexReconfiguration(unsigned tag, PASN_Object::TagClass tagClass)
  12149.   : PASN_Choice(tag, tagClass, 2, TRUE
  12150. #ifndef PASN_NOPRINTON
  12151.       , "h223ModeChange "
  12152.         "h223AnnexADoubleFlag "
  12153. #endif
  12154.     )
  12155. {
  12156. }
  12157.  
  12158.  
  12159. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12160. H245_H223MultiplexReconfiguration::operator H245_H223MultiplexReconfiguration_h223ModeChange &() const
  12161. #else
  12162. H245_H223MultiplexReconfiguration::operator H245_H223MultiplexReconfiguration_h223ModeChange &()
  12163. {
  12164. #ifndef PASN_LEANANDMEAN
  12165.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223MultiplexReconfiguration_h223ModeChange::Class()), PInvalidCast);
  12166. #endif
  12167.   return *(H245_H223MultiplexReconfiguration_h223ModeChange *)choice;
  12168. }
  12169.  
  12170.  
  12171. H245_H223MultiplexReconfiguration::operator const H245_H223MultiplexReconfiguration_h223ModeChange &() const
  12172. #endif
  12173. {
  12174. #ifndef PASN_LEANANDMEAN
  12175.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223MultiplexReconfiguration_h223ModeChange::Class()), PInvalidCast);
  12176. #endif
  12177.   return *(H245_H223MultiplexReconfiguration_h223ModeChange *)choice;
  12178. }
  12179.  
  12180.  
  12181. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12182. H245_H223MultiplexReconfiguration::operator H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag &() const
  12183. #else
  12184. H245_H223MultiplexReconfiguration::operator H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag &()
  12185. {
  12186. #ifndef PASN_LEANANDMEAN
  12187.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag::Class()), PInvalidCast);
  12188. #endif
  12189.   return *(H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag *)choice;
  12190. }
  12191.  
  12192.  
  12193. H245_H223MultiplexReconfiguration::operator const H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag &() const
  12194. #endif
  12195. {
  12196. #ifndef PASN_LEANANDMEAN
  12197.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag::Class()), PInvalidCast);
  12198. #endif
  12199.   return *(H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag *)choice;
  12200. }
  12201.  
  12202.  
  12203. BOOL H245_H223MultiplexReconfiguration::CreateObject()
  12204. {
  12205.   switch (tag) {
  12206.     case e_h223ModeChange :
  12207.       choice = new H245_H223MultiplexReconfiguration_h223ModeChange();
  12208.       return TRUE;
  12209.     case e_h223AnnexADoubleFlag :
  12210.       choice = new H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag();
  12211.       return TRUE;
  12212.   }
  12213.  
  12214.   choice = NULL;
  12215.   return FALSE;
  12216. }
  12217.  
  12218.  
  12219. PObject * H245_H223MultiplexReconfiguration::Clone() const
  12220. {
  12221. #ifndef PASN_LEANANDMEAN
  12222.   PAssert(IsClass(H245_H223MultiplexReconfiguration::Class()), PInvalidCast);
  12223. #endif
  12224.   return new H245_H223MultiplexReconfiguration(*this);
  12225. }
  12226.  
  12227.  
  12228. //
  12229. // FunctionNotUnderstood
  12230. //
  12231.  
  12232. H245_FunctionNotUnderstood::H245_FunctionNotUnderstood(unsigned tag, PASN_Object::TagClass tagClass)
  12233.   : PASN_Choice(tag, tagClass, 3, FALSE
  12234. #ifndef PASN_NOPRINTON
  12235.       , "request "
  12236.         "response "
  12237.         "command "
  12238. #endif
  12239.     )
  12240. {
  12241. }
  12242.  
  12243.  
  12244. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12245. H245_FunctionNotUnderstood::operator H245_RequestMessage &() const
  12246. #else
  12247. H245_FunctionNotUnderstood::operator H245_RequestMessage &()
  12248. {
  12249. #ifndef PASN_LEANANDMEAN
  12250.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMessage::Class()), PInvalidCast);
  12251. #endif
  12252.   return *(H245_RequestMessage *)choice;
  12253. }
  12254.  
  12255.  
  12256. H245_FunctionNotUnderstood::operator const H245_RequestMessage &() const
  12257. #endif
  12258. {
  12259. #ifndef PASN_LEANANDMEAN
  12260.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RequestMessage::Class()), PInvalidCast);
  12261. #endif
  12262.   return *(H245_RequestMessage *)choice;
  12263. }
  12264.  
  12265.  
  12266. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12267. H245_FunctionNotUnderstood::operator H245_ResponseMessage &() const
  12268. #else
  12269. H245_FunctionNotUnderstood::operator H245_ResponseMessage &()
  12270. {
  12271. #ifndef PASN_LEANANDMEAN
  12272.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ResponseMessage::Class()), PInvalidCast);
  12273. #endif
  12274.   return *(H245_ResponseMessage *)choice;
  12275. }
  12276.  
  12277.  
  12278. H245_FunctionNotUnderstood::operator const H245_ResponseMessage &() const
  12279. #endif
  12280. {
  12281. #ifndef PASN_LEANANDMEAN
  12282.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ResponseMessage::Class()), PInvalidCast);
  12283. #endif
  12284.   return *(H245_ResponseMessage *)choice;
  12285. }
  12286.  
  12287.  
  12288. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12289. H245_FunctionNotUnderstood::operator H245_CommandMessage &() const
  12290. #else
  12291. H245_FunctionNotUnderstood::operator H245_CommandMessage &()
  12292. {
  12293. #ifndef PASN_LEANANDMEAN
  12294.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommandMessage::Class()), PInvalidCast);
  12295. #endif
  12296.   return *(H245_CommandMessage *)choice;
  12297. }
  12298.  
  12299.  
  12300. H245_FunctionNotUnderstood::operator const H245_CommandMessage &() const
  12301. #endif
  12302. {
  12303. #ifndef PASN_LEANANDMEAN
  12304.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CommandMessage::Class()), PInvalidCast);
  12305. #endif
  12306.   return *(H245_CommandMessage *)choice;
  12307. }
  12308.  
  12309.  
  12310. BOOL H245_FunctionNotUnderstood::CreateObject()
  12311. {
  12312.   switch (tag) {
  12313.     case e_request :
  12314.       choice = new H245_RequestMessage();
  12315.       return TRUE;
  12316.     case e_response :
  12317.       choice = new H245_ResponseMessage();
  12318.       return TRUE;
  12319.     case e_command :
  12320.       choice = new H245_CommandMessage();
  12321.       return TRUE;
  12322.   }
  12323.  
  12324.   choice = NULL;
  12325.   return FALSE;
  12326. }
  12327.  
  12328.  
  12329. PObject * H245_FunctionNotUnderstood::Clone() const
  12330. {
  12331. #ifndef PASN_LEANANDMEAN
  12332.   PAssert(IsClass(H245_FunctionNotUnderstood::Class()), PInvalidCast);
  12333. #endif
  12334.   return new H245_FunctionNotUnderstood(*this);
  12335. }
  12336.  
  12337.  
  12338. //
  12339. // ConferenceIndication
  12340. //
  12341.  
  12342. H245_ConferenceIndication::H245_ConferenceIndication(unsigned tag, PASN_Object::TagClass tagClass)
  12343.   : PASN_Choice(tag, tagClass, 10, TRUE
  12344. #ifndef PASN_NOPRINTON
  12345.       , "sbeNumber "
  12346.         "terminalNumberAssign "
  12347.         "terminalJoinedConference "
  12348.         "terminalLeftConference "
  12349.         "seenByAtLeastOneOther "
  12350.         "cancelSeenByAtLeastOneOther "
  12351.         "seenByAll "
  12352.         "cancelSeenByAll "
  12353.         "terminalYouAreSeeing "
  12354.         "requestForFloor "
  12355.         "withdrawChairToken "
  12356.         "floorRequested "
  12357.         "terminalYouAreSeeingInSubPictureNumber "
  12358.         "videoIndicateCompose "
  12359. #endif
  12360.     )
  12361. {
  12362. }
  12363.  
  12364.  
  12365. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12366. H245_ConferenceIndication::operator H245_TerminalLabel &() const
  12367. #else
  12368. H245_ConferenceIndication::operator H245_TerminalLabel &()
  12369. {
  12370. #ifndef PASN_LEANANDMEAN
  12371.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalLabel::Class()), PInvalidCast);
  12372. #endif
  12373.   return *(H245_TerminalLabel *)choice;
  12374. }
  12375.  
  12376.  
  12377. H245_ConferenceIndication::operator const H245_TerminalLabel &() const
  12378. #endif
  12379. {
  12380. #ifndef PASN_LEANANDMEAN
  12381.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalLabel::Class()), PInvalidCast);
  12382. #endif
  12383.   return *(H245_TerminalLabel *)choice;
  12384. }
  12385.  
  12386.  
  12387. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12388. H245_ConferenceIndication::operator H245_TerminalYouAreSeeingInSubPictureNumber &() const
  12389. #else
  12390. H245_ConferenceIndication::operator H245_TerminalYouAreSeeingInSubPictureNumber &()
  12391. {
  12392. #ifndef PASN_LEANANDMEAN
  12393.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalYouAreSeeingInSubPictureNumber::Class()), PInvalidCast);
  12394. #endif
  12395.   return *(H245_TerminalYouAreSeeingInSubPictureNumber *)choice;
  12396. }
  12397.  
  12398.  
  12399. H245_ConferenceIndication::operator const H245_TerminalYouAreSeeingInSubPictureNumber &() const
  12400. #endif
  12401. {
  12402. #ifndef PASN_LEANANDMEAN
  12403.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalYouAreSeeingInSubPictureNumber::Class()), PInvalidCast);
  12404. #endif
  12405.   return *(H245_TerminalYouAreSeeingInSubPictureNumber *)choice;
  12406. }
  12407.  
  12408.  
  12409. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  12410. H245_ConferenceIndication::operator H245_VideoIndicateCompose &() const
  12411. #else
  12412. H245_ConferenceIndication::operator H245_VideoIndicateCompose &()
  12413. {
  12414. #ifndef PASN_LEANANDMEAN
  12415.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoIndicateCompose::Class()), PInvalidCast);
  12416. #endif
  12417.   return *(H245_VideoIndicateCompose *)choice;
  12418. }
  12419.  
  12420.  
  12421. H245_ConferenceIndication::operator const H245_VideoIndicateCompose &() const
  12422. #endif
  12423. {
  12424. #ifndef PASN_LEANANDMEAN
  12425.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoIndicateCompose::Class()), PInvalidCast);
  12426. #endif
  12427.   return *(H245_VideoIndicateCompose *)choice;
  12428. }
  12429.  
  12430.  
  12431. BOOL H245_ConferenceIndication::CreateObject()
  12432. {
  12433.   switch (tag) {
  12434.     case e_sbeNumber :
  12435.       choice = new PASN_Integer();
  12436.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 9);
  12437.       return TRUE;
  12438.     case e_terminalNumberAssign :
  12439.     case e_terminalJoinedConference :
  12440.     case e_terminalLeftConference :
  12441.     case e_terminalYouAreSeeing :
  12442.     case e_floorRequested :
  12443.       choice = new H245_TerminalLabel();
  12444.       return TRUE;
  12445.     case e_seenByAtLeastOneOther :
  12446.     case e_cancelSeenByAtLeastOneOther :
  12447.     case e_seenByAll :
  12448.     case e_cancelSeenByAll :
  12449.     case e_requestForFloor :
  12450.     case e_withdrawChairToken :
  12451.       choice = new PASN_Null();
  12452.       return TRUE;
  12453.     case e_terminalYouAreSeeingInSubPictureNumber :
  12454.       choice = new H245_TerminalYouAreSeeingInSubPictureNumber();
  12455.       return TRUE;
  12456.     case e_videoIndicateCompose :
  12457.       choice = new H245_VideoIndicateCompose();
  12458.       return TRUE;
  12459.   }
  12460.  
  12461.   choice = NULL;
  12462.   return FALSE;
  12463. }
  12464.  
  12465.  
  12466. PObject * H245_ConferenceIndication::Clone() const
  12467. {
  12468. #ifndef PASN_LEANANDMEAN
  12469.   PAssert(IsClass(H245_ConferenceIndication::Class()), PInvalidCast);
  12470. #endif
  12471.   return new H245_ConferenceIndication(*this);
  12472. }
  12473.  
  12474.  
  12475. //
  12476. // TerminalYouAreSeeingInSubPictureNumber
  12477. //
  12478.  
  12479. H245_TerminalYouAreSeeingInSubPictureNumber::H245_TerminalYouAreSeeingInSubPictureNumber(unsigned tag, PASN_Object::TagClass tagClass)
  12480.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  12481. {
  12482.   m_subPictureNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  12483. }
  12484.  
  12485.  
  12486. #ifndef PASN_NOPRINTON
  12487. void H245_TerminalYouAreSeeingInSubPictureNumber::PrintOn(ostream & strm) const
  12488. {
  12489.   int indent = strm.precision() + 2;
  12490.   strm << "{\n";
  12491.   strm << setw(indent+17) << "terminalNumber = " << setprecision(indent) << m_terminalNumber << '\n';
  12492.   strm << setw(indent+19) << "subPictureNumber = " << setprecision(indent) << m_subPictureNumber << '\n';
  12493.   strm << setw(indent-1) << "}";
  12494. }
  12495. #endif
  12496.  
  12497.  
  12498. PObject::Comparison H245_TerminalYouAreSeeingInSubPictureNumber::Compare(const PObject & obj) const
  12499. {
  12500. #ifndef PASN_LEANANDMEAN
  12501.   PAssert(IsDescendant(H245_TerminalYouAreSeeingInSubPictureNumber::Class()), PInvalidCast);
  12502. #endif
  12503.   const H245_TerminalYouAreSeeingInSubPictureNumber & other = (const H245_TerminalYouAreSeeingInSubPictureNumber &)obj;
  12504.  
  12505.   Comparison result;
  12506.  
  12507.   if ((result = m_terminalNumber.Compare(other.m_terminalNumber)) != EqualTo)
  12508.     return result;
  12509.   if ((result = m_subPictureNumber.Compare(other.m_subPictureNumber)) != EqualTo)
  12510.     return result;
  12511.  
  12512.   return PASN_Sequence::Compare(other);
  12513. }
  12514.  
  12515.  
  12516. PINDEX H245_TerminalYouAreSeeingInSubPictureNumber::GetDataLength() const
  12517. {
  12518.   PINDEX length = 0;
  12519.   length += m_terminalNumber.GetObjectLength();
  12520.   length += m_subPictureNumber.GetObjectLength();
  12521.   return length;
  12522. }
  12523.  
  12524.  
  12525. BOOL H245_TerminalYouAreSeeingInSubPictureNumber::Decode(PASN_Stream & strm)
  12526. {
  12527.   if (!PreambleDecode(strm))
  12528.     return FALSE;
  12529.  
  12530.   if (!m_terminalNumber.Decode(strm))
  12531.     return FALSE;
  12532.   if (!m_subPictureNumber.Decode(strm))
  12533.     return FALSE;
  12534.  
  12535.   return UnknownExtensionsDecode(strm);
  12536. }
  12537.  
  12538.  
  12539. void H245_TerminalYouAreSeeingInSubPictureNumber::Encode(PASN_Stream & strm) const
  12540. {
  12541.   PreambleEncode(strm);
  12542.  
  12543.   m_terminalNumber.Encode(strm);
  12544.   m_subPictureNumber.Encode(strm);
  12545.  
  12546.   UnknownExtensionsEncode(strm);
  12547. }
  12548.  
  12549.  
  12550. PObject * H245_TerminalYouAreSeeingInSubPictureNumber::Clone() const
  12551. {
  12552. #ifndef PASN_LEANANDMEAN
  12553.   PAssert(IsClass(H245_TerminalYouAreSeeingInSubPictureNumber::Class()), PInvalidCast);
  12554. #endif
  12555.   return new H245_TerminalYouAreSeeingInSubPictureNumber(*this);
  12556. }
  12557.  
  12558.  
  12559. //
  12560. // VideoIndicateCompose
  12561. //
  12562.  
  12563. H245_VideoIndicateCompose::H245_VideoIndicateCompose(unsigned tag, PASN_Object::TagClass tagClass)
  12564.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  12565. {
  12566.   m_compositionNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  12567. }
  12568.  
  12569.  
  12570. #ifndef PASN_NOPRINTON
  12571. void H245_VideoIndicateCompose::PrintOn(ostream & strm) const
  12572. {
  12573.   int indent = strm.precision() + 2;
  12574.   strm << "{\n";
  12575.   strm << setw(indent+20) << "compositionNumber = " << setprecision(indent) << m_compositionNumber << '\n';
  12576.   strm << setw(indent-1) << "}";
  12577. }
  12578. #endif
  12579.  
  12580.  
  12581. PObject::Comparison H245_VideoIndicateCompose::Compare(const PObject & obj) const
  12582. {
  12583. #ifndef PASN_LEANANDMEAN
  12584.   PAssert(IsDescendant(H245_VideoIndicateCompose::Class()), PInvalidCast);
  12585. #endif
  12586.   const H245_VideoIndicateCompose & other = (const H245_VideoIndicateCompose &)obj;
  12587.  
  12588.   Comparison result;
  12589.  
  12590.   if ((result = m_compositionNumber.Compare(other.m_compositionNumber)) != EqualTo)
  12591.     return result;
  12592.  
  12593.   return PASN_Sequence::Compare(other);
  12594. }
  12595.  
  12596.  
  12597. PINDEX H245_VideoIndicateCompose::GetDataLength() const
  12598. {
  12599.   PINDEX length = 0;
  12600.   length += m_compositionNumber.GetObjectLength();
  12601.   return length;
  12602. }
  12603.  
  12604.  
  12605. BOOL H245_VideoIndicateCompose::Decode(PASN_Stream & strm)
  12606. {
  12607.   if (!PreambleDecode(strm))
  12608.     return FALSE;
  12609.  
  12610.   if (!m_compositionNumber.Decode(strm))
  12611.     return FALSE;
  12612.  
  12613.   return UnknownExtensionsDecode(strm);
  12614. }
  12615.  
  12616.  
  12617. void H245_VideoIndicateCompose::Encode(PASN_Stream & strm) const
  12618. {
  12619.   PreambleEncode(strm);
  12620.  
  12621.   m_compositionNumber.Encode(strm);
  12622.  
  12623.   UnknownExtensionsEncode(strm);
  12624. }
  12625.  
  12626.  
  12627. PObject * H245_VideoIndicateCompose::Clone() const
  12628. {
  12629. #ifndef PASN_LEANANDMEAN
  12630.   PAssert(IsClass(H245_VideoIndicateCompose::Class()), PInvalidCast);
  12631. #endif
  12632.   return new H245_VideoIndicateCompose(*this);
  12633. }
  12634.  
  12635.  
  12636. //
  12637. // H223SkewIndication
  12638. //
  12639.  
  12640. H245_H223SkewIndication::H245_H223SkewIndication(unsigned tag, PASN_Object::TagClass tagClass)
  12641.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  12642. {
  12643.   m_skew.SetConstraints(PASN_Object::FixedConstraint, 0, 4095);
  12644. }
  12645.  
  12646.  
  12647. #ifndef PASN_NOPRINTON
  12648. void H245_H223SkewIndication::PrintOn(ostream & strm) const
  12649. {
  12650.   int indent = strm.precision() + 2;
  12651.   strm << "{\n";
  12652.   strm << setw(indent+24) << "logicalChannelNumber1 = " << setprecision(indent) << m_logicalChannelNumber1 << '\n';
  12653.   strm << setw(indent+24) << "logicalChannelNumber2 = " << setprecision(indent) << m_logicalChannelNumber2 << '\n';
  12654.   strm << setw(indent+7) << "skew = " << setprecision(indent) << m_skew << '\n';
  12655.   strm << setw(indent-1) << "}";
  12656. }
  12657. #endif
  12658.  
  12659.  
  12660. PObject::Comparison H245_H223SkewIndication::Compare(const PObject & obj) const
  12661. {
  12662. #ifndef PASN_LEANANDMEAN
  12663.   PAssert(IsDescendant(H245_H223SkewIndication::Class()), PInvalidCast);
  12664. #endif
  12665.   const H245_H223SkewIndication & other = (const H245_H223SkewIndication &)obj;
  12666.  
  12667.   Comparison result;
  12668.  
  12669.   if ((result = m_logicalChannelNumber1.Compare(other.m_logicalChannelNumber1)) != EqualTo)
  12670.     return result;
  12671.   if ((result = m_logicalChannelNumber2.Compare(other.m_logicalChannelNumber2)) != EqualTo)
  12672.     return result;
  12673.   if ((result = m_skew.Compare(other.m_skew)) != EqualTo)
  12674.     return result;
  12675.  
  12676.   return PASN_Sequence::Compare(other);
  12677. }
  12678.  
  12679.  
  12680. PINDEX H245_H223SkewIndication::GetDataLength() const
  12681. {
  12682.   PINDEX length = 0;
  12683.   length += m_logicalChannelNumber1.GetObjectLength();
  12684.   length += m_logicalChannelNumber2.GetObjectLength();
  12685.   length += m_skew.GetObjectLength();
  12686.   return length;
  12687. }
  12688.  
  12689.  
  12690. BOOL H245_H223SkewIndication::Decode(PASN_Stream & strm)
  12691. {
  12692.   if (!PreambleDecode(strm))
  12693.     return FALSE;
  12694.  
  12695.   if (!m_logicalChannelNumber1.Decode(strm))
  12696.     return FALSE;
  12697.   if (!m_logicalChannelNumber2.Decode(strm))
  12698.     return FALSE;
  12699.   if (!m_skew.Decode(strm))
  12700.     return FALSE;
  12701.  
  12702.   return UnknownExtensionsDecode(strm);
  12703. }
  12704.  
  12705.  
  12706. void H245_H223SkewIndication::Encode(PASN_Stream & strm) const
  12707. {
  12708.   PreambleEncode(strm);
  12709.  
  12710.   m_logicalChannelNumber1.Encode(strm);
  12711.   m_logicalChannelNumber2.Encode(strm);
  12712.   m_skew.Encode(strm);
  12713.  
  12714.   UnknownExtensionsEncode(strm);
  12715. }
  12716.  
  12717.  
  12718. PObject * H245_H223SkewIndication::Clone() const
  12719. {
  12720. #ifndef PASN_LEANANDMEAN
  12721.   PAssert(IsClass(H245_H223SkewIndication::Class()), PInvalidCast);
  12722. #endif
  12723.   return new H245_H223SkewIndication(*this);
  12724. }
  12725.  
  12726.  
  12727. //
  12728. // H2250MaximumSkewIndication
  12729. //
  12730.  
  12731. H245_H2250MaximumSkewIndication::H245_H2250MaximumSkewIndication(unsigned tag, PASN_Object::TagClass tagClass)
  12732.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  12733. {
  12734.   m_maximumSkew.SetConstraints(PASN_Object::FixedConstraint, 0, 4095);
  12735. }
  12736.  
  12737.  
  12738. #ifndef PASN_NOPRINTON
  12739. void H245_H2250MaximumSkewIndication::PrintOn(ostream & strm) const
  12740. {
  12741.   int indent = strm.precision() + 2;
  12742.   strm << "{\n";
  12743.   strm << setw(indent+24) << "logicalChannelNumber1 = " << setprecision(indent) << m_logicalChannelNumber1 << '\n';
  12744.   strm << setw(indent+24) << "logicalChannelNumber2 = " << setprecision(indent) << m_logicalChannelNumber2 << '\n';
  12745.   strm << setw(indent+14) << "maximumSkew = " << setprecision(indent) << m_maximumSkew << '\n';
  12746.   strm << setw(indent-1) << "}";
  12747. }
  12748. #endif
  12749.  
  12750.  
  12751. PObject::Comparison H245_H2250MaximumSkewIndication::Compare(const PObject & obj) const
  12752. {
  12753. #ifndef PASN_LEANANDMEAN
  12754.   PAssert(IsDescendant(H245_H2250MaximumSkewIndication::Class()), PInvalidCast);
  12755. #endif
  12756.   const H245_H2250MaximumSkewIndication & other = (const H245_H2250MaximumSkewIndication &)obj;
  12757.  
  12758.   Comparison result;
  12759.  
  12760.   if ((result = m_logicalChannelNumber1.Compare(other.m_logicalChannelNumber1)) != EqualTo)
  12761.     return result;
  12762.   if ((result = m_logicalChannelNumber2.Compare(other.m_logicalChannelNumber2)) != EqualTo)
  12763.     return result;
  12764.   if ((result = m_maximumSkew.Compare(other.m_maximumSkew)) != EqualTo)
  12765.     return result;
  12766.  
  12767.   return PASN_Sequence::Compare(other);
  12768. }
  12769.  
  12770.  
  12771. PINDEX H245_H2250MaximumSkewIndication::GetDataLength() const
  12772. {
  12773.   PINDEX length = 0;
  12774.   length += m_logicalChannelNumber1.GetObjectLength();
  12775.   length += m_logicalChannelNumber2.GetObjectLength();
  12776.   length += m_maximumSkew.GetObjectLength();
  12777.   return length;
  12778. }
  12779.  
  12780.  
  12781. BOOL H245_H2250MaximumSkewIndication::Decode(PASN_Stream & strm)
  12782. {
  12783.   if (!PreambleDecode(strm))
  12784.     return FALSE;
  12785.  
  12786.   if (!m_logicalChannelNumber1.Decode(strm))
  12787.     return FALSE;
  12788.   if (!m_logicalChannelNumber2.Decode(strm))
  12789.     return FALSE;
  12790.   if (!m_maximumSkew.Decode(strm))
  12791.     return FALSE;
  12792.  
  12793.   return UnknownExtensionsDecode(strm);
  12794. }
  12795.  
  12796.  
  12797. void H245_H2250MaximumSkewIndication::Encode(PASN_Stream & strm) const
  12798. {
  12799.   PreambleEncode(strm);
  12800.  
  12801.   m_logicalChannelNumber1.Encode(strm);
  12802.   m_logicalChannelNumber2.Encode(strm);
  12803.   m_maximumSkew.Encode(strm);
  12804.  
  12805.   UnknownExtensionsEncode(strm);
  12806. }
  12807.  
  12808.  
  12809. PObject * H245_H2250MaximumSkewIndication::Clone() const
  12810. {
  12811. #ifndef PASN_LEANANDMEAN
  12812.   PAssert(IsClass(H245_H2250MaximumSkewIndication::Class()), PInvalidCast);
  12813. #endif
  12814.   return new H245_H2250MaximumSkewIndication(*this);
  12815. }
  12816.  
  12817.  
  12818. //
  12819. // MCLocationIndication
  12820. //
  12821.  
  12822. H245_MCLocationIndication::H245_MCLocationIndication(unsigned tag, PASN_Object::TagClass tagClass)
  12823.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  12824. {
  12825. }
  12826.  
  12827.  
  12828. #ifndef PASN_NOPRINTON
  12829. void H245_MCLocationIndication::PrintOn(ostream & strm) const
  12830. {
  12831.   int indent = strm.precision() + 2;
  12832.   strm << "{\n";
  12833.   strm << setw(indent+16) << "signalAddress = " << setprecision(indent) << m_signalAddress << '\n';
  12834.   strm << setw(indent-1) << "}";
  12835. }
  12836. #endif
  12837.  
  12838.  
  12839. PObject::Comparison H245_MCLocationIndication::Compare(const PObject & obj) const
  12840. {
  12841. #ifndef PASN_LEANANDMEAN
  12842.   PAssert(IsDescendant(H245_MCLocationIndication::Class()), PInvalidCast);
  12843. #endif
  12844.   const H245_MCLocationIndication & other = (const H245_MCLocationIndication &)obj;
  12845.  
  12846.   Comparison result;
  12847.  
  12848.   if ((result = m_signalAddress.Compare(other.m_signalAddress)) != EqualTo)
  12849.     return result;
  12850.  
  12851.   return PASN_Sequence::Compare(other);
  12852. }
  12853.  
  12854.  
  12855. PINDEX H245_MCLocationIndication::GetDataLength() const
  12856. {
  12857.   PINDEX length = 0;
  12858.   length += m_signalAddress.GetObjectLength();
  12859.   return length;
  12860. }
  12861.  
  12862.  
  12863. BOOL H245_MCLocationIndication::Decode(PASN_Stream & strm)
  12864. {
  12865.   if (!PreambleDecode(strm))
  12866.     return FALSE;
  12867.  
  12868.   if (!m_signalAddress.Decode(strm))
  12869.     return FALSE;
  12870.  
  12871.   return UnknownExtensionsDecode(strm);
  12872. }
  12873.  
  12874.  
  12875. void H245_MCLocationIndication::Encode(PASN_Stream & strm) const
  12876. {
  12877.   PreambleEncode(strm);
  12878.  
  12879.   m_signalAddress.Encode(strm);
  12880.  
  12881.   UnknownExtensionsEncode(strm);
  12882. }
  12883.  
  12884.  
  12885. PObject * H245_MCLocationIndication::Clone() const
  12886. {
  12887. #ifndef PASN_LEANANDMEAN
  12888.   PAssert(IsClass(H245_MCLocationIndication::Class()), PInvalidCast);
  12889. #endif
  12890.   return new H245_MCLocationIndication(*this);
  12891. }
  12892.  
  12893.  
  12894. //
  12895. // VendorIdentification
  12896. //
  12897.  
  12898. H245_VendorIdentification::H245_VendorIdentification(unsigned tag, PASN_Object::TagClass tagClass)
  12899.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  12900. {
  12901.   m_productNumber.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  12902.   m_versionNumber.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  12903. }
  12904.  
  12905.  
  12906. #ifndef PASN_NOPRINTON
  12907. void H245_VendorIdentification::PrintOn(ostream & strm) const
  12908. {
  12909.   int indent = strm.precision() + 2;
  12910.   strm << "{\n";
  12911.   strm << setw(indent+9) << "vendor = " << setprecision(indent) << m_vendor << '\n';
  12912.   if (HasOptionalField(e_productNumber))
  12913.     strm << setw(indent+16) << "productNumber = " << setprecision(indent) << m_productNumber << '\n';
  12914.   if (HasOptionalField(e_versionNumber))
  12915.     strm << setw(indent+16) << "versionNumber = " << setprecision(indent) << m_versionNumber << '\n';
  12916.   strm << setw(indent-1) << "}";
  12917. }
  12918. #endif
  12919.  
  12920.  
  12921. PObject::Comparison H245_VendorIdentification::Compare(const PObject & obj) const
  12922. {
  12923. #ifndef PASN_LEANANDMEAN
  12924.   PAssert(IsDescendant(H245_VendorIdentification::Class()), PInvalidCast);
  12925. #endif
  12926.   const H245_VendorIdentification & other = (const H245_VendorIdentification &)obj;
  12927.  
  12928.   Comparison result;
  12929.  
  12930.   if ((result = m_vendor.Compare(other.m_vendor)) != EqualTo)
  12931.     return result;
  12932.   if ((result = m_productNumber.Compare(other.m_productNumber)) != EqualTo)
  12933.     return result;
  12934.   if ((result = m_versionNumber.Compare(other.m_versionNumber)) != EqualTo)
  12935.     return result;
  12936.  
  12937.   return PASN_Sequence::Compare(other);
  12938. }
  12939.  
  12940.  
  12941. PINDEX H245_VendorIdentification::GetDataLength() const
  12942. {
  12943.   PINDEX length = 0;
  12944.   length += m_vendor.GetObjectLength();
  12945.   if (HasOptionalField(e_productNumber))
  12946.     length += m_productNumber.GetObjectLength();
  12947.   if (HasOptionalField(e_versionNumber))
  12948.     length += m_versionNumber.GetObjectLength();
  12949.   return length;
  12950. }
  12951.  
  12952.  
  12953. BOOL H245_VendorIdentification::Decode(PASN_Stream & strm)
  12954. {
  12955.   if (!PreambleDecode(strm))
  12956.     return FALSE;
  12957.  
  12958.   if (!m_vendor.Decode(strm))
  12959.     return FALSE;
  12960.   if (HasOptionalField(e_productNumber) && !m_productNumber.Decode(strm))
  12961.     return FALSE;
  12962.   if (HasOptionalField(e_versionNumber) && !m_versionNumber.Decode(strm))
  12963.     return FALSE;
  12964.  
  12965.   return UnknownExtensionsDecode(strm);
  12966. }
  12967.  
  12968.  
  12969. void H245_VendorIdentification::Encode(PASN_Stream & strm) const
  12970. {
  12971.   PreambleEncode(strm);
  12972.  
  12973.   m_vendor.Encode(strm);
  12974.   if (HasOptionalField(e_productNumber))
  12975.     m_productNumber.Encode(strm);
  12976.   if (HasOptionalField(e_versionNumber))
  12977.     m_versionNumber.Encode(strm);
  12978.  
  12979.   UnknownExtensionsEncode(strm);
  12980. }
  12981.  
  12982.  
  12983. PObject * H245_VendorIdentification::Clone() const
  12984. {
  12985. #ifndef PASN_LEANANDMEAN
  12986.   PAssert(IsClass(H245_VendorIdentification::Class()), PInvalidCast);
  12987. #endif
  12988.   return new H245_VendorIdentification(*this);
  12989. }
  12990.  
  12991.  
  12992. //
  12993. // UserInputIndication
  12994. //
  12995.  
  12996. H245_UserInputIndication::H245_UserInputIndication(unsigned tag, PASN_Object::TagClass tagClass)
  12997.   : PASN_Choice(tag, tagClass, 2, TRUE
  12998. #ifndef PASN_NOPRINTON
  12999.       , "nonStandard "
  13000.         "alphanumeric "
  13001.         "userInputSupportIndication "
  13002.         "signal "
  13003.         "signalUpdate "
  13004.         "extendedAlphanumeric "
  13005. #endif
  13006.     )
  13007. {
  13008. }
  13009.  
  13010.  
  13011. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  13012. H245_UserInputIndication::operator H245_NonStandardParameter &() const
  13013. #else
  13014. H245_UserInputIndication::operator H245_NonStandardParameter &()
  13015. {
  13016. #ifndef PASN_LEANANDMEAN
  13017.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  13018. #endif
  13019.   return *(H245_NonStandardParameter *)choice;
  13020. }
  13021.  
  13022.  
  13023. H245_UserInputIndication::operator const H245_NonStandardParameter &() const
  13024. #endif
  13025. {
  13026. #ifndef PASN_LEANANDMEAN
  13027.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  13028. #endif
  13029.   return *(H245_NonStandardParameter *)choice;
  13030. }
  13031.  
  13032.  
  13033. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  13034. H245_UserInputIndication::operator H245_UserInputIndication_userInputSupportIndication &() const
  13035. #else
  13036. H245_UserInputIndication::operator H245_UserInputIndication_userInputSupportIndication &()
  13037. {
  13038. #ifndef PASN_LEANANDMEAN
  13039.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_userInputSupportIndication::Class()), PInvalidCast);
  13040. #endif
  13041.   return *(H245_UserInputIndication_userInputSupportIndication *)choice;
  13042. }
  13043.  
  13044.  
  13045. H245_UserInputIndication::operator const H245_UserInputIndication_userInputSupportIndication &() const
  13046. #endif
  13047. {
  13048. #ifndef PASN_LEANANDMEAN
  13049.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_userInputSupportIndication::Class()), PInvalidCast);
  13050. #endif
  13051.   return *(H245_UserInputIndication_userInputSupportIndication *)choice;
  13052. }
  13053.  
  13054.  
  13055. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  13056. H245_UserInputIndication::operator H245_UserInputIndication_signal &() const
  13057. #else
  13058. H245_UserInputIndication::operator H245_UserInputIndication_signal &()
  13059. {
  13060. #ifndef PASN_LEANANDMEAN
  13061.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_signal::Class()), PInvalidCast);
  13062. #endif
  13063.   return *(H245_UserInputIndication_signal *)choice;
  13064. }
  13065.  
  13066.  
  13067. H245_UserInputIndication::operator const H245_UserInputIndication_signal &() const
  13068. #endif
  13069. {
  13070. #ifndef PASN_LEANANDMEAN
  13071.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_signal::Class()), PInvalidCast);
  13072. #endif
  13073.   return *(H245_UserInputIndication_signal *)choice;
  13074. }
  13075.  
  13076.  
  13077. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  13078. H245_UserInputIndication::operator H245_UserInputIndication_signalUpdate &() const
  13079. #else
  13080. H245_UserInputIndication::operator H245_UserInputIndication_signalUpdate &()
  13081. {
  13082. #ifndef PASN_LEANANDMEAN
  13083.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_signalUpdate::Class()), PInvalidCast);
  13084. #endif
  13085.   return *(H245_UserInputIndication_signalUpdate *)choice;
  13086. }
  13087.  
  13088.  
  13089. H245_UserInputIndication::operator const H245_UserInputIndication_signalUpdate &() const
  13090. #endif
  13091. {
  13092. #ifndef PASN_LEANANDMEAN
  13093.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_signalUpdate::Class()), PInvalidCast);
  13094. #endif
  13095.   return *(H245_UserInputIndication_signalUpdate *)choice;
  13096. }
  13097.  
  13098.  
  13099. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  13100. H245_UserInputIndication::operator H245_UserInputIndication_extendedAlphanumeric &() const
  13101. #else
  13102. H245_UserInputIndication::operator H245_UserInputIndication_extendedAlphanumeric &()
  13103. {
  13104. #ifndef PASN_LEANANDMEAN
  13105.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_extendedAlphanumeric::Class()), PInvalidCast);
  13106. #endif
  13107.   return *(H245_UserInputIndication_extendedAlphanumeric *)choice;
  13108. }
  13109.  
  13110.  
  13111. H245_UserInputIndication::operator const H245_UserInputIndication_extendedAlphanumeric &() const
  13112. #endif
  13113. {
  13114. #ifndef PASN_LEANANDMEAN
  13115.   PAssert(PAssertNULL(choice)->IsDescendant(H245_UserInputIndication_extendedAlphanumeric::Class()), PInvalidCast);
  13116. #endif
  13117.   return *(H245_UserInputIndication_extendedAlphanumeric *)choice;
  13118. }
  13119.  
  13120.  
  13121. BOOL H245_UserInputIndication::CreateObject()
  13122. {
  13123.   switch (tag) {
  13124.     case e_nonStandard :
  13125.       choice = new H245_NonStandardParameter();
  13126.       return TRUE;
  13127.     case e_alphanumeric :
  13128.       choice = new PASN_GeneralString();
  13129.       return TRUE;
  13130.     case e_userInputSupportIndication :
  13131.       choice = new H245_UserInputIndication_userInputSupportIndication();
  13132.       return TRUE;
  13133.     case e_signal :
  13134.       choice = new H245_UserInputIndication_signal();
  13135.       return TRUE;
  13136.     case e_signalUpdate :
  13137.       choice = new H245_UserInputIndication_signalUpdate();
  13138.       return TRUE;
  13139.     case e_extendedAlphanumeric :
  13140.       choice = new H245_UserInputIndication_extendedAlphanumeric();
  13141.       return TRUE;
  13142.   }
  13143.  
  13144.   choice = NULL;
  13145.   return FALSE;
  13146. }
  13147.  
  13148.  
  13149. PObject * H245_UserInputIndication::Clone() const
  13150. {
  13151. #ifndef PASN_LEANANDMEAN
  13152.   PAssert(IsClass(H245_UserInputIndication::Class()), PInvalidCast);
  13153. #endif
  13154.   return new H245_UserInputIndication(*this);
  13155. }
  13156.  
  13157.  
  13158. //
  13159. // MobileMultilinkReconfigurationIndication
  13160. //
  13161.  
  13162. H245_MobileMultilinkReconfigurationIndication::H245_MobileMultilinkReconfigurationIndication(unsigned tag, PASN_Object::TagClass tagClass)
  13163.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  13164. {
  13165.   m_sampleSize.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
  13166.   m_samplesPerFrame.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
  13167. }
  13168.  
  13169.  
  13170. #ifndef PASN_NOPRINTON
  13171. void H245_MobileMultilinkReconfigurationIndication::PrintOn(ostream & strm) const
  13172. {
  13173.   int indent = strm.precision() + 2;
  13174.   strm << "{\n";
  13175.   strm << setw(indent+13) << "sampleSize = " << setprecision(indent) << m_sampleSize << '\n';
  13176.   strm << setw(indent+18) << "samplesPerFrame = " << setprecision(indent) << m_samplesPerFrame << '\n';
  13177.   strm << setw(indent-1) << "}";
  13178. }
  13179. #endif
  13180.  
  13181.  
  13182. PObject::Comparison H245_MobileMultilinkReconfigurationIndication::Compare(const PObject & obj) const
  13183. {
  13184. #ifndef PASN_LEANANDMEAN
  13185.   PAssert(IsDescendant(H245_MobileMultilinkReconfigurationIndication::Class()), PInvalidCast);
  13186. #endif
  13187.   const H245_MobileMultilinkReconfigurationIndication & other = (const H245_MobileMultilinkReconfigurationIndication &)obj;
  13188.  
  13189.   Comparison result;
  13190.  
  13191.   if ((result = m_sampleSize.Compare(other.m_sampleSize)) != EqualTo)
  13192.     return result;
  13193.   if ((result = m_samplesPerFrame.Compare(other.m_samplesPerFrame)) != EqualTo)
  13194.     return result;
  13195.  
  13196.   return PASN_Sequence::Compare(other);
  13197. }
  13198.  
  13199.  
  13200. PINDEX H245_MobileMultilinkReconfigurationIndication::GetDataLength() const
  13201. {
  13202.   PINDEX length = 0;
  13203.   length += m_sampleSize.GetObjectLength();
  13204.   length += m_samplesPerFrame.GetObjectLength();
  13205.   return length;
  13206. }
  13207.  
  13208.  
  13209. BOOL H245_MobileMultilinkReconfigurationIndication::Decode(PASN_Stream & strm)
  13210. {
  13211.   if (!PreambleDecode(strm))
  13212.     return FALSE;
  13213.  
  13214.   if (!m_sampleSize.Decode(strm))
  13215.     return FALSE;
  13216.   if (!m_samplesPerFrame.Decode(strm))
  13217.     return FALSE;
  13218.  
  13219.   return UnknownExtensionsDecode(strm);
  13220. }
  13221.  
  13222.  
  13223. void H245_MobileMultilinkReconfigurationIndication::Encode(PASN_Stream & strm) const
  13224. {
  13225.   PreambleEncode(strm);
  13226.  
  13227.   m_sampleSize.Encode(strm);
  13228.   m_samplesPerFrame.Encode(strm);
  13229.  
  13230.   UnknownExtensionsEncode(strm);
  13231. }
  13232.  
  13233.  
  13234. PObject * H245_MobileMultilinkReconfigurationIndication::Clone() const
  13235. {
  13236. #ifndef PASN_LEANANDMEAN
  13237.   PAssert(IsClass(H245_MobileMultilinkReconfigurationIndication::Class()), PInvalidCast);
  13238. #endif
  13239.   return new H245_MobileMultilinkReconfigurationIndication(*this);
  13240. }
  13241.  
  13242.  
  13243. //
  13244. // NonStandardIdentifier_h221NonStandard
  13245. //
  13246.  
  13247. H245_NonStandardIdentifier_h221NonStandard::H245_NonStandardIdentifier_h221NonStandard(unsigned tag, PASN_Object::TagClass tagClass)
  13248.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  13249. {
  13250.   m_t35CountryCode.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  13251.   m_t35Extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  13252.   m_manufacturerCode.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  13253. }
  13254.  
  13255.  
  13256. #ifndef PASN_NOPRINTON
  13257. void H245_NonStandardIdentifier_h221NonStandard::PrintOn(ostream & strm) const
  13258. {
  13259.   int indent = strm.precision() + 2;
  13260.   strm << "{\n";
  13261.   strm << setw(indent+17) << "t35CountryCode = " << setprecision(indent) << m_t35CountryCode << '\n';
  13262.   strm << setw(indent+15) << "t35Extension = " << setprecision(indent) << m_t35Extension << '\n';
  13263.   strm << setw(indent+19) << "manufacturerCode = " << setprecision(indent) << m_manufacturerCode << '\n';
  13264.   strm << setw(indent-1) << "}";
  13265. }
  13266. #endif
  13267.  
  13268.  
  13269. PObject::Comparison H245_NonStandardIdentifier_h221NonStandard::Compare(const PObject & obj) const
  13270. {
  13271. #ifndef PASN_LEANANDMEAN
  13272.   PAssert(IsDescendant(H245_NonStandardIdentifier_h221NonStandard::Class()), PInvalidCast);
  13273. #endif
  13274.   const H245_NonStandardIdentifier_h221NonStandard & other = (const H245_NonStandardIdentifier_h221NonStandard &)obj;
  13275.  
  13276.   Comparison result;
  13277.  
  13278.   if ((result = m_t35CountryCode.Compare(other.m_t35CountryCode)) != EqualTo)
  13279.     return result;
  13280.   if ((result = m_t35Extension.Compare(other.m_t35Extension)) != EqualTo)
  13281.     return result;
  13282.   if ((result = m_manufacturerCode.Compare(other.m_manufacturerCode)) != EqualTo)
  13283.     return result;
  13284.  
  13285.   return PASN_Sequence::Compare(other);
  13286. }
  13287.  
  13288.  
  13289. PINDEX H245_NonStandardIdentifier_h221NonStandard::GetDataLength() const
  13290. {
  13291.   PINDEX length = 0;
  13292.   length += m_t35CountryCode.GetObjectLength();
  13293.   length += m_t35Extension.GetObjectLength();
  13294.   length += m_manufacturerCode.GetObjectLength();
  13295.   return length;
  13296. }
  13297.  
  13298.  
  13299. BOOL H245_NonStandardIdentifier_h221NonStandard::Decode(PASN_Stream & strm)
  13300. {
  13301.   if (!PreambleDecode(strm))
  13302.     return FALSE;
  13303.  
  13304.   if (!m_t35CountryCode.Decode(strm))
  13305.     return FALSE;
  13306.   if (!m_t35Extension.Decode(strm))
  13307.     return FALSE;
  13308.   if (!m_manufacturerCode.Decode(strm))
  13309.     return FALSE;
  13310.  
  13311.   return UnknownExtensionsDecode(strm);
  13312. }
  13313.  
  13314.  
  13315. void H245_NonStandardIdentifier_h221NonStandard::Encode(PASN_Stream & strm) const
  13316. {
  13317.   PreambleEncode(strm);
  13318.  
  13319.   m_t35CountryCode.Encode(strm);
  13320.   m_t35Extension.Encode(strm);
  13321.   m_manufacturerCode.Encode(strm);
  13322.  
  13323.   UnknownExtensionsEncode(strm);
  13324. }
  13325.  
  13326.  
  13327. PObject * H245_NonStandardIdentifier_h221NonStandard::Clone() const
  13328. {
  13329. #ifndef PASN_LEANANDMEAN
  13330.   PAssert(IsClass(H245_NonStandardIdentifier_h221NonStandard::Class()), PInvalidCast);
  13331. #endif
  13332.   return new H245_NonStandardIdentifier_h221NonStandard(*this);
  13333. }
  13334.  
  13335.  
  13336. //
  13337. // MasterSlaveDeterminationAck_decision
  13338. //
  13339.  
  13340. H245_MasterSlaveDeterminationAck_decision::H245_MasterSlaveDeterminationAck_decision(unsigned tag, PASN_Object::TagClass tagClass)
  13341.   : PASN_Choice(tag, tagClass, 2, FALSE
  13342. #ifndef PASN_NOPRINTON
  13343.       , "master "
  13344.         "slave "
  13345. #endif
  13346.     )
  13347. {
  13348. }
  13349.  
  13350.  
  13351. BOOL H245_MasterSlaveDeterminationAck_decision::CreateObject()
  13352. {
  13353.   choice = (tag <= e_slave) ? new PASN_Null() : NULL;
  13354.   return choice != NULL;
  13355. }
  13356.  
  13357.  
  13358. PObject * H245_MasterSlaveDeterminationAck_decision::Clone() const
  13359. {
  13360. #ifndef PASN_LEANANDMEAN
  13361.   PAssert(IsClass(H245_MasterSlaveDeterminationAck_decision::Class()), PInvalidCast);
  13362. #endif
  13363.   return new H245_MasterSlaveDeterminationAck_decision(*this);
  13364. }
  13365.  
  13366.  
  13367. //
  13368. // MasterSlaveDeterminationReject_cause
  13369. //
  13370.  
  13371. H245_MasterSlaveDeterminationReject_cause::H245_MasterSlaveDeterminationReject_cause(unsigned tag, PASN_Object::TagClass tagClass)
  13372.   : PASN_Choice(tag, tagClass, 1, TRUE
  13373. #ifndef PASN_NOPRINTON
  13374.       , "identicalNumbers "
  13375. #endif
  13376.     )
  13377. {
  13378. }
  13379.  
  13380.  
  13381. BOOL H245_MasterSlaveDeterminationReject_cause::CreateObject()
  13382. {
  13383.   choice = (tag <= e_identicalNumbers) ? new PASN_Null() : NULL;
  13384.   return choice != NULL;
  13385. }
  13386.  
  13387.  
  13388. PObject * H245_MasterSlaveDeterminationReject_cause::Clone() const
  13389. {
  13390. #ifndef PASN_LEANANDMEAN
  13391.   PAssert(IsClass(H245_MasterSlaveDeterminationReject_cause::Class()), PInvalidCast);
  13392. #endif
  13393.   return new H245_MasterSlaveDeterminationReject_cause(*this);
  13394. }
  13395.  
  13396.  
  13397. //
  13398. // ArrayOf_CapabilityTableEntry
  13399. //
  13400.  
  13401. H245_ArrayOf_CapabilityTableEntry::H245_ArrayOf_CapabilityTableEntry(unsigned tag, PASN_Object::TagClass tagClass)
  13402.   : PASN_Array(tag, tagClass)
  13403. {
  13404. }
  13405.  
  13406.  
  13407. PASN_Object * H245_ArrayOf_CapabilityTableEntry::CreateObject() const
  13408. {
  13409.   return new H245_CapabilityTableEntry;
  13410. }
  13411.  
  13412.  
  13413. H245_CapabilityTableEntry & H245_ArrayOf_CapabilityTableEntry::operator[](PINDEX i) const
  13414. {
  13415.   return (H245_CapabilityTableEntry &)array[i];
  13416. }
  13417.  
  13418.  
  13419. PObject * H245_ArrayOf_CapabilityTableEntry::Clone() const
  13420. {
  13421. #ifndef PASN_LEANANDMEAN
  13422.   PAssert(IsClass(H245_ArrayOf_CapabilityTableEntry::Class()), PInvalidCast);
  13423. #endif
  13424.   return new H245_ArrayOf_CapabilityTableEntry(*this);
  13425. }
  13426.  
  13427.  
  13428. //
  13429. // ArrayOf_CapabilityDescriptor
  13430. //
  13431.  
  13432. H245_ArrayOf_CapabilityDescriptor::H245_ArrayOf_CapabilityDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  13433.   : PASN_Array(tag, tagClass)
  13434. {
  13435. }
  13436.  
  13437.  
  13438. PASN_Object * H245_ArrayOf_CapabilityDescriptor::CreateObject() const
  13439. {
  13440.   return new H245_CapabilityDescriptor;
  13441. }
  13442.  
  13443.  
  13444. H245_CapabilityDescriptor & H245_ArrayOf_CapabilityDescriptor::operator[](PINDEX i) const
  13445. {
  13446.   return (H245_CapabilityDescriptor &)array[i];
  13447. }
  13448.  
  13449.  
  13450. PObject * H245_ArrayOf_CapabilityDescriptor::Clone() const
  13451. {
  13452. #ifndef PASN_LEANANDMEAN
  13453.   PAssert(IsClass(H245_ArrayOf_CapabilityDescriptor::Class()), PInvalidCast);
  13454. #endif
  13455.   return new H245_ArrayOf_CapabilityDescriptor(*this);
  13456. }
  13457.  
  13458.  
  13459. //
  13460. // ArrayOf_AlternativeCapabilitySet
  13461. //
  13462.  
  13463. H245_ArrayOf_AlternativeCapabilitySet::H245_ArrayOf_AlternativeCapabilitySet(unsigned tag, PASN_Object::TagClass tagClass)
  13464.   : PASN_Array(tag, tagClass)
  13465. {
  13466. }
  13467.  
  13468.  
  13469. PASN_Object * H245_ArrayOf_AlternativeCapabilitySet::CreateObject() const
  13470. {
  13471.   return new H245_AlternativeCapabilitySet;
  13472. }
  13473.  
  13474.  
  13475. H245_AlternativeCapabilitySet & H245_ArrayOf_AlternativeCapabilitySet::operator[](PINDEX i) const
  13476. {
  13477.   return (H245_AlternativeCapabilitySet &)array[i];
  13478. }
  13479.  
  13480.  
  13481. PObject * H245_ArrayOf_AlternativeCapabilitySet::Clone() const
  13482. {
  13483. #ifndef PASN_LEANANDMEAN
  13484.   PAssert(IsClass(H245_ArrayOf_AlternativeCapabilitySet::Class()), PInvalidCast);
  13485. #endif
  13486.   return new H245_ArrayOf_AlternativeCapabilitySet(*this);
  13487. }
  13488.  
  13489.  
  13490. //
  13491. // TerminalCapabilitySetReject_cause
  13492. //
  13493.  
  13494. H245_TerminalCapabilitySetReject_cause::H245_TerminalCapabilitySetReject_cause(unsigned tag, PASN_Object::TagClass tagClass)
  13495.   : PASN_Choice(tag, tagClass, 4, TRUE
  13496. #ifndef PASN_NOPRINTON
  13497.       , "unspecified "
  13498.         "undefinedTableEntryUsed "
  13499.         "descriptorCapacityExceeded "
  13500.         "tableEntryCapacityExceeded "
  13501. #endif
  13502.     )
  13503. {
  13504. }
  13505.  
  13506.  
  13507. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  13508. H245_TerminalCapabilitySetReject_cause::operator H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded &() const
  13509. #else
  13510. H245_TerminalCapabilitySetReject_cause::operator H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded &()
  13511. {
  13512. #ifndef PASN_LEANANDMEAN
  13513.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::Class()), PInvalidCast);
  13514. #endif
  13515.   return *(H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded *)choice;
  13516. }
  13517.  
  13518.  
  13519. H245_TerminalCapabilitySetReject_cause::operator const H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded &() const
  13520. #endif
  13521. {
  13522. #ifndef PASN_LEANANDMEAN
  13523.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::Class()), PInvalidCast);
  13524. #endif
  13525.   return *(H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded *)choice;
  13526. }
  13527.  
  13528.  
  13529. BOOL H245_TerminalCapabilitySetReject_cause::CreateObject()
  13530. {
  13531.   switch (tag) {
  13532.     case e_unspecified :
  13533.     case e_undefinedTableEntryUsed :
  13534.     case e_descriptorCapacityExceeded :
  13535.       choice = new PASN_Null();
  13536.       return TRUE;
  13537.     case e_tableEntryCapacityExceeded :
  13538.       choice = new H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded();
  13539.       return TRUE;
  13540.   }
  13541.  
  13542.   choice = NULL;
  13543.   return FALSE;
  13544. }
  13545.  
  13546.  
  13547. PObject * H245_TerminalCapabilitySetReject_cause::Clone() const
  13548. {
  13549. #ifndef PASN_LEANANDMEAN
  13550.   PAssert(IsClass(H245_TerminalCapabilitySetReject_cause::Class()), PInvalidCast);
  13551. #endif
  13552.   return new H245_TerminalCapabilitySetReject_cause(*this);
  13553. }
  13554.  
  13555.  
  13556. //
  13557. // Capability_h233EncryptionReceiveCapability
  13558. //
  13559.  
  13560. H245_Capability_h233EncryptionReceiveCapability::H245_Capability_h233EncryptionReceiveCapability(unsigned tag, PASN_Object::TagClass tagClass)
  13561.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  13562. {
  13563.   m_h233IVResponseTime.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  13564. }
  13565.  
  13566.  
  13567. #ifndef PASN_NOPRINTON
  13568. void H245_Capability_h233EncryptionReceiveCapability::PrintOn(ostream & strm) const
  13569. {
  13570.   int indent = strm.precision() + 2;
  13571.   strm << "{\n";
  13572.   strm << setw(indent+21) << "h233IVResponseTime = " << setprecision(indent) << m_h233IVResponseTime << '\n';
  13573.   strm << setw(indent-1) << "}";
  13574. }
  13575. #endif
  13576.  
  13577.  
  13578. PObject::Comparison H245_Capability_h233EncryptionReceiveCapability::Compare(const PObject & obj) const
  13579. {
  13580. #ifndef PASN_LEANANDMEAN
  13581.   PAssert(IsDescendant(H245_Capability_h233EncryptionReceiveCapability::Class()), PInvalidCast);
  13582. #endif
  13583.   const H245_Capability_h233EncryptionReceiveCapability & other = (const H245_Capability_h233EncryptionReceiveCapability &)obj;
  13584.  
  13585.   Comparison result;
  13586.  
  13587.   if ((result = m_h233IVResponseTime.Compare(other.m_h233IVResponseTime)) != EqualTo)
  13588.     return result;
  13589.  
  13590.   return PASN_Sequence::Compare(other);
  13591. }
  13592.  
  13593.  
  13594. PINDEX H245_Capability_h233EncryptionReceiveCapability::GetDataLength() const
  13595. {
  13596.   PINDEX length = 0;
  13597.   length += m_h233IVResponseTime.GetObjectLength();
  13598.   return length;
  13599. }
  13600.  
  13601.  
  13602. BOOL H245_Capability_h233EncryptionReceiveCapability::Decode(PASN_Stream & strm)
  13603. {
  13604.   if (!PreambleDecode(strm))
  13605.     return FALSE;
  13606.  
  13607.   if (!m_h233IVResponseTime.Decode(strm))
  13608.     return FALSE;
  13609.  
  13610.   return UnknownExtensionsDecode(strm);
  13611. }
  13612.  
  13613.  
  13614. void H245_Capability_h233EncryptionReceiveCapability::Encode(PASN_Stream & strm) const
  13615. {
  13616.   PreambleEncode(strm);
  13617.  
  13618.   m_h233IVResponseTime.Encode(strm);
  13619.  
  13620.   UnknownExtensionsEncode(strm);
  13621. }
  13622.  
  13623.  
  13624. PObject * H245_Capability_h233EncryptionReceiveCapability::Clone() const
  13625. {
  13626. #ifndef PASN_LEANANDMEAN
  13627.   PAssert(IsClass(H245_Capability_h233EncryptionReceiveCapability::Class()), PInvalidCast);
  13628. #endif
  13629.   return new H245_Capability_h233EncryptionReceiveCapability(*this);
  13630. }
  13631.  
  13632.  
  13633. //
  13634. // ArrayOf_VCCapability
  13635. //
  13636.  
  13637. H245_ArrayOf_VCCapability::H245_ArrayOf_VCCapability(unsigned tag, PASN_Object::TagClass tagClass)
  13638.   : PASN_Array(tag, tagClass)
  13639. {
  13640. }
  13641.  
  13642.  
  13643. PASN_Object * H245_ArrayOf_VCCapability::CreateObject() const
  13644. {
  13645.   return new H245_VCCapability;
  13646. }
  13647.  
  13648.  
  13649. H245_VCCapability & H245_ArrayOf_VCCapability::operator[](PINDEX i) const
  13650. {
  13651.   return (H245_VCCapability &)array[i];
  13652. }
  13653.  
  13654.  
  13655. PObject * H245_ArrayOf_VCCapability::Clone() const
  13656. {
  13657. #ifndef PASN_LEANANDMEAN
  13658.   PAssert(IsClass(H245_ArrayOf_VCCapability::Class()), PInvalidCast);
  13659. #endif
  13660.   return new H245_ArrayOf_VCCapability(*this);
  13661. }
  13662.  
  13663.  
  13664. //
  13665. // VCCapability_aal1
  13666. //
  13667.  
  13668. H245_VCCapability_aal1::H245_VCCapability_aal1(unsigned tag, PASN_Object::TagClass tagClass)
  13669.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  13670. {
  13671. }
  13672.  
  13673.  
  13674. #ifndef PASN_NOPRINTON
  13675. void H245_VCCapability_aal1::PrintOn(ostream & strm) const
  13676. {
  13677.   int indent = strm.precision() + 2;
  13678.   strm << "{\n";
  13679.   strm << setw(indent+20) << "nullClockRecovery = " << setprecision(indent) << m_nullClockRecovery << '\n';
  13680.   strm << setw(indent+20) << "srtsClockRecovery = " << setprecision(indent) << m_srtsClockRecovery << '\n';
  13681.   strm << setw(indent+24) << "adaptiveClockRecovery = " << setprecision(indent) << m_adaptiveClockRecovery << '\n';
  13682.   strm << setw(indent+22) << "nullErrorCorrection = " << setprecision(indent) << m_nullErrorCorrection << '\n';
  13683.   strm << setw(indent+18) << "longInterleaver = " << setprecision(indent) << m_longInterleaver << '\n';
  13684.   strm << setw(indent+19) << "shortInterleaver = " << setprecision(indent) << m_shortInterleaver << '\n';
  13685.   strm << setw(indent+22) << "errorCorrectionOnly = " << setprecision(indent) << m_errorCorrectionOnly << '\n';
  13686.   strm << setw(indent+25) << "structuredDataTransfer = " << setprecision(indent) << m_structuredDataTransfer << '\n';
  13687.   strm << setw(indent+23) << "partiallyFilledCells = " << setprecision(indent) << m_partiallyFilledCells << '\n';
  13688.   strm << setw(indent-1) << "}";
  13689. }
  13690. #endif
  13691.  
  13692.  
  13693. PObject::Comparison H245_VCCapability_aal1::Compare(const PObject & obj) const
  13694. {
  13695. #ifndef PASN_LEANANDMEAN
  13696.   PAssert(IsDescendant(H245_VCCapability_aal1::Class()), PInvalidCast);
  13697. #endif
  13698.   const H245_VCCapability_aal1 & other = (const H245_VCCapability_aal1 &)obj;
  13699.  
  13700.   Comparison result;
  13701.  
  13702.   if ((result = m_nullClockRecovery.Compare(other.m_nullClockRecovery)) != EqualTo)
  13703.     return result;
  13704.   if ((result = m_srtsClockRecovery.Compare(other.m_srtsClockRecovery)) != EqualTo)
  13705.     return result;
  13706.   if ((result = m_adaptiveClockRecovery.Compare(other.m_adaptiveClockRecovery)) != EqualTo)
  13707.     return result;
  13708.   if ((result = m_nullErrorCorrection.Compare(other.m_nullErrorCorrection)) != EqualTo)
  13709.     return result;
  13710.   if ((result = m_longInterleaver.Compare(other.m_longInterleaver)) != EqualTo)
  13711.     return result;
  13712.   if ((result = m_shortInterleaver.Compare(other.m_shortInterleaver)) != EqualTo)
  13713.     return result;
  13714.   if ((result = m_errorCorrectionOnly.Compare(other.m_errorCorrectionOnly)) != EqualTo)
  13715.     return result;
  13716.   if ((result = m_structuredDataTransfer.Compare(other.m_structuredDataTransfer)) != EqualTo)
  13717.     return result;
  13718.   if ((result = m_partiallyFilledCells.Compare(other.m_partiallyFilledCells)) != EqualTo)
  13719.     return result;
  13720.  
  13721.   return PASN_Sequence::Compare(other);
  13722. }
  13723.  
  13724.  
  13725. PINDEX H245_VCCapability_aal1::GetDataLength() const
  13726. {
  13727.   PINDEX length = 0;
  13728.   length += m_nullClockRecovery.GetObjectLength();
  13729.   length += m_srtsClockRecovery.GetObjectLength();
  13730.   length += m_adaptiveClockRecovery.GetObjectLength();
  13731.   length += m_nullErrorCorrection.GetObjectLength();
  13732.   length += m_longInterleaver.GetObjectLength();
  13733.   length += m_shortInterleaver.GetObjectLength();
  13734.   length += m_errorCorrectionOnly.GetObjectLength();
  13735.   length += m_structuredDataTransfer.GetObjectLength();
  13736.   length += m_partiallyFilledCells.GetObjectLength();
  13737.   return length;
  13738. }
  13739.  
  13740.  
  13741. BOOL H245_VCCapability_aal1::Decode(PASN_Stream & strm)
  13742. {
  13743.   if (!PreambleDecode(strm))
  13744.     return FALSE;
  13745.  
  13746.   if (!m_nullClockRecovery.Decode(strm))
  13747.     return FALSE;
  13748.   if (!m_srtsClockRecovery.Decode(strm))
  13749.     return FALSE;
  13750.   if (!m_adaptiveClockRecovery.Decode(strm))
  13751.     return FALSE;
  13752.   if (!m_nullErrorCorrection.Decode(strm))
  13753.     return FALSE;
  13754.   if (!m_longInterleaver.Decode(strm))
  13755.     return FALSE;
  13756.   if (!m_shortInterleaver.Decode(strm))
  13757.     return FALSE;
  13758.   if (!m_errorCorrectionOnly.Decode(strm))
  13759.     return FALSE;
  13760.   if (!m_structuredDataTransfer.Decode(strm))
  13761.     return FALSE;
  13762.   if (!m_partiallyFilledCells.Decode(strm))
  13763.     return FALSE;
  13764.  
  13765.   return UnknownExtensionsDecode(strm);
  13766. }
  13767.  
  13768.  
  13769. void H245_VCCapability_aal1::Encode(PASN_Stream & strm) const
  13770. {
  13771.   PreambleEncode(strm);
  13772.  
  13773.   m_nullClockRecovery.Encode(strm);
  13774.   m_srtsClockRecovery.Encode(strm);
  13775.   m_adaptiveClockRecovery.Encode(strm);
  13776.   m_nullErrorCorrection.Encode(strm);
  13777.   m_longInterleaver.Encode(strm);
  13778.   m_shortInterleaver.Encode(strm);
  13779.   m_errorCorrectionOnly.Encode(strm);
  13780.   m_structuredDataTransfer.Encode(strm);
  13781.   m_partiallyFilledCells.Encode(strm);
  13782.  
  13783.   UnknownExtensionsEncode(strm);
  13784. }
  13785.  
  13786.  
  13787. PObject * H245_VCCapability_aal1::Clone() const
  13788. {
  13789. #ifndef PASN_LEANANDMEAN
  13790.   PAssert(IsClass(H245_VCCapability_aal1::Class()), PInvalidCast);
  13791. #endif
  13792.   return new H245_VCCapability_aal1(*this);
  13793. }
  13794.  
  13795.  
  13796. //
  13797. // VCCapability_aal5
  13798. //
  13799.  
  13800. H245_VCCapability_aal5::H245_VCCapability_aal5(unsigned tag, PASN_Object::TagClass tagClass)
  13801.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  13802. {
  13803.   m_forwardMaximumSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  13804.   m_backwardMaximumSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  13805. }
  13806.  
  13807.  
  13808. #ifndef PASN_NOPRINTON
  13809. void H245_VCCapability_aal5::PrintOn(ostream & strm) const
  13810. {
  13811.   int indent = strm.precision() + 2;
  13812.   strm << "{\n";
  13813.   strm << setw(indent+24) << "forwardMaximumSDUSize = " << setprecision(indent) << m_forwardMaximumSDUSize << '\n';
  13814.   strm << setw(indent+25) << "backwardMaximumSDUSize = " << setprecision(indent) << m_backwardMaximumSDUSize << '\n';
  13815.   strm << setw(indent-1) << "}";
  13816. }
  13817. #endif
  13818.  
  13819.  
  13820. PObject::Comparison H245_VCCapability_aal5::Compare(const PObject & obj) const
  13821. {
  13822. #ifndef PASN_LEANANDMEAN
  13823.   PAssert(IsDescendant(H245_VCCapability_aal5::Class()), PInvalidCast);
  13824. #endif
  13825.   const H245_VCCapability_aal5 & other = (const H245_VCCapability_aal5 &)obj;
  13826.  
  13827.   Comparison result;
  13828.  
  13829.   if ((result = m_forwardMaximumSDUSize.Compare(other.m_forwardMaximumSDUSize)) != EqualTo)
  13830.     return result;
  13831.   if ((result = m_backwardMaximumSDUSize.Compare(other.m_backwardMaximumSDUSize)) != EqualTo)
  13832.     return result;
  13833.  
  13834.   return PASN_Sequence::Compare(other);
  13835. }
  13836.  
  13837.  
  13838. PINDEX H245_VCCapability_aal5::GetDataLength() const
  13839. {
  13840.   PINDEX length = 0;
  13841.   length += m_forwardMaximumSDUSize.GetObjectLength();
  13842.   length += m_backwardMaximumSDUSize.GetObjectLength();
  13843.   return length;
  13844. }
  13845.  
  13846.  
  13847. BOOL H245_VCCapability_aal5::Decode(PASN_Stream & strm)
  13848. {
  13849.   if (!PreambleDecode(strm))
  13850.     return FALSE;
  13851.  
  13852.   if (!m_forwardMaximumSDUSize.Decode(strm))
  13853.     return FALSE;
  13854.   if (!m_backwardMaximumSDUSize.Decode(strm))
  13855.     return FALSE;
  13856.  
  13857.   return UnknownExtensionsDecode(strm);
  13858. }
  13859.  
  13860.  
  13861. void H245_VCCapability_aal5::Encode(PASN_Stream & strm) const
  13862. {
  13863.   PreambleEncode(strm);
  13864.  
  13865.   m_forwardMaximumSDUSize.Encode(strm);
  13866.   m_backwardMaximumSDUSize.Encode(strm);
  13867.  
  13868.   UnknownExtensionsEncode(strm);
  13869. }
  13870.  
  13871.  
  13872. PObject * H245_VCCapability_aal5::Clone() const
  13873. {
  13874. #ifndef PASN_LEANANDMEAN
  13875.   PAssert(IsClass(H245_VCCapability_aal5::Class()), PInvalidCast);
  13876. #endif
  13877.   return new H245_VCCapability_aal5(*this);
  13878. }
  13879.  
  13880.  
  13881. //
  13882. // H223Capability_h223MultiplexTableCapability
  13883. //
  13884.  
  13885. H245_H223Capability_h223MultiplexTableCapability::H245_H223Capability_h223MultiplexTableCapability(unsigned tag, PASN_Object::TagClass tagClass)
  13886.   : PASN_Choice(tag, tagClass, 2, FALSE
  13887. #ifndef PASN_NOPRINTON
  13888.       , "basic "
  13889.         "enhanced "
  13890. #endif
  13891.     )
  13892. {
  13893. }
  13894.  
  13895.  
  13896. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  13897. H245_H223Capability_h223MultiplexTableCapability::operator H245_H223Capability_h223MultiplexTableCapability_enhanced &() const
  13898. #else
  13899. H245_H223Capability_h223MultiplexTableCapability::operator H245_H223Capability_h223MultiplexTableCapability_enhanced &()
  13900. {
  13901. #ifndef PASN_LEANANDMEAN
  13902.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223Capability_h223MultiplexTableCapability_enhanced::Class()), PInvalidCast);
  13903. #endif
  13904.   return *(H245_H223Capability_h223MultiplexTableCapability_enhanced *)choice;
  13905. }
  13906.  
  13907.  
  13908. H245_H223Capability_h223MultiplexTableCapability::operator const H245_H223Capability_h223MultiplexTableCapability_enhanced &() const
  13909. #endif
  13910. {
  13911. #ifndef PASN_LEANANDMEAN
  13912.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223Capability_h223MultiplexTableCapability_enhanced::Class()), PInvalidCast);
  13913. #endif
  13914.   return *(H245_H223Capability_h223MultiplexTableCapability_enhanced *)choice;
  13915. }
  13916.  
  13917.  
  13918. BOOL H245_H223Capability_h223MultiplexTableCapability::CreateObject()
  13919. {
  13920.   switch (tag) {
  13921.     case e_basic :
  13922.       choice = new PASN_Null();
  13923.       return TRUE;
  13924.     case e_enhanced :
  13925.       choice = new H245_H223Capability_h223MultiplexTableCapability_enhanced();
  13926.       return TRUE;
  13927.   }
  13928.  
  13929.   choice = NULL;
  13930.   return FALSE;
  13931. }
  13932.  
  13933.  
  13934. PObject * H245_H223Capability_h223MultiplexTableCapability::Clone() const
  13935. {
  13936. #ifndef PASN_LEANANDMEAN
  13937.   PAssert(IsClass(H245_H223Capability_h223MultiplexTableCapability::Class()), PInvalidCast);
  13938. #endif
  13939.   return new H245_H223Capability_h223MultiplexTableCapability(*this);
  13940. }
  13941.  
  13942.  
  13943. //
  13944. // H223Capability_mobileOperationTransmitCapability
  13945. //
  13946.  
  13947. H245_H223Capability_mobileOperationTransmitCapability::H245_H223Capability_mobileOperationTransmitCapability(unsigned tag, PASN_Object::TagClass tagClass)
  13948.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  13949. {
  13950. }
  13951.  
  13952.  
  13953. #ifndef PASN_NOPRINTON
  13954. void H245_H223Capability_mobileOperationTransmitCapability::PrintOn(ostream & strm) const
  13955. {
  13956.   int indent = strm.precision() + 2;
  13957.   strm << "{\n";
  13958.   strm << setw(indent+23) << "modeChangeCapability = " << setprecision(indent) << m_modeChangeCapability << '\n';
  13959.   strm << setw(indent+13) << "h223AnnexA = " << setprecision(indent) << m_h223AnnexA << '\n';
  13960.   strm << setw(indent+23) << "h223AnnexADoubleFlag = " << setprecision(indent) << m_h223AnnexADoubleFlag << '\n';
  13961.   strm << setw(indent+13) << "h223AnnexB = " << setprecision(indent) << m_h223AnnexB << '\n';
  13962.   strm << setw(indent+23) << "h223AnnexBwithHeader = " << setprecision(indent) << m_h223AnnexBwithHeader << '\n';
  13963.   strm << setw(indent-1) << "}";
  13964. }
  13965. #endif
  13966.  
  13967.  
  13968. PObject::Comparison H245_H223Capability_mobileOperationTransmitCapability::Compare(const PObject & obj) const
  13969. {
  13970. #ifndef PASN_LEANANDMEAN
  13971.   PAssert(IsDescendant(H245_H223Capability_mobileOperationTransmitCapability::Class()), PInvalidCast);
  13972. #endif
  13973.   const H245_H223Capability_mobileOperationTransmitCapability & other = (const H245_H223Capability_mobileOperationTransmitCapability &)obj;
  13974.  
  13975.   Comparison result;
  13976.  
  13977.   if ((result = m_modeChangeCapability.Compare(other.m_modeChangeCapability)) != EqualTo)
  13978.     return result;
  13979.   if ((result = m_h223AnnexA.Compare(other.m_h223AnnexA)) != EqualTo)
  13980.     return result;
  13981.   if ((result = m_h223AnnexADoubleFlag.Compare(other.m_h223AnnexADoubleFlag)) != EqualTo)
  13982.     return result;
  13983.   if ((result = m_h223AnnexB.Compare(other.m_h223AnnexB)) != EqualTo)
  13984.     return result;
  13985.   if ((result = m_h223AnnexBwithHeader.Compare(other.m_h223AnnexBwithHeader)) != EqualTo)
  13986.     return result;
  13987.  
  13988.   return PASN_Sequence::Compare(other);
  13989. }
  13990.  
  13991.  
  13992. PINDEX H245_H223Capability_mobileOperationTransmitCapability::GetDataLength() const
  13993. {
  13994.   PINDEX length = 0;
  13995.   length += m_modeChangeCapability.GetObjectLength();
  13996.   length += m_h223AnnexA.GetObjectLength();
  13997.   length += m_h223AnnexADoubleFlag.GetObjectLength();
  13998.   length += m_h223AnnexB.GetObjectLength();
  13999.   length += m_h223AnnexBwithHeader.GetObjectLength();
  14000.   return length;
  14001. }
  14002.  
  14003.  
  14004. BOOL H245_H223Capability_mobileOperationTransmitCapability::Decode(PASN_Stream & strm)
  14005. {
  14006.   if (!PreambleDecode(strm))
  14007.     return FALSE;
  14008.  
  14009.   if (!m_modeChangeCapability.Decode(strm))
  14010.     return FALSE;
  14011.   if (!m_h223AnnexA.Decode(strm))
  14012.     return FALSE;
  14013.   if (!m_h223AnnexADoubleFlag.Decode(strm))
  14014.     return FALSE;
  14015.   if (!m_h223AnnexB.Decode(strm))
  14016.     return FALSE;
  14017.   if (!m_h223AnnexBwithHeader.Decode(strm))
  14018.     return FALSE;
  14019.  
  14020.   return UnknownExtensionsDecode(strm);
  14021. }
  14022.  
  14023.  
  14024. void H245_H223Capability_mobileOperationTransmitCapability::Encode(PASN_Stream & strm) const
  14025. {
  14026.   PreambleEncode(strm);
  14027.  
  14028.   m_modeChangeCapability.Encode(strm);
  14029.   m_h223AnnexA.Encode(strm);
  14030.   m_h223AnnexADoubleFlag.Encode(strm);
  14031.   m_h223AnnexB.Encode(strm);
  14032.   m_h223AnnexBwithHeader.Encode(strm);
  14033.  
  14034.   UnknownExtensionsEncode(strm);
  14035. }
  14036.  
  14037.  
  14038. PObject * H245_H223Capability_mobileOperationTransmitCapability::Clone() const
  14039. {
  14040. #ifndef PASN_LEANANDMEAN
  14041.   PAssert(IsClass(H245_H223Capability_mobileOperationTransmitCapability::Class()), PInvalidCast);
  14042. #endif
  14043.   return new H245_H223Capability_mobileOperationTransmitCapability(*this);
  14044. }
  14045.  
  14046.  
  14047. //
  14048. // H223Capability_mobileMultilinkFrameCapability
  14049. //
  14050.  
  14051. H245_H223Capability_mobileMultilinkFrameCapability::H245_H223Capability_mobileMultilinkFrameCapability(unsigned tag, PASN_Object::TagClass tagClass)
  14052.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  14053. {
  14054.   m_maximumSampleSize.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
  14055.   m_maximumPayloadLength.SetConstraints(PASN_Object::FixedConstraint, 1, 65025);
  14056. }
  14057.  
  14058.  
  14059. #ifndef PASN_NOPRINTON
  14060. void H245_H223Capability_mobileMultilinkFrameCapability::PrintOn(ostream & strm) const
  14061. {
  14062.   int indent = strm.precision() + 2;
  14063.   strm << "{\n";
  14064.   strm << setw(indent+20) << "maximumSampleSize = " << setprecision(indent) << m_maximumSampleSize << '\n';
  14065.   strm << setw(indent+23) << "maximumPayloadLength = " << setprecision(indent) << m_maximumPayloadLength << '\n';
  14066.   strm << setw(indent-1) << "}";
  14067. }
  14068. #endif
  14069.  
  14070.  
  14071. PObject::Comparison H245_H223Capability_mobileMultilinkFrameCapability::Compare(const PObject & obj) const
  14072. {
  14073. #ifndef PASN_LEANANDMEAN
  14074.   PAssert(IsDescendant(H245_H223Capability_mobileMultilinkFrameCapability::Class()), PInvalidCast);
  14075. #endif
  14076.   const H245_H223Capability_mobileMultilinkFrameCapability & other = (const H245_H223Capability_mobileMultilinkFrameCapability &)obj;
  14077.  
  14078.   Comparison result;
  14079.  
  14080.   if ((result = m_maximumSampleSize.Compare(other.m_maximumSampleSize)) != EqualTo)
  14081.     return result;
  14082.   if ((result = m_maximumPayloadLength.Compare(other.m_maximumPayloadLength)) != EqualTo)
  14083.     return result;
  14084.  
  14085.   return PASN_Sequence::Compare(other);
  14086. }
  14087.  
  14088.  
  14089. PINDEX H245_H223Capability_mobileMultilinkFrameCapability::GetDataLength() const
  14090. {
  14091.   PINDEX length = 0;
  14092.   length += m_maximumSampleSize.GetObjectLength();
  14093.   length += m_maximumPayloadLength.GetObjectLength();
  14094.   return length;
  14095. }
  14096.  
  14097.  
  14098. BOOL H245_H223Capability_mobileMultilinkFrameCapability::Decode(PASN_Stream & strm)
  14099. {
  14100.   if (!PreambleDecode(strm))
  14101.     return FALSE;
  14102.  
  14103.   if (!m_maximumSampleSize.Decode(strm))
  14104.     return FALSE;
  14105.   if (!m_maximumPayloadLength.Decode(strm))
  14106.     return FALSE;
  14107.  
  14108.   return UnknownExtensionsDecode(strm);
  14109. }
  14110.  
  14111.  
  14112. void H245_H223Capability_mobileMultilinkFrameCapability::Encode(PASN_Stream & strm) const
  14113. {
  14114.   PreambleEncode(strm);
  14115.  
  14116.   m_maximumSampleSize.Encode(strm);
  14117.   m_maximumPayloadLength.Encode(strm);
  14118.  
  14119.   UnknownExtensionsEncode(strm);
  14120. }
  14121.  
  14122.  
  14123. PObject * H245_H223Capability_mobileMultilinkFrameCapability::Clone() const
  14124. {
  14125. #ifndef PASN_LEANANDMEAN
  14126.   PAssert(IsClass(H245_H223Capability_mobileMultilinkFrameCapability::Class()), PInvalidCast);
  14127. #endif
  14128.   return new H245_H223Capability_mobileMultilinkFrameCapability(*this);
  14129. }
  14130.  
  14131.  
  14132. //
  14133. // H2250Capability_mcCapability
  14134. //
  14135.  
  14136. H245_H2250Capability_mcCapability::H245_H2250Capability_mcCapability(unsigned tag, PASN_Object::TagClass tagClass)
  14137.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  14138. {
  14139. }
  14140.  
  14141.  
  14142. #ifndef PASN_NOPRINTON
  14143. void H245_H2250Capability_mcCapability::PrintOn(ostream & strm) const
  14144. {
  14145.   int indent = strm.precision() + 2;
  14146.   strm << "{\n";
  14147.   strm << setw(indent+26) << "centralizedConferenceMC = " << setprecision(indent) << m_centralizedConferenceMC << '\n';
  14148.   strm << setw(indent+28) << "decentralizedConferenceMC = " << setprecision(indent) << m_decentralizedConferenceMC << '\n';
  14149.   strm << setw(indent-1) << "}";
  14150. }
  14151. #endif
  14152.  
  14153.  
  14154. PObject::Comparison H245_H2250Capability_mcCapability::Compare(const PObject & obj) const
  14155. {
  14156. #ifndef PASN_LEANANDMEAN
  14157.   PAssert(IsDescendant(H245_H2250Capability_mcCapability::Class()), PInvalidCast);
  14158. #endif
  14159.   const H245_H2250Capability_mcCapability & other = (const H245_H2250Capability_mcCapability &)obj;
  14160.  
  14161.   Comparison result;
  14162.  
  14163.   if ((result = m_centralizedConferenceMC.Compare(other.m_centralizedConferenceMC)) != EqualTo)
  14164.     return result;
  14165.   if ((result = m_decentralizedConferenceMC.Compare(other.m_decentralizedConferenceMC)) != EqualTo)
  14166.     return result;
  14167.  
  14168.   return PASN_Sequence::Compare(other);
  14169. }
  14170.  
  14171.  
  14172. PINDEX H245_H2250Capability_mcCapability::GetDataLength() const
  14173. {
  14174.   PINDEX length = 0;
  14175.   length += m_centralizedConferenceMC.GetObjectLength();
  14176.   length += m_decentralizedConferenceMC.GetObjectLength();
  14177.   return length;
  14178. }
  14179.  
  14180.  
  14181. BOOL H245_H2250Capability_mcCapability::Decode(PASN_Stream & strm)
  14182. {
  14183.   if (!PreambleDecode(strm))
  14184.     return FALSE;
  14185.  
  14186.   if (!m_centralizedConferenceMC.Decode(strm))
  14187.     return FALSE;
  14188.   if (!m_decentralizedConferenceMC.Decode(strm))
  14189.     return FALSE;
  14190.  
  14191.   return UnknownExtensionsDecode(strm);
  14192. }
  14193.  
  14194.  
  14195. void H245_H2250Capability_mcCapability::Encode(PASN_Stream & strm) const
  14196. {
  14197.   PreambleEncode(strm);
  14198.  
  14199.   m_centralizedConferenceMC.Encode(strm);
  14200.   m_decentralizedConferenceMC.Encode(strm);
  14201.  
  14202.   UnknownExtensionsEncode(strm);
  14203. }
  14204.  
  14205.  
  14206. PObject * H245_H2250Capability_mcCapability::Clone() const
  14207. {
  14208. #ifndef PASN_LEANANDMEAN
  14209.   PAssert(IsClass(H245_H2250Capability_mcCapability::Class()), PInvalidCast);
  14210. #endif
  14211.   return new H245_H2250Capability_mcCapability(*this);
  14212. }
  14213.  
  14214.  
  14215. //
  14216. // ArrayOf_RedundancyEncodingCapability
  14217. //
  14218.  
  14219. H245_ArrayOf_RedundancyEncodingCapability::H245_ArrayOf_RedundancyEncodingCapability(unsigned tag, PASN_Object::TagClass tagClass)
  14220.   : PASN_Array(tag, tagClass)
  14221. {
  14222. }
  14223.  
  14224.  
  14225. PASN_Object * H245_ArrayOf_RedundancyEncodingCapability::CreateObject() const
  14226. {
  14227.   return new H245_RedundancyEncodingCapability;
  14228. }
  14229.  
  14230.  
  14231. H245_RedundancyEncodingCapability & H245_ArrayOf_RedundancyEncodingCapability::operator[](PINDEX i) const
  14232. {
  14233.   return (H245_RedundancyEncodingCapability &)array[i];
  14234. }
  14235.  
  14236.  
  14237. PObject * H245_ArrayOf_RedundancyEncodingCapability::Clone() const
  14238. {
  14239. #ifndef PASN_LEANANDMEAN
  14240.   PAssert(IsClass(H245_ArrayOf_RedundancyEncodingCapability::Class()), PInvalidCast);
  14241. #endif
  14242.   return new H245_ArrayOf_RedundancyEncodingCapability(*this);
  14243. }
  14244.  
  14245.  
  14246. //
  14247. // ArrayOf_RTPPayloadType
  14248. //
  14249.  
  14250. H245_ArrayOf_RTPPayloadType::H245_ArrayOf_RTPPayloadType(unsigned tag, PASN_Object::TagClass tagClass)
  14251.   : PASN_Array(tag, tagClass)
  14252. {
  14253. }
  14254.  
  14255.  
  14256. PASN_Object * H245_ArrayOf_RTPPayloadType::CreateObject() const
  14257. {
  14258.   return new H245_RTPPayloadType;
  14259. }
  14260.  
  14261.  
  14262. H245_RTPPayloadType & H245_ArrayOf_RTPPayloadType::operator[](PINDEX i) const
  14263. {
  14264.   return (H245_RTPPayloadType &)array[i];
  14265. }
  14266.  
  14267.  
  14268. PObject * H245_ArrayOf_RTPPayloadType::Clone() const
  14269. {
  14270. #ifndef PASN_LEANANDMEAN
  14271.   PAssert(IsClass(H245_ArrayOf_RTPPayloadType::Class()), PInvalidCast);
  14272. #endif
  14273.   return new H245_ArrayOf_RTPPayloadType(*this);
  14274. }
  14275.  
  14276.  
  14277. //
  14278. // MediaTransportType_atm-AAL5-compressed
  14279. //
  14280.  
  14281. H245_MediaTransportType_atm_AAL5_compressed::H245_MediaTransportType_atm_AAL5_compressed(unsigned tag, PASN_Object::TagClass tagClass)
  14282.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  14283. {
  14284. }
  14285.  
  14286.  
  14287. #ifndef PASN_NOPRINTON
  14288. void H245_MediaTransportType_atm_AAL5_compressed::PrintOn(ostream & strm) const
  14289. {
  14290.   int indent = strm.precision() + 2;
  14291.   strm << "{\n";
  14292.   strm << setw(indent+17) << "variable_delta = " << setprecision(indent) << m_variable_delta << '\n';
  14293.   strm << setw(indent-1) << "}";
  14294. }
  14295. #endif
  14296.  
  14297.  
  14298. PObject::Comparison H245_MediaTransportType_atm_AAL5_compressed::Compare(const PObject & obj) const
  14299. {
  14300. #ifndef PASN_LEANANDMEAN
  14301.   PAssert(IsDescendant(H245_MediaTransportType_atm_AAL5_compressed::Class()), PInvalidCast);
  14302. #endif
  14303.   const H245_MediaTransportType_atm_AAL5_compressed & other = (const H245_MediaTransportType_atm_AAL5_compressed &)obj;
  14304.  
  14305.   Comparison result;
  14306.  
  14307.   if ((result = m_variable_delta.Compare(other.m_variable_delta)) != EqualTo)
  14308.     return result;
  14309.  
  14310.   return PASN_Sequence::Compare(other);
  14311. }
  14312.  
  14313.  
  14314. PINDEX H245_MediaTransportType_atm_AAL5_compressed::GetDataLength() const
  14315. {
  14316.   PINDEX length = 0;
  14317.   length += m_variable_delta.GetObjectLength();
  14318.   return length;
  14319. }
  14320.  
  14321.  
  14322. BOOL H245_MediaTransportType_atm_AAL5_compressed::Decode(PASN_Stream & strm)
  14323. {
  14324.   if (!PreambleDecode(strm))
  14325.     return FALSE;
  14326.  
  14327.   if (!m_variable_delta.Decode(strm))
  14328.     return FALSE;
  14329.  
  14330.   return UnknownExtensionsDecode(strm);
  14331. }
  14332.  
  14333.  
  14334. void H245_MediaTransportType_atm_AAL5_compressed::Encode(PASN_Stream & strm) const
  14335. {
  14336.   PreambleEncode(strm);
  14337.  
  14338.   m_variable_delta.Encode(strm);
  14339.  
  14340.   UnknownExtensionsEncode(strm);
  14341. }
  14342.  
  14343.  
  14344. PObject * H245_MediaTransportType_atm_AAL5_compressed::Clone() const
  14345. {
  14346. #ifndef PASN_LEANANDMEAN
  14347.   PAssert(IsClass(H245_MediaTransportType_atm_AAL5_compressed::Class()), PInvalidCast);
  14348. #endif
  14349.   return new H245_MediaTransportType_atm_AAL5_compressed(*this);
  14350. }
  14351.  
  14352.  
  14353. //
  14354. // ArrayOf_QOSCapability
  14355. //
  14356.  
  14357. H245_ArrayOf_QOSCapability::H245_ArrayOf_QOSCapability(unsigned tag, PASN_Object::TagClass tagClass)
  14358.   : PASN_Array(tag, tagClass)
  14359. {
  14360. }
  14361.  
  14362.  
  14363. PASN_Object * H245_ArrayOf_QOSCapability::CreateObject() const
  14364. {
  14365.   return new H245_QOSCapability;
  14366. }
  14367.  
  14368.  
  14369. H245_QOSCapability & H245_ArrayOf_QOSCapability::operator[](PINDEX i) const
  14370. {
  14371.   return (H245_QOSCapability &)array[i];
  14372. }
  14373.  
  14374.  
  14375. PObject * H245_ArrayOf_QOSCapability::Clone() const
  14376. {
  14377. #ifndef PASN_LEANANDMEAN
  14378.   PAssert(IsClass(H245_ArrayOf_QOSCapability::Class()), PInvalidCast);
  14379. #endif
  14380.   return new H245_ArrayOf_QOSCapability(*this);
  14381. }
  14382.  
  14383.  
  14384. //
  14385. // ArrayOf_MediaChannelCapability
  14386. //
  14387.  
  14388. H245_ArrayOf_MediaChannelCapability::H245_ArrayOf_MediaChannelCapability(unsigned tag, PASN_Object::TagClass tagClass)
  14389.   : PASN_Array(tag, tagClass)
  14390. {
  14391. }
  14392.  
  14393.  
  14394. PASN_Object * H245_ArrayOf_MediaChannelCapability::CreateObject() const
  14395. {
  14396.   return new H245_MediaChannelCapability;
  14397. }
  14398.  
  14399.  
  14400. H245_MediaChannelCapability & H245_ArrayOf_MediaChannelCapability::operator[](PINDEX i) const
  14401. {
  14402.   return (H245_MediaChannelCapability &)array[i];
  14403. }
  14404.  
  14405.  
  14406. PObject * H245_ArrayOf_MediaChannelCapability::Clone() const
  14407. {
  14408. #ifndef PASN_LEANANDMEAN
  14409.   PAssert(IsClass(H245_ArrayOf_MediaChannelCapability::Class()), PInvalidCast);
  14410. #endif
  14411.   return new H245_ArrayOf_MediaChannelCapability(*this);
  14412. }
  14413.  
  14414.  
  14415. //
  14416. // ArrayOf_CapabilityTableEntryNumber
  14417. //
  14418.  
  14419. H245_ArrayOf_CapabilityTableEntryNumber::H245_ArrayOf_CapabilityTableEntryNumber(unsigned tag, PASN_Object::TagClass tagClass)
  14420.   : PASN_Array(tag, tagClass)
  14421. {
  14422. }
  14423.  
  14424.  
  14425. PASN_Object * H245_ArrayOf_CapabilityTableEntryNumber::CreateObject() const
  14426. {
  14427.   return new H245_CapabilityTableEntryNumber;
  14428. }
  14429.  
  14430.  
  14431. H245_CapabilityTableEntryNumber & H245_ArrayOf_CapabilityTableEntryNumber::operator[](PINDEX i) const
  14432. {
  14433.   return (H245_CapabilityTableEntryNumber &)array[i];
  14434. }
  14435.  
  14436.  
  14437. PObject * H245_ArrayOf_CapabilityTableEntryNumber::Clone() const
  14438. {
  14439. #ifndef PASN_LEANANDMEAN
  14440.   PAssert(IsClass(H245_ArrayOf_CapabilityTableEntryNumber::Class()), PInvalidCast);
  14441. #endif
  14442.   return new H245_ArrayOf_CapabilityTableEntryNumber(*this);
  14443. }
  14444.  
  14445.  
  14446. //
  14447. // RTPH263VideoRedundancyEncoding_frameToThreadMapping
  14448. //
  14449.  
  14450. H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping::H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping(unsigned tag, PASN_Object::TagClass tagClass)
  14451.   : PASN_Choice(tag, tagClass, 2, TRUE
  14452. #ifndef PASN_NOPRINTON
  14453.       , "roundrobin "
  14454.         "custom "
  14455. #endif
  14456.     )
  14457. {
  14458. }
  14459.  
  14460.  
  14461. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  14462. H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping::operator H245_ArrayOf_RTPH263VideoRedundancyFrameMapping &() const
  14463. #else
  14464. H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping::operator H245_ArrayOf_RTPH263VideoRedundancyFrameMapping &()
  14465. {
  14466. #ifndef PASN_LEANANDMEAN
  14467.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_RTPH263VideoRedundancyFrameMapping::Class()), PInvalidCast);
  14468. #endif
  14469.   return *(H245_ArrayOf_RTPH263VideoRedundancyFrameMapping *)choice;
  14470. }
  14471.  
  14472.  
  14473. H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping::operator const H245_ArrayOf_RTPH263VideoRedundancyFrameMapping &() const
  14474. #endif
  14475. {
  14476. #ifndef PASN_LEANANDMEAN
  14477.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_RTPH263VideoRedundancyFrameMapping::Class()), PInvalidCast);
  14478. #endif
  14479.   return *(H245_ArrayOf_RTPH263VideoRedundancyFrameMapping *)choice;
  14480. }
  14481.  
  14482.  
  14483. BOOL H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping::CreateObject()
  14484. {
  14485.   switch (tag) {
  14486.     case e_roundrobin :
  14487.       choice = new PASN_Null();
  14488.       return TRUE;
  14489.     case e_custom :
  14490.       choice = new H245_ArrayOf_RTPH263VideoRedundancyFrameMapping();
  14491.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  14492.       return TRUE;
  14493.   }
  14494.  
  14495.   choice = NULL;
  14496.   return FALSE;
  14497. }
  14498.  
  14499.  
  14500. PObject * H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping::Clone() const
  14501. {
  14502. #ifndef PASN_LEANANDMEAN
  14503.   PAssert(IsClass(H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping::Class()), PInvalidCast);
  14504. #endif
  14505.   return new H245_RTPH263VideoRedundancyEncoding_frameToThreadMapping(*this);
  14506. }
  14507.  
  14508.  
  14509. //
  14510. // RTPH263VideoRedundancyEncoding_containedThreads
  14511. //
  14512.  
  14513. H245_RTPH263VideoRedundancyEncoding_containedThreads::H245_RTPH263VideoRedundancyEncoding_containedThreads(unsigned tag, PASN_Object::TagClass tagClass)
  14514.   : PASN_Array(tag, tagClass)
  14515. {
  14516.   SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  14517. }
  14518.  
  14519.  
  14520. PASN_Object * H245_RTPH263VideoRedundancyEncoding_containedThreads::CreateObject() const
  14521. {
  14522.   PASN_Integer * obj = new PASN_Integer;
  14523.   obj->SetConstraints(PASN_Object::FixedConstraint, 0, 15);
  14524.   return obj;
  14525. }
  14526.  
  14527.  
  14528. PASN_Integer & H245_RTPH263VideoRedundancyEncoding_containedThreads::operator[](PINDEX i) const
  14529. {
  14530.   return (PASN_Integer &)array[i];
  14531. }
  14532.  
  14533.  
  14534. PObject * H245_RTPH263VideoRedundancyEncoding_containedThreads::Clone() const
  14535. {
  14536. #ifndef PASN_LEANANDMEAN
  14537.   PAssert(IsClass(H245_RTPH263VideoRedundancyEncoding_containedThreads::Class()), PInvalidCast);
  14538. #endif
  14539.   return new H245_RTPH263VideoRedundancyEncoding_containedThreads(*this);
  14540. }
  14541.  
  14542.  
  14543. //
  14544. // RTPH263VideoRedundancyFrameMapping_frameSequence
  14545. //
  14546.  
  14547. H245_RTPH263VideoRedundancyFrameMapping_frameSequence::H245_RTPH263VideoRedundancyFrameMapping_frameSequence(unsigned tag, PASN_Object::TagClass tagClass)
  14548.   : PASN_Array(tag, tagClass)
  14549. {
  14550.   SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  14551. }
  14552.  
  14553.  
  14554. PASN_Object * H245_RTPH263VideoRedundancyFrameMapping_frameSequence::CreateObject() const
  14555. {
  14556.   PASN_Integer * obj = new PASN_Integer;
  14557.   obj->SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  14558.   return obj;
  14559. }
  14560.  
  14561.  
  14562. PASN_Integer & H245_RTPH263VideoRedundancyFrameMapping_frameSequence::operator[](PINDEX i) const
  14563. {
  14564.   return (PASN_Integer &)array[i];
  14565. }
  14566.  
  14567.  
  14568. PObject * H245_RTPH263VideoRedundancyFrameMapping_frameSequence::Clone() const
  14569. {
  14570. #ifndef PASN_LEANANDMEAN
  14571.   PAssert(IsClass(H245_RTPH263VideoRedundancyFrameMapping_frameSequence::Class()), PInvalidCast);
  14572. #endif
  14573.   return new H245_RTPH263VideoRedundancyFrameMapping_frameSequence(*this);
  14574. }
  14575.  
  14576.  
  14577. //
  14578. // ArrayOf_MediaDistributionCapability
  14579. //
  14580.  
  14581. H245_ArrayOf_MediaDistributionCapability::H245_ArrayOf_MediaDistributionCapability(unsigned tag, PASN_Object::TagClass tagClass)
  14582.   : PASN_Array(tag, tagClass)
  14583. {
  14584. }
  14585.  
  14586.  
  14587. PASN_Object * H245_ArrayOf_MediaDistributionCapability::CreateObject() const
  14588. {
  14589.   return new H245_MediaDistributionCapability;
  14590. }
  14591.  
  14592.  
  14593. H245_MediaDistributionCapability & H245_ArrayOf_MediaDistributionCapability::operator[](PINDEX i) const
  14594. {
  14595.   return (H245_MediaDistributionCapability &)array[i];
  14596. }
  14597.  
  14598.  
  14599. PObject * H245_ArrayOf_MediaDistributionCapability::Clone() const
  14600. {
  14601. #ifndef PASN_LEANANDMEAN
  14602.   PAssert(IsClass(H245_ArrayOf_MediaDistributionCapability::Class()), PInvalidCast);
  14603. #endif
  14604.   return new H245_ArrayOf_MediaDistributionCapability(*this);
  14605. }
  14606.  
  14607.  
  14608. //
  14609. // ArrayOf_DataApplicationCapability
  14610. //
  14611.  
  14612. H245_ArrayOf_DataApplicationCapability::H245_ArrayOf_DataApplicationCapability(unsigned tag, PASN_Object::TagClass tagClass)
  14613.   : PASN_Array(tag, tagClass)
  14614. {
  14615. }
  14616.  
  14617.  
  14618. PASN_Object * H245_ArrayOf_DataApplicationCapability::CreateObject() const
  14619. {
  14620.   return new H245_DataApplicationCapability;
  14621. }
  14622.  
  14623.  
  14624. H245_DataApplicationCapability & H245_ArrayOf_DataApplicationCapability::operator[](PINDEX i) const
  14625. {
  14626.   return (H245_DataApplicationCapability &)array[i];
  14627. }
  14628.  
  14629.  
  14630. PObject * H245_ArrayOf_DataApplicationCapability::Clone() const
  14631. {
  14632. #ifndef PASN_LEANANDMEAN
  14633.   PAssert(IsClass(H245_ArrayOf_DataApplicationCapability::Class()), PInvalidCast);
  14634. #endif
  14635.   return new H245_ArrayOf_DataApplicationCapability(*this);
  14636. }
  14637.  
  14638.  
  14639. //
  14640. // ArrayOf_EnhancementOptions
  14641. //
  14642.  
  14643. H245_ArrayOf_EnhancementOptions::H245_ArrayOf_EnhancementOptions(unsigned tag, PASN_Object::TagClass tagClass)
  14644.   : PASN_Array(tag, tagClass)
  14645. {
  14646. }
  14647.  
  14648.  
  14649. PASN_Object * H245_ArrayOf_EnhancementOptions::CreateObject() const
  14650. {
  14651.   return new H245_EnhancementOptions;
  14652. }
  14653.  
  14654.  
  14655. H245_EnhancementOptions & H245_ArrayOf_EnhancementOptions::operator[](PINDEX i) const
  14656. {
  14657.   return (H245_EnhancementOptions &)array[i];
  14658. }
  14659.  
  14660.  
  14661. PObject * H245_ArrayOf_EnhancementOptions::Clone() const
  14662. {
  14663. #ifndef PASN_LEANANDMEAN
  14664.   PAssert(IsClass(H245_ArrayOf_EnhancementOptions::Class()), PInvalidCast);
  14665. #endif
  14666.   return new H245_ArrayOf_EnhancementOptions(*this);
  14667. }
  14668.  
  14669.  
  14670. //
  14671. // ArrayOf_BEnhancementParameters
  14672. //
  14673.  
  14674. H245_ArrayOf_BEnhancementParameters::H245_ArrayOf_BEnhancementParameters(unsigned tag, PASN_Object::TagClass tagClass)
  14675.   : PASN_Array(tag, tagClass)
  14676. {
  14677. }
  14678.  
  14679.  
  14680. PASN_Object * H245_ArrayOf_BEnhancementParameters::CreateObject() const
  14681. {
  14682.   return new H245_BEnhancementParameters;
  14683. }
  14684.  
  14685.  
  14686. H245_BEnhancementParameters & H245_ArrayOf_BEnhancementParameters::operator[](PINDEX i) const
  14687. {
  14688.   return (H245_BEnhancementParameters &)array[i];
  14689. }
  14690.  
  14691.  
  14692. PObject * H245_ArrayOf_BEnhancementParameters::Clone() const
  14693. {
  14694. #ifndef PASN_LEANANDMEAN
  14695.   PAssert(IsClass(H245_ArrayOf_BEnhancementParameters::Class()), PInvalidCast);
  14696. #endif
  14697.   return new H245_ArrayOf_BEnhancementParameters(*this);
  14698. }
  14699.  
  14700.  
  14701. //
  14702. // ArrayOf_CustomPictureClockFrequency
  14703. //
  14704.  
  14705. H245_ArrayOf_CustomPictureClockFrequency::H245_ArrayOf_CustomPictureClockFrequency(unsigned tag, PASN_Object::TagClass tagClass)
  14706.   : PASN_Array(tag, tagClass)
  14707. {
  14708. }
  14709.  
  14710.  
  14711. PASN_Object * H245_ArrayOf_CustomPictureClockFrequency::CreateObject() const
  14712. {
  14713.   return new H245_CustomPictureClockFrequency;
  14714. }
  14715.  
  14716.  
  14717. H245_CustomPictureClockFrequency & H245_ArrayOf_CustomPictureClockFrequency::operator[](PINDEX i) const
  14718. {
  14719.   return (H245_CustomPictureClockFrequency &)array[i];
  14720. }
  14721.  
  14722.  
  14723. PObject * H245_ArrayOf_CustomPictureClockFrequency::Clone() const
  14724. {
  14725. #ifndef PASN_LEANANDMEAN
  14726.   PAssert(IsClass(H245_ArrayOf_CustomPictureClockFrequency::Class()), PInvalidCast);
  14727. #endif
  14728.   return new H245_ArrayOf_CustomPictureClockFrequency(*this);
  14729. }
  14730.  
  14731.  
  14732. //
  14733. // ArrayOf_CustomPictureFormat
  14734. //
  14735.  
  14736. H245_ArrayOf_CustomPictureFormat::H245_ArrayOf_CustomPictureFormat(unsigned tag, PASN_Object::TagClass tagClass)
  14737.   : PASN_Array(tag, tagClass)
  14738. {
  14739. }
  14740.  
  14741.  
  14742. PASN_Object * H245_ArrayOf_CustomPictureFormat::CreateObject() const
  14743. {
  14744.   return new H245_CustomPictureFormat;
  14745. }
  14746.  
  14747.  
  14748. H245_CustomPictureFormat & H245_ArrayOf_CustomPictureFormat::operator[](PINDEX i) const
  14749. {
  14750.   return (H245_CustomPictureFormat &)array[i];
  14751. }
  14752.  
  14753.  
  14754. PObject * H245_ArrayOf_CustomPictureFormat::Clone() const
  14755. {
  14756. #ifndef PASN_LEANANDMEAN
  14757.   PAssert(IsClass(H245_ArrayOf_CustomPictureFormat::Class()), PInvalidCast);
  14758. #endif
  14759.   return new H245_ArrayOf_CustomPictureFormat(*this);
  14760. }
  14761.  
  14762.  
  14763. #endif // if ! H323_DISABLE_H245
  14764.  
  14765.  
  14766. // End of h245_1.cxx
  14767.