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_2.cxx < prev    next >
C/C++ Source or Header  |  2004-06-22  |  257KB  |  9,469 lines

  1. //
  2. // h245_2.cxx
  3. //
  4. // Code automatically generated by asnparse.
  5. //
  6.  
  7. #include <ptlib.h>
  8. #include "h245.h"
  9.  
  10. #define new PNEW
  11.  
  12.  
  13. #if ! H323_DISABLE_H245
  14.  
  15. //
  16. // ArrayOf_H263VideoModeCombos
  17. //
  18.  
  19. H245_ArrayOf_H263VideoModeCombos::H245_ArrayOf_H263VideoModeCombos(unsigned tag, PASN_Object::TagClass tagClass)
  20.   : PASN_Array(tag, tagClass)
  21. {
  22. }
  23.  
  24.  
  25. PASN_Object * H245_ArrayOf_H263VideoModeCombos::CreateObject() const
  26. {
  27.   return new H245_H263VideoModeCombos;
  28. }
  29.  
  30.  
  31. H245_H263VideoModeCombos & H245_ArrayOf_H263VideoModeCombos::operator[](PINDEX i) const
  32. {
  33.   return (H245_H263VideoModeCombos &)array[i];
  34. }
  35.  
  36.  
  37. PObject * H245_ArrayOf_H263VideoModeCombos::Clone() const
  38. {
  39. #ifndef PASN_LEANANDMEAN
  40.   PAssert(IsClass(H245_ArrayOf_H263VideoModeCombos::Class()), PInvalidCast);
  41. #endif
  42.   return new H245_ArrayOf_H263VideoModeCombos(*this);
  43. }
  44.  
  45.  
  46. //
  47. // RefPictureSelection_additionalPictureMemory
  48. //
  49.  
  50. H245_RefPictureSelection_additionalPictureMemory::H245_RefPictureSelection_additionalPictureMemory(unsigned tag, PASN_Object::TagClass tagClass)
  51.   : PASN_Sequence(tag, tagClass, 6, TRUE, 0)
  52. {
  53.   m_sqcifAdditionalPictureMemory.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  54.   m_qcifAdditionalPictureMemory.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  55.   m_cifAdditionalPictureMemory.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  56.   m_cif4AdditionalPictureMemory.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  57.   m_cif16AdditionalPictureMemory.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  58.   m_bigCpfAdditionalPictureMemory.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  59. }
  60.  
  61.  
  62. #ifndef PASN_NOPRINTON
  63. void H245_RefPictureSelection_additionalPictureMemory::PrintOn(ostream & strm) const
  64. {
  65.   int indent = strm.precision() + 2;
  66.   strm << "{\n";
  67.   if (HasOptionalField(e_sqcifAdditionalPictureMemory))
  68.     strm << setw(indent+31) << "sqcifAdditionalPictureMemory = " << setprecision(indent) << m_sqcifAdditionalPictureMemory << '\n';
  69.   if (HasOptionalField(e_qcifAdditionalPictureMemory))
  70.     strm << setw(indent+30) << "qcifAdditionalPictureMemory = " << setprecision(indent) << m_qcifAdditionalPictureMemory << '\n';
  71.   if (HasOptionalField(e_cifAdditionalPictureMemory))
  72.     strm << setw(indent+29) << "cifAdditionalPictureMemory = " << setprecision(indent) << m_cifAdditionalPictureMemory << '\n';
  73.   if (HasOptionalField(e_cif4AdditionalPictureMemory))
  74.     strm << setw(indent+30) << "cif4AdditionalPictureMemory = " << setprecision(indent) << m_cif4AdditionalPictureMemory << '\n';
  75.   if (HasOptionalField(e_cif16AdditionalPictureMemory))
  76.     strm << setw(indent+31) << "cif16AdditionalPictureMemory = " << setprecision(indent) << m_cif16AdditionalPictureMemory << '\n';
  77.   if (HasOptionalField(e_bigCpfAdditionalPictureMemory))
  78.     strm << setw(indent+32) << "bigCpfAdditionalPictureMemory = " << setprecision(indent) << m_bigCpfAdditionalPictureMemory << '\n';
  79.   strm << setw(indent-1) << "}";
  80. }
  81. #endif
  82.  
  83.  
  84. PObject::Comparison H245_RefPictureSelection_additionalPictureMemory::Compare(const PObject & obj) const
  85. {
  86. #ifndef PASN_LEANANDMEAN
  87.   PAssert(IsDescendant(H245_RefPictureSelection_additionalPictureMemory::Class()), PInvalidCast);
  88. #endif
  89.   const H245_RefPictureSelection_additionalPictureMemory & other = (const H245_RefPictureSelection_additionalPictureMemory &)obj;
  90.  
  91.   Comparison result;
  92.  
  93.   if ((result = m_sqcifAdditionalPictureMemory.Compare(other.m_sqcifAdditionalPictureMemory)) != EqualTo)
  94.     return result;
  95.   if ((result = m_qcifAdditionalPictureMemory.Compare(other.m_qcifAdditionalPictureMemory)) != EqualTo)
  96.     return result;
  97.   if ((result = m_cifAdditionalPictureMemory.Compare(other.m_cifAdditionalPictureMemory)) != EqualTo)
  98.     return result;
  99.   if ((result = m_cif4AdditionalPictureMemory.Compare(other.m_cif4AdditionalPictureMemory)) != EqualTo)
  100.     return result;
  101.   if ((result = m_cif16AdditionalPictureMemory.Compare(other.m_cif16AdditionalPictureMemory)) != EqualTo)
  102.     return result;
  103.   if ((result = m_bigCpfAdditionalPictureMemory.Compare(other.m_bigCpfAdditionalPictureMemory)) != EqualTo)
  104.     return result;
  105.  
  106.   return PASN_Sequence::Compare(other);
  107. }
  108.  
  109.  
  110. PINDEX H245_RefPictureSelection_additionalPictureMemory::GetDataLength() const
  111. {
  112.   PINDEX length = 0;
  113.   if (HasOptionalField(e_sqcifAdditionalPictureMemory))
  114.     length += m_sqcifAdditionalPictureMemory.GetObjectLength();
  115.   if (HasOptionalField(e_qcifAdditionalPictureMemory))
  116.     length += m_qcifAdditionalPictureMemory.GetObjectLength();
  117.   if (HasOptionalField(e_cifAdditionalPictureMemory))
  118.     length += m_cifAdditionalPictureMemory.GetObjectLength();
  119.   if (HasOptionalField(e_cif4AdditionalPictureMemory))
  120.     length += m_cif4AdditionalPictureMemory.GetObjectLength();
  121.   if (HasOptionalField(e_cif16AdditionalPictureMemory))
  122.     length += m_cif16AdditionalPictureMemory.GetObjectLength();
  123.   if (HasOptionalField(e_bigCpfAdditionalPictureMemory))
  124.     length += m_bigCpfAdditionalPictureMemory.GetObjectLength();
  125.   return length;
  126. }
  127.  
  128.  
  129. BOOL H245_RefPictureSelection_additionalPictureMemory::Decode(PASN_Stream & strm)
  130. {
  131.   if (!PreambleDecode(strm))
  132.     return FALSE;
  133.  
  134.   if (HasOptionalField(e_sqcifAdditionalPictureMemory) && !m_sqcifAdditionalPictureMemory.Decode(strm))
  135.     return FALSE;
  136.   if (HasOptionalField(e_qcifAdditionalPictureMemory) && !m_qcifAdditionalPictureMemory.Decode(strm))
  137.     return FALSE;
  138.   if (HasOptionalField(e_cifAdditionalPictureMemory) && !m_cifAdditionalPictureMemory.Decode(strm))
  139.     return FALSE;
  140.   if (HasOptionalField(e_cif4AdditionalPictureMemory) && !m_cif4AdditionalPictureMemory.Decode(strm))
  141.     return FALSE;
  142.   if (HasOptionalField(e_cif16AdditionalPictureMemory) && !m_cif16AdditionalPictureMemory.Decode(strm))
  143.     return FALSE;
  144.   if (HasOptionalField(e_bigCpfAdditionalPictureMemory) && !m_bigCpfAdditionalPictureMemory.Decode(strm))
  145.     return FALSE;
  146.  
  147.   return UnknownExtensionsDecode(strm);
  148. }
  149.  
  150.  
  151. void H245_RefPictureSelection_additionalPictureMemory::Encode(PASN_Stream & strm) const
  152. {
  153.   PreambleEncode(strm);
  154.  
  155.   if (HasOptionalField(e_sqcifAdditionalPictureMemory))
  156.     m_sqcifAdditionalPictureMemory.Encode(strm);
  157.   if (HasOptionalField(e_qcifAdditionalPictureMemory))
  158.     m_qcifAdditionalPictureMemory.Encode(strm);
  159.   if (HasOptionalField(e_cifAdditionalPictureMemory))
  160.     m_cifAdditionalPictureMemory.Encode(strm);
  161.   if (HasOptionalField(e_cif4AdditionalPictureMemory))
  162.     m_cif4AdditionalPictureMemory.Encode(strm);
  163.   if (HasOptionalField(e_cif16AdditionalPictureMemory))
  164.     m_cif16AdditionalPictureMemory.Encode(strm);
  165.   if (HasOptionalField(e_bigCpfAdditionalPictureMemory))
  166.     m_bigCpfAdditionalPictureMemory.Encode(strm);
  167.  
  168.   UnknownExtensionsEncode(strm);
  169. }
  170.  
  171.  
  172. PObject * H245_RefPictureSelection_additionalPictureMemory::Clone() const
  173. {
  174. #ifndef PASN_LEANANDMEAN
  175.   PAssert(IsClass(H245_RefPictureSelection_additionalPictureMemory::Class()), PInvalidCast);
  176. #endif
  177.   return new H245_RefPictureSelection_additionalPictureMemory(*this);
  178. }
  179.  
  180.  
  181. //
  182. // RefPictureSelection_videoBackChannelSend
  183. //
  184.  
  185. H245_RefPictureSelection_videoBackChannelSend::H245_RefPictureSelection_videoBackChannelSend(unsigned tag, PASN_Object::TagClass tagClass)
  186.   : PASN_Choice(tag, tagClass, 5, TRUE
  187. #ifndef PASN_NOPRINTON
  188.       , "none "
  189.         "ackMessageOnly "
  190.         "nackMessageOnly "
  191.         "ackOrNackMessageOnly "
  192.         "ackAndNackMessage "
  193. #endif
  194.     )
  195. {
  196. }
  197.  
  198.  
  199. BOOL H245_RefPictureSelection_videoBackChannelSend::CreateObject()
  200. {
  201.   choice = (tag <= e_ackAndNackMessage) ? new PASN_Null() : NULL;
  202.   return choice != NULL;
  203. }
  204.  
  205.  
  206. PObject * H245_RefPictureSelection_videoBackChannelSend::Clone() const
  207. {
  208. #ifndef PASN_LEANANDMEAN
  209.   PAssert(IsClass(H245_RefPictureSelection_videoBackChannelSend::Class()), PInvalidCast);
  210. #endif
  211.   return new H245_RefPictureSelection_videoBackChannelSend(*this);
  212. }
  213.  
  214.  
  215. //
  216. // CustomPictureFormat_pixelAspectInformation
  217. //
  218.  
  219. H245_CustomPictureFormat_pixelAspectInformation::H245_CustomPictureFormat_pixelAspectInformation(unsigned tag, PASN_Object::TagClass tagClass)
  220.   : PASN_Choice(tag, tagClass, 3, TRUE
  221. #ifndef PASN_NOPRINTON
  222.       , "anyPixelAspectRatio "
  223.         "pixelAspectCode "
  224.         "extendedPAR "
  225. #endif
  226.     )
  227. {
  228. }
  229.  
  230.  
  231. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  232. H245_CustomPictureFormat_pixelAspectInformation::operator H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode &() const
  233. #else
  234. H245_CustomPictureFormat_pixelAspectInformation::operator H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode &()
  235. {
  236. #ifndef PASN_LEANANDMEAN
  237.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode::Class()), PInvalidCast);
  238. #endif
  239.   return *(H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode *)choice;
  240. }
  241.  
  242.  
  243. H245_CustomPictureFormat_pixelAspectInformation::operator const H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode &() const
  244. #endif
  245. {
  246. #ifndef PASN_LEANANDMEAN
  247.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode::Class()), PInvalidCast);
  248. #endif
  249.   return *(H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode *)choice;
  250. }
  251.  
  252.  
  253. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  254. H245_CustomPictureFormat_pixelAspectInformation::operator H245_CustomPictureFormat_pixelAspectInformation_extendedPAR &() const
  255. #else
  256. H245_CustomPictureFormat_pixelAspectInformation::operator H245_CustomPictureFormat_pixelAspectInformation_extendedPAR &()
  257. {
  258. #ifndef PASN_LEANANDMEAN
  259.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CustomPictureFormat_pixelAspectInformation_extendedPAR::Class()), PInvalidCast);
  260. #endif
  261.   return *(H245_CustomPictureFormat_pixelAspectInformation_extendedPAR *)choice;
  262. }
  263.  
  264.  
  265. H245_CustomPictureFormat_pixelAspectInformation::operator const H245_CustomPictureFormat_pixelAspectInformation_extendedPAR &() const
  266. #endif
  267. {
  268. #ifndef PASN_LEANANDMEAN
  269.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CustomPictureFormat_pixelAspectInformation_extendedPAR::Class()), PInvalidCast);
  270. #endif
  271.   return *(H245_CustomPictureFormat_pixelAspectInformation_extendedPAR *)choice;
  272. }
  273.  
  274.  
  275. BOOL H245_CustomPictureFormat_pixelAspectInformation::CreateObject()
  276. {
  277.   switch (tag) {
  278.     case e_anyPixelAspectRatio :
  279.       choice = new PASN_Boolean();
  280.       return TRUE;
  281.     case e_pixelAspectCode :
  282.       choice = new H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode();
  283.       return TRUE;
  284.     case e_extendedPAR :
  285.       choice = new H245_CustomPictureFormat_pixelAspectInformation_extendedPAR();
  286.       return TRUE;
  287.   }
  288.  
  289.   choice = NULL;
  290.   return FALSE;
  291. }
  292.  
  293.  
  294. PObject * H245_CustomPictureFormat_pixelAspectInformation::Clone() const
  295. {
  296. #ifndef PASN_LEANANDMEAN
  297.   PAssert(IsClass(H245_CustomPictureFormat_pixelAspectInformation::Class()), PInvalidCast);
  298. #endif
  299.   return new H245_CustomPictureFormat_pixelAspectInformation(*this);
  300. }
  301.  
  302.  
  303. //
  304. // ArrayOf_H263ModeComboFlags
  305. //
  306.  
  307. H245_ArrayOf_H263ModeComboFlags::H245_ArrayOf_H263ModeComboFlags(unsigned tag, PASN_Object::TagClass tagClass)
  308.   : PASN_Array(tag, tagClass)
  309. {
  310. }
  311.  
  312.  
  313. PASN_Object * H245_ArrayOf_H263ModeComboFlags::CreateObject() const
  314. {
  315.   return new H245_H263ModeComboFlags;
  316. }
  317.  
  318.  
  319. H245_H263ModeComboFlags & H245_ArrayOf_H263ModeComboFlags::operator[](PINDEX i) const
  320. {
  321.   return (H245_H263ModeComboFlags &)array[i];
  322. }
  323.  
  324.  
  325. PObject * H245_ArrayOf_H263ModeComboFlags::Clone() const
  326. {
  327. #ifndef PASN_LEANANDMEAN
  328.   PAssert(IsClass(H245_ArrayOf_H263ModeComboFlags::Class()), PInvalidCast);
  329. #endif
  330.   return new H245_ArrayOf_H263ModeComboFlags(*this);
  331. }
  332.  
  333.  
  334. //
  335. // AudioCapability_g7231
  336. //
  337.  
  338. H245_AudioCapability_g7231::H245_AudioCapability_g7231(unsigned tag, PASN_Object::TagClass tagClass)
  339.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  340. {
  341.   m_maxAl_sduAudioFrames.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  342. }
  343.  
  344.  
  345. #ifndef PASN_NOPRINTON
  346. void H245_AudioCapability_g7231::PrintOn(ostream & strm) const
  347. {
  348.   int indent = strm.precision() + 2;
  349.   strm << "{\n";
  350.   strm << setw(indent+23) << "maxAl_sduAudioFrames = " << setprecision(indent) << m_maxAl_sduAudioFrames << '\n';
  351.   strm << setw(indent+21) << "silenceSuppression = " << setprecision(indent) << m_silenceSuppression << '\n';
  352.   strm << setw(indent-1) << "}";
  353. }
  354. #endif
  355.  
  356.  
  357. PObject::Comparison H245_AudioCapability_g7231::Compare(const PObject & obj) const
  358. {
  359. #ifndef PASN_LEANANDMEAN
  360.   PAssert(IsDescendant(H245_AudioCapability_g7231::Class()), PInvalidCast);
  361. #endif
  362.   const H245_AudioCapability_g7231 & other = (const H245_AudioCapability_g7231 &)obj;
  363.  
  364.   Comparison result;
  365.  
  366.   if ((result = m_maxAl_sduAudioFrames.Compare(other.m_maxAl_sduAudioFrames)) != EqualTo)
  367.     return result;
  368.   if ((result = m_silenceSuppression.Compare(other.m_silenceSuppression)) != EqualTo)
  369.     return result;
  370.  
  371.   return PASN_Sequence::Compare(other);
  372. }
  373.  
  374.  
  375. PINDEX H245_AudioCapability_g7231::GetDataLength() const
  376. {
  377.   PINDEX length = 0;
  378.   length += m_maxAl_sduAudioFrames.GetObjectLength();
  379.   length += m_silenceSuppression.GetObjectLength();
  380.   return length;
  381. }
  382.  
  383.  
  384. BOOL H245_AudioCapability_g7231::Decode(PASN_Stream & strm)
  385. {
  386.   if (!PreambleDecode(strm))
  387.     return FALSE;
  388.  
  389.   if (!m_maxAl_sduAudioFrames.Decode(strm))
  390.     return FALSE;
  391.   if (!m_silenceSuppression.Decode(strm))
  392.     return FALSE;
  393.  
  394.   return UnknownExtensionsDecode(strm);
  395. }
  396.  
  397.  
  398. void H245_AudioCapability_g7231::Encode(PASN_Stream & strm) const
  399. {
  400.   PreambleEncode(strm);
  401.  
  402.   m_maxAl_sduAudioFrames.Encode(strm);
  403.   m_silenceSuppression.Encode(strm);
  404.  
  405.   UnknownExtensionsEncode(strm);
  406. }
  407.  
  408.  
  409. PObject * H245_AudioCapability_g7231::Clone() const
  410. {
  411. #ifndef PASN_LEANANDMEAN
  412.   PAssert(IsClass(H245_AudioCapability_g7231::Class()), PInvalidCast);
  413. #endif
  414.   return new H245_AudioCapability_g7231(*this);
  415. }
  416.  
  417.  
  418. //
  419. // G7231AnnexCCapability_g723AnnexCAudioMode
  420. //
  421.  
  422. H245_G7231AnnexCCapability_g723AnnexCAudioMode::H245_G7231AnnexCCapability_g723AnnexCAudioMode(unsigned tag, PASN_Object::TagClass tagClass)
  423.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  424. {
  425.   m_highRateMode0.SetConstraints(PASN_Object::FixedConstraint, 27, 78);
  426.   m_highRateMode1.SetConstraints(PASN_Object::FixedConstraint, 27, 78);
  427.   m_lowRateMode0.SetConstraints(PASN_Object::FixedConstraint, 23, 66);
  428.   m_lowRateMode1.SetConstraints(PASN_Object::FixedConstraint, 23, 66);
  429.   m_sidMode0.SetConstraints(PASN_Object::FixedConstraint, 6, 17);
  430.   m_sidMode1.SetConstraints(PASN_Object::FixedConstraint, 6, 17);
  431. }
  432.  
  433.  
  434. #ifndef PASN_NOPRINTON
  435. void H245_G7231AnnexCCapability_g723AnnexCAudioMode::PrintOn(ostream & strm) const
  436. {
  437.   int indent = strm.precision() + 2;
  438.   strm << "{\n";
  439.   strm << setw(indent+16) << "highRateMode0 = " << setprecision(indent) << m_highRateMode0 << '\n';
  440.   strm << setw(indent+16) << "highRateMode1 = " << setprecision(indent) << m_highRateMode1 << '\n';
  441.   strm << setw(indent+15) << "lowRateMode0 = " << setprecision(indent) << m_lowRateMode0 << '\n';
  442.   strm << setw(indent+15) << "lowRateMode1 = " << setprecision(indent) << m_lowRateMode1 << '\n';
  443.   strm << setw(indent+11) << "sidMode0 = " << setprecision(indent) << m_sidMode0 << '\n';
  444.   strm << setw(indent+11) << "sidMode1 = " << setprecision(indent) << m_sidMode1 << '\n';
  445.   strm << setw(indent-1) << "}";
  446. }
  447. #endif
  448.  
  449.  
  450. PObject::Comparison H245_G7231AnnexCCapability_g723AnnexCAudioMode::Compare(const PObject & obj) const
  451. {
  452. #ifndef PASN_LEANANDMEAN
  453.   PAssert(IsDescendant(H245_G7231AnnexCCapability_g723AnnexCAudioMode::Class()), PInvalidCast);
  454. #endif
  455.   const H245_G7231AnnexCCapability_g723AnnexCAudioMode & other = (const H245_G7231AnnexCCapability_g723AnnexCAudioMode &)obj;
  456.  
  457.   Comparison result;
  458.  
  459.   if ((result = m_highRateMode0.Compare(other.m_highRateMode0)) != EqualTo)
  460.     return result;
  461.   if ((result = m_highRateMode1.Compare(other.m_highRateMode1)) != EqualTo)
  462.     return result;
  463.   if ((result = m_lowRateMode0.Compare(other.m_lowRateMode0)) != EqualTo)
  464.     return result;
  465.   if ((result = m_lowRateMode1.Compare(other.m_lowRateMode1)) != EqualTo)
  466.     return result;
  467.   if ((result = m_sidMode0.Compare(other.m_sidMode0)) != EqualTo)
  468.     return result;
  469.   if ((result = m_sidMode1.Compare(other.m_sidMode1)) != EqualTo)
  470.     return result;
  471.  
  472.   return PASN_Sequence::Compare(other);
  473. }
  474.  
  475.  
  476. PINDEX H245_G7231AnnexCCapability_g723AnnexCAudioMode::GetDataLength() const
  477. {
  478.   PINDEX length = 0;
  479.   length += m_highRateMode0.GetObjectLength();
  480.   length += m_highRateMode1.GetObjectLength();
  481.   length += m_lowRateMode0.GetObjectLength();
  482.   length += m_lowRateMode1.GetObjectLength();
  483.   length += m_sidMode0.GetObjectLength();
  484.   length += m_sidMode1.GetObjectLength();
  485.   return length;
  486. }
  487.  
  488.  
  489. BOOL H245_G7231AnnexCCapability_g723AnnexCAudioMode::Decode(PASN_Stream & strm)
  490. {
  491.   if (!PreambleDecode(strm))
  492.     return FALSE;
  493.  
  494.   if (!m_highRateMode0.Decode(strm))
  495.     return FALSE;
  496.   if (!m_highRateMode1.Decode(strm))
  497.     return FALSE;
  498.   if (!m_lowRateMode0.Decode(strm))
  499.     return FALSE;
  500.   if (!m_lowRateMode1.Decode(strm))
  501.     return FALSE;
  502.   if (!m_sidMode0.Decode(strm))
  503.     return FALSE;
  504.   if (!m_sidMode1.Decode(strm))
  505.     return FALSE;
  506.  
  507.   return UnknownExtensionsDecode(strm);
  508. }
  509.  
  510.  
  511. void H245_G7231AnnexCCapability_g723AnnexCAudioMode::Encode(PASN_Stream & strm) const
  512. {
  513.   PreambleEncode(strm);
  514.  
  515.   m_highRateMode0.Encode(strm);
  516.   m_highRateMode1.Encode(strm);
  517.   m_lowRateMode0.Encode(strm);
  518.   m_lowRateMode1.Encode(strm);
  519.   m_sidMode0.Encode(strm);
  520.   m_sidMode1.Encode(strm);
  521.  
  522.   UnknownExtensionsEncode(strm);
  523. }
  524.  
  525.  
  526. PObject * H245_G7231AnnexCCapability_g723AnnexCAudioMode::Clone() const
  527. {
  528. #ifndef PASN_LEANANDMEAN
  529.   PAssert(IsClass(H245_G7231AnnexCCapability_g723AnnexCAudioMode::Class()), PInvalidCast);
  530. #endif
  531.   return new H245_G7231AnnexCCapability_g723AnnexCAudioMode(*this);
  532. }
  533.  
  534.  
  535. //
  536. // DataApplicationCapability_application
  537. //
  538.  
  539. H245_DataApplicationCapability_application::H245_DataApplicationCapability_application(unsigned tag, PASN_Object::TagClass tagClass)
  540.   : PASN_Choice(tag, tagClass, 10, TRUE
  541. #ifndef PASN_NOPRINTON
  542.       , "nonStandard "
  543.         "t120 "
  544.         "dsm_cc "
  545.         "userData "
  546.         "t84 "
  547.         "t434 "
  548.         "h224 "
  549.         "nlpid "
  550.         "dsvdControl "
  551.         "h222DataPartitioning "
  552.         "t30fax "
  553.         "t140 "
  554.         "t38fax "
  555.         "genericDataCapability "
  556. #endif
  557.     )
  558. {
  559. }
  560.  
  561.  
  562. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  563. H245_DataApplicationCapability_application::operator H245_NonStandardParameter &() const
  564. #else
  565. H245_DataApplicationCapability_application::operator H245_NonStandardParameter &()
  566. {
  567. #ifndef PASN_LEANANDMEAN
  568.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  569. #endif
  570.   return *(H245_NonStandardParameter *)choice;
  571. }
  572.  
  573.  
  574. H245_DataApplicationCapability_application::operator const H245_NonStandardParameter &() const
  575. #endif
  576. {
  577. #ifndef PASN_LEANANDMEAN
  578.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  579. #endif
  580.   return *(H245_NonStandardParameter *)choice;
  581. }
  582.  
  583.  
  584. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  585. H245_DataApplicationCapability_application::operator H245_DataProtocolCapability &() const
  586. #else
  587. H245_DataApplicationCapability_application::operator H245_DataProtocolCapability &()
  588. {
  589. #ifndef PASN_LEANANDMEAN
  590.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataProtocolCapability::Class()), PInvalidCast);
  591. #endif
  592.   return *(H245_DataProtocolCapability *)choice;
  593. }
  594.  
  595.  
  596. H245_DataApplicationCapability_application::operator const H245_DataProtocolCapability &() const
  597. #endif
  598. {
  599. #ifndef PASN_LEANANDMEAN
  600.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataProtocolCapability::Class()), PInvalidCast);
  601. #endif
  602.   return *(H245_DataProtocolCapability *)choice;
  603. }
  604.  
  605.  
  606. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  607. H245_DataApplicationCapability_application::operator H245_DataApplicationCapability_application_t84 &() const
  608. #else
  609. H245_DataApplicationCapability_application::operator H245_DataApplicationCapability_application_t84 &()
  610. {
  611. #ifndef PASN_LEANANDMEAN
  612.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability_application_t84::Class()), PInvalidCast);
  613. #endif
  614.   return *(H245_DataApplicationCapability_application_t84 *)choice;
  615. }
  616.  
  617.  
  618. H245_DataApplicationCapability_application::operator const H245_DataApplicationCapability_application_t84 &() const
  619. #endif
  620. {
  621. #ifndef PASN_LEANANDMEAN
  622.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability_application_t84::Class()), PInvalidCast);
  623. #endif
  624.   return *(H245_DataApplicationCapability_application_t84 *)choice;
  625. }
  626.  
  627.  
  628. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  629. H245_DataApplicationCapability_application::operator H245_DataApplicationCapability_application_nlpid &() const
  630. #else
  631. H245_DataApplicationCapability_application::operator H245_DataApplicationCapability_application_nlpid &()
  632. {
  633. #ifndef PASN_LEANANDMEAN
  634.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability_application_nlpid::Class()), PInvalidCast);
  635. #endif
  636.   return *(H245_DataApplicationCapability_application_nlpid *)choice;
  637. }
  638.  
  639.  
  640. H245_DataApplicationCapability_application::operator const H245_DataApplicationCapability_application_nlpid &() const
  641. #endif
  642. {
  643. #ifndef PASN_LEANANDMEAN
  644.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability_application_nlpid::Class()), PInvalidCast);
  645. #endif
  646.   return *(H245_DataApplicationCapability_application_nlpid *)choice;
  647. }
  648.  
  649.  
  650. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  651. H245_DataApplicationCapability_application::operator H245_DataApplicationCapability_application_t38fax &() const
  652. #else
  653. H245_DataApplicationCapability_application::operator H245_DataApplicationCapability_application_t38fax &()
  654. {
  655. #ifndef PASN_LEANANDMEAN
  656.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability_application_t38fax::Class()), PInvalidCast);
  657. #endif
  658.   return *(H245_DataApplicationCapability_application_t38fax *)choice;
  659. }
  660.  
  661.  
  662. H245_DataApplicationCapability_application::operator const H245_DataApplicationCapability_application_t38fax &() const
  663. #endif
  664. {
  665. #ifndef PASN_LEANANDMEAN
  666.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability_application_t38fax::Class()), PInvalidCast);
  667. #endif
  668.   return *(H245_DataApplicationCapability_application_t38fax *)choice;
  669. }
  670.  
  671.  
  672. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  673. H245_DataApplicationCapability_application::operator H245_GenericCapability &() const
  674. #else
  675. H245_DataApplicationCapability_application::operator H245_GenericCapability &()
  676. {
  677. #ifndef PASN_LEANANDMEAN
  678.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  679. #endif
  680.   return *(H245_GenericCapability *)choice;
  681. }
  682.  
  683.  
  684. H245_DataApplicationCapability_application::operator const H245_GenericCapability &() const
  685. #endif
  686. {
  687. #ifndef PASN_LEANANDMEAN
  688.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  689. #endif
  690.   return *(H245_GenericCapability *)choice;
  691. }
  692.  
  693.  
  694. BOOL H245_DataApplicationCapability_application::CreateObject()
  695. {
  696.   switch (tag) {
  697.     case e_nonStandard :
  698.       choice = new H245_NonStandardParameter();
  699.       return TRUE;
  700.     case e_t120 :
  701.     case e_dsm_cc :
  702.     case e_userData :
  703.     case e_t434 :
  704.     case e_h224 :
  705.     case e_h222DataPartitioning :
  706.     case e_t30fax :
  707.     case e_t140 :
  708.       choice = new H245_DataProtocolCapability();
  709.       return TRUE;
  710.     case e_t84 :
  711.       choice = new H245_DataApplicationCapability_application_t84();
  712.       return TRUE;
  713.     case e_nlpid :
  714.       choice = new H245_DataApplicationCapability_application_nlpid();
  715.       return TRUE;
  716.     case e_dsvdControl :
  717.       choice = new PASN_Null();
  718.       return TRUE;
  719.     case e_t38fax :
  720.       choice = new H245_DataApplicationCapability_application_t38fax();
  721.       return TRUE;
  722.     case e_genericDataCapability :
  723.       choice = new H245_GenericCapability();
  724.       return TRUE;
  725.   }
  726.  
  727.   choice = NULL;
  728.   return FALSE;
  729. }
  730.  
  731.  
  732. PObject * H245_DataApplicationCapability_application::Clone() const
  733. {
  734. #ifndef PASN_LEANANDMEAN
  735.   PAssert(IsClass(H245_DataApplicationCapability_application::Class()), PInvalidCast);
  736. #endif
  737.   return new H245_DataApplicationCapability_application(*this);
  738. }
  739.  
  740.  
  741. //
  742. // DataProtocolCapability_v76wCompression
  743. //
  744.  
  745. H245_DataProtocolCapability_v76wCompression::H245_DataProtocolCapability_v76wCompression(unsigned tag, PASN_Object::TagClass tagClass)
  746.   : PASN_Choice(tag, tagClass, 3, TRUE
  747. #ifndef PASN_NOPRINTON
  748.       , "transmitCompression "
  749.         "receiveCompression "
  750.         "transmitAndReceiveCompression "
  751. #endif
  752.     )
  753. {
  754. }
  755.  
  756.  
  757. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  758. H245_DataProtocolCapability_v76wCompression::operator H245_CompressionType &() const
  759. #else
  760. H245_DataProtocolCapability_v76wCompression::operator H245_CompressionType &()
  761. {
  762. #ifndef PASN_LEANANDMEAN
  763.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CompressionType::Class()), PInvalidCast);
  764. #endif
  765.   return *(H245_CompressionType *)choice;
  766. }
  767.  
  768.  
  769. H245_DataProtocolCapability_v76wCompression::operator const H245_CompressionType &() const
  770. #endif
  771. {
  772. #ifndef PASN_LEANANDMEAN
  773.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CompressionType::Class()), PInvalidCast);
  774. #endif
  775.   return *(H245_CompressionType *)choice;
  776. }
  777.  
  778.  
  779. BOOL H245_DataProtocolCapability_v76wCompression::CreateObject()
  780. {
  781.   switch (tag) {
  782.     case e_transmitCompression :
  783.     case e_receiveCompression :
  784.     case e_transmitAndReceiveCompression :
  785.       choice = new H245_CompressionType();
  786.       return TRUE;
  787.   }
  788.  
  789.   choice = NULL;
  790.   return FALSE;
  791. }
  792.  
  793.  
  794. PObject * H245_DataProtocolCapability_v76wCompression::Clone() const
  795. {
  796. #ifndef PASN_LEANANDMEAN
  797.   PAssert(IsClass(H245_DataProtocolCapability_v76wCompression::Class()), PInvalidCast);
  798. #endif
  799.   return new H245_DataProtocolCapability_v76wCompression(*this);
  800. }
  801.  
  802.  
  803. //
  804. // T84Profile_t84Restricted
  805. //
  806.  
  807. H245_T84Profile_t84Restricted::H245_T84Profile_t84Restricted(unsigned tag, PASN_Object::TagClass tagClass)
  808.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  809. {
  810. }
  811.  
  812.  
  813. #ifndef PASN_NOPRINTON
  814. void H245_T84Profile_t84Restricted::PrintOn(ostream & strm) const
  815. {
  816.   int indent = strm.precision() + 2;
  817.   strm << "{\n";
  818.   strm << setw(indent+7) << "qcif = " << setprecision(indent) << m_qcif << '\n';
  819.   strm << setw(indent+6) << "cif = " << setprecision(indent) << m_cif << '\n';
  820.   strm << setw(indent+13) << "ccir601Seq = " << setprecision(indent) << m_ccir601Seq << '\n';
  821.   strm << setw(indent+14) << "ccir601Prog = " << setprecision(indent) << m_ccir601Prog << '\n';
  822.   strm << setw(indent+10) << "hdtvSeq = " << setprecision(indent) << m_hdtvSeq << '\n';
  823.   strm << setw(indent+11) << "hdtvProg = " << setprecision(indent) << m_hdtvProg << '\n';
  824.   strm << setw(indent+18) << "g3FacsMH200x100 = " << setprecision(indent) << m_g3FacsMH200x100 << '\n';
  825.   strm << setw(indent+18) << "g3FacsMH200x200 = " << setprecision(indent) << m_g3FacsMH200x200 << '\n';
  826.   strm << setw(indent+19) << "g4FacsMMR200x100 = " << setprecision(indent) << m_g4FacsMMR200x100 << '\n';
  827.   strm << setw(indent+19) << "g4FacsMMR200x200 = " << setprecision(indent) << m_g4FacsMMR200x200 << '\n';
  828.   strm << setw(indent+17) << "jbig200x200Seq = " << setprecision(indent) << m_jbig200x200Seq << '\n';
  829.   strm << setw(indent+18) << "jbig200x200Prog = " << setprecision(indent) << m_jbig200x200Prog << '\n';
  830.   strm << setw(indent+17) << "jbig300x300Seq = " << setprecision(indent) << m_jbig300x300Seq << '\n';
  831.   strm << setw(indent+18) << "jbig300x300Prog = " << setprecision(indent) << m_jbig300x300Prog << '\n';
  832.   strm << setw(indent+14) << "digPhotoLow = " << setprecision(indent) << m_digPhotoLow << '\n';
  833.   strm << setw(indent+17) << "digPhotoMedSeq = " << setprecision(indent) << m_digPhotoMedSeq << '\n';
  834.   strm << setw(indent+18) << "digPhotoMedProg = " << setprecision(indent) << m_digPhotoMedProg << '\n';
  835.   strm << setw(indent+18) << "digPhotoHighSeq = " << setprecision(indent) << m_digPhotoHighSeq << '\n';
  836.   strm << setw(indent+19) << "digPhotoHighProg = " << setprecision(indent) << m_digPhotoHighProg << '\n';
  837.   strm << setw(indent-1) << "}";
  838. }
  839. #endif
  840.  
  841.  
  842. PObject::Comparison H245_T84Profile_t84Restricted::Compare(const PObject & obj) const
  843. {
  844. #ifndef PASN_LEANANDMEAN
  845.   PAssert(IsDescendant(H245_T84Profile_t84Restricted::Class()), PInvalidCast);
  846. #endif
  847.   const H245_T84Profile_t84Restricted & other = (const H245_T84Profile_t84Restricted &)obj;
  848.  
  849.   Comparison result;
  850.  
  851.   if ((result = m_qcif.Compare(other.m_qcif)) != EqualTo)
  852.     return result;
  853.   if ((result = m_cif.Compare(other.m_cif)) != EqualTo)
  854.     return result;
  855.   if ((result = m_ccir601Seq.Compare(other.m_ccir601Seq)) != EqualTo)
  856.     return result;
  857.   if ((result = m_ccir601Prog.Compare(other.m_ccir601Prog)) != EqualTo)
  858.     return result;
  859.   if ((result = m_hdtvSeq.Compare(other.m_hdtvSeq)) != EqualTo)
  860.     return result;
  861.   if ((result = m_hdtvProg.Compare(other.m_hdtvProg)) != EqualTo)
  862.     return result;
  863.   if ((result = m_g3FacsMH200x100.Compare(other.m_g3FacsMH200x100)) != EqualTo)
  864.     return result;
  865.   if ((result = m_g3FacsMH200x200.Compare(other.m_g3FacsMH200x200)) != EqualTo)
  866.     return result;
  867.   if ((result = m_g4FacsMMR200x100.Compare(other.m_g4FacsMMR200x100)) != EqualTo)
  868.     return result;
  869.   if ((result = m_g4FacsMMR200x200.Compare(other.m_g4FacsMMR200x200)) != EqualTo)
  870.     return result;
  871.   if ((result = m_jbig200x200Seq.Compare(other.m_jbig200x200Seq)) != EqualTo)
  872.     return result;
  873.   if ((result = m_jbig200x200Prog.Compare(other.m_jbig200x200Prog)) != EqualTo)
  874.     return result;
  875.   if ((result = m_jbig300x300Seq.Compare(other.m_jbig300x300Seq)) != EqualTo)
  876.     return result;
  877.   if ((result = m_jbig300x300Prog.Compare(other.m_jbig300x300Prog)) != EqualTo)
  878.     return result;
  879.   if ((result = m_digPhotoLow.Compare(other.m_digPhotoLow)) != EqualTo)
  880.     return result;
  881.   if ((result = m_digPhotoMedSeq.Compare(other.m_digPhotoMedSeq)) != EqualTo)
  882.     return result;
  883.   if ((result = m_digPhotoMedProg.Compare(other.m_digPhotoMedProg)) != EqualTo)
  884.     return result;
  885.   if ((result = m_digPhotoHighSeq.Compare(other.m_digPhotoHighSeq)) != EqualTo)
  886.     return result;
  887.   if ((result = m_digPhotoHighProg.Compare(other.m_digPhotoHighProg)) != EqualTo)
  888.     return result;
  889.  
  890.   return PASN_Sequence::Compare(other);
  891. }
  892.  
  893.  
  894. PINDEX H245_T84Profile_t84Restricted::GetDataLength() const
  895. {
  896.   PINDEX length = 0;
  897.   length += m_qcif.GetObjectLength();
  898.   length += m_cif.GetObjectLength();
  899.   length += m_ccir601Seq.GetObjectLength();
  900.   length += m_ccir601Prog.GetObjectLength();
  901.   length += m_hdtvSeq.GetObjectLength();
  902.   length += m_hdtvProg.GetObjectLength();
  903.   length += m_g3FacsMH200x100.GetObjectLength();
  904.   length += m_g3FacsMH200x200.GetObjectLength();
  905.   length += m_g4FacsMMR200x100.GetObjectLength();
  906.   length += m_g4FacsMMR200x200.GetObjectLength();
  907.   length += m_jbig200x200Seq.GetObjectLength();
  908.   length += m_jbig200x200Prog.GetObjectLength();
  909.   length += m_jbig300x300Seq.GetObjectLength();
  910.   length += m_jbig300x300Prog.GetObjectLength();
  911.   length += m_digPhotoLow.GetObjectLength();
  912.   length += m_digPhotoMedSeq.GetObjectLength();
  913.   length += m_digPhotoMedProg.GetObjectLength();
  914.   length += m_digPhotoHighSeq.GetObjectLength();
  915.   length += m_digPhotoHighProg.GetObjectLength();
  916.   return length;
  917. }
  918.  
  919.  
  920. BOOL H245_T84Profile_t84Restricted::Decode(PASN_Stream & strm)
  921. {
  922.   if (!PreambleDecode(strm))
  923.     return FALSE;
  924.  
  925.   if (!m_qcif.Decode(strm))
  926.     return FALSE;
  927.   if (!m_cif.Decode(strm))
  928.     return FALSE;
  929.   if (!m_ccir601Seq.Decode(strm))
  930.     return FALSE;
  931.   if (!m_ccir601Prog.Decode(strm))
  932.     return FALSE;
  933.   if (!m_hdtvSeq.Decode(strm))
  934.     return FALSE;
  935.   if (!m_hdtvProg.Decode(strm))
  936.     return FALSE;
  937.   if (!m_g3FacsMH200x100.Decode(strm))
  938.     return FALSE;
  939.   if (!m_g3FacsMH200x200.Decode(strm))
  940.     return FALSE;
  941.   if (!m_g4FacsMMR200x100.Decode(strm))
  942.     return FALSE;
  943.   if (!m_g4FacsMMR200x200.Decode(strm))
  944.     return FALSE;
  945.   if (!m_jbig200x200Seq.Decode(strm))
  946.     return FALSE;
  947.   if (!m_jbig200x200Prog.Decode(strm))
  948.     return FALSE;
  949.   if (!m_jbig300x300Seq.Decode(strm))
  950.     return FALSE;
  951.   if (!m_jbig300x300Prog.Decode(strm))
  952.     return FALSE;
  953.   if (!m_digPhotoLow.Decode(strm))
  954.     return FALSE;
  955.   if (!m_digPhotoMedSeq.Decode(strm))
  956.     return FALSE;
  957.   if (!m_digPhotoMedProg.Decode(strm))
  958.     return FALSE;
  959.   if (!m_digPhotoHighSeq.Decode(strm))
  960.     return FALSE;
  961.   if (!m_digPhotoHighProg.Decode(strm))
  962.     return FALSE;
  963.  
  964.   return UnknownExtensionsDecode(strm);
  965. }
  966.  
  967.  
  968. void H245_T84Profile_t84Restricted::Encode(PASN_Stream & strm) const
  969. {
  970.   PreambleEncode(strm);
  971.  
  972.   m_qcif.Encode(strm);
  973.   m_cif.Encode(strm);
  974.   m_ccir601Seq.Encode(strm);
  975.   m_ccir601Prog.Encode(strm);
  976.   m_hdtvSeq.Encode(strm);
  977.   m_hdtvProg.Encode(strm);
  978.   m_g3FacsMH200x100.Encode(strm);
  979.   m_g3FacsMH200x200.Encode(strm);
  980.   m_g4FacsMMR200x100.Encode(strm);
  981.   m_g4FacsMMR200x200.Encode(strm);
  982.   m_jbig200x200Seq.Encode(strm);
  983.   m_jbig200x200Prog.Encode(strm);
  984.   m_jbig300x300Seq.Encode(strm);
  985.   m_jbig300x300Prog.Encode(strm);
  986.   m_digPhotoLow.Encode(strm);
  987.   m_digPhotoMedSeq.Encode(strm);
  988.   m_digPhotoMedProg.Encode(strm);
  989.   m_digPhotoHighSeq.Encode(strm);
  990.   m_digPhotoHighProg.Encode(strm);
  991.  
  992.   UnknownExtensionsEncode(strm);
  993. }
  994.  
  995.  
  996. PObject * H245_T84Profile_t84Restricted::Clone() const
  997. {
  998. #ifndef PASN_LEANANDMEAN
  999.   PAssert(IsClass(H245_T84Profile_t84Restricted::Class()), PInvalidCast);
  1000. #endif
  1001.   return new H245_T84Profile_t84Restricted(*this);
  1002. }
  1003.  
  1004.  
  1005. //
  1006. // T38FaxUdpOptions_t38FaxUdpEC
  1007. //
  1008.  
  1009. H245_T38FaxUdpOptions_t38FaxUdpEC::H245_T38FaxUdpOptions_t38FaxUdpEC(unsigned tag, PASN_Object::TagClass tagClass)
  1010.   : PASN_Choice(tag, tagClass, 2, TRUE
  1011. #ifndef PASN_NOPRINTON
  1012.       , "t38UDPFEC "
  1013.         "t38UDPRedundancy "
  1014. #endif
  1015.     )
  1016. {
  1017. }
  1018.  
  1019.  
  1020. BOOL H245_T38FaxUdpOptions_t38FaxUdpEC::CreateObject()
  1021. {
  1022.   choice = (tag <= e_t38UDPRedundancy) ? new PASN_Null() : NULL;
  1023.   return choice != NULL;
  1024. }
  1025.  
  1026.  
  1027. PObject * H245_T38FaxUdpOptions_t38FaxUdpEC::Clone() const
  1028. {
  1029. #ifndef PASN_LEANANDMEAN
  1030.   PAssert(IsClass(H245_T38FaxUdpOptions_t38FaxUdpEC::Class()), PInvalidCast);
  1031. #endif
  1032.   return new H245_T38FaxUdpOptions_t38FaxUdpEC(*this);
  1033. }
  1034.  
  1035.  
  1036. //
  1037. // ArrayOf_NonStandardParameter
  1038. //
  1039.  
  1040. H245_ArrayOf_NonStandardParameter::H245_ArrayOf_NonStandardParameter(unsigned tag, PASN_Object::TagClass tagClass)
  1041.   : PASN_Array(tag, tagClass)
  1042. {
  1043. }
  1044.  
  1045.  
  1046. PASN_Object * H245_ArrayOf_NonStandardParameter::CreateObject() const
  1047. {
  1048.   return new H245_NonStandardParameter;
  1049. }
  1050.  
  1051.  
  1052. H245_NonStandardParameter & H245_ArrayOf_NonStandardParameter::operator[](PINDEX i) const
  1053. {
  1054.   return (H245_NonStandardParameter &)array[i];
  1055. }
  1056.  
  1057.  
  1058. PObject * H245_ArrayOf_NonStandardParameter::Clone() const
  1059. {
  1060. #ifndef PASN_LEANANDMEAN
  1061.   PAssert(IsClass(H245_ArrayOf_NonStandardParameter::Class()), PInvalidCast);
  1062. #endif
  1063.   return new H245_ArrayOf_NonStandardParameter(*this);
  1064. }
  1065.  
  1066.  
  1067. //
  1068. // ArrayOf_GenericParameter
  1069. //
  1070.  
  1071. H245_ArrayOf_GenericParameter::H245_ArrayOf_GenericParameter(unsigned tag, PASN_Object::TagClass tagClass)
  1072.   : PASN_Array(tag, tagClass)
  1073. {
  1074. }
  1075.  
  1076.  
  1077. PASN_Object * H245_ArrayOf_GenericParameter::CreateObject() const
  1078. {
  1079.   return new H245_GenericParameter;
  1080. }
  1081.  
  1082.  
  1083. H245_GenericParameter & H245_ArrayOf_GenericParameter::operator[](PINDEX i) const
  1084. {
  1085.   return (H245_GenericParameter &)array[i];
  1086. }
  1087.  
  1088.  
  1089. PObject * H245_ArrayOf_GenericParameter::Clone() const
  1090. {
  1091. #ifndef PASN_LEANANDMEAN
  1092.   PAssert(IsClass(H245_ArrayOf_GenericParameter::Class()), PInvalidCast);
  1093. #endif
  1094.   return new H245_ArrayOf_GenericParameter(*this);
  1095. }
  1096.  
  1097.  
  1098. //
  1099. // ArrayOf_ParameterIdentifier
  1100. //
  1101.  
  1102. H245_ArrayOf_ParameterIdentifier::H245_ArrayOf_ParameterIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  1103.   : PASN_Array(tag, tagClass)
  1104. {
  1105. }
  1106.  
  1107.  
  1108. PASN_Object * H245_ArrayOf_ParameterIdentifier::CreateObject() const
  1109. {
  1110.   return new H245_ParameterIdentifier;
  1111. }
  1112.  
  1113.  
  1114. H245_ParameterIdentifier & H245_ArrayOf_ParameterIdentifier::operator[](PINDEX i) const
  1115. {
  1116.   return (H245_ParameterIdentifier &)array[i];
  1117. }
  1118.  
  1119.  
  1120. PObject * H245_ArrayOf_ParameterIdentifier::Clone() const
  1121. {
  1122. #ifndef PASN_LEANANDMEAN
  1123.   PAssert(IsClass(H245_ArrayOf_ParameterIdentifier::Class()), PInvalidCast);
  1124. #endif
  1125.   return new H245_ArrayOf_ParameterIdentifier(*this);
  1126. }
  1127.  
  1128.  
  1129. //
  1130. // NetworkAccessParameters_distribution
  1131. //
  1132.  
  1133. H245_NetworkAccessParameters_distribution::H245_NetworkAccessParameters_distribution(unsigned tag, PASN_Object::TagClass tagClass)
  1134.   : PASN_Choice(tag, tagClass, 2, TRUE
  1135. #ifndef PASN_NOPRINTON
  1136.       , "unicast "
  1137.         "multicast "
  1138. #endif
  1139.     )
  1140. {
  1141. }
  1142.  
  1143.  
  1144. BOOL H245_NetworkAccessParameters_distribution::CreateObject()
  1145. {
  1146.   choice = (tag <= e_multicast) ? new PASN_Null() : NULL;
  1147.   return choice != NULL;
  1148. }
  1149.  
  1150.  
  1151. PObject * H245_NetworkAccessParameters_distribution::Clone() const
  1152. {
  1153. #ifndef PASN_LEANANDMEAN
  1154.   PAssert(IsClass(H245_NetworkAccessParameters_distribution::Class()), PInvalidCast);
  1155. #endif
  1156.   return new H245_NetworkAccessParameters_distribution(*this);
  1157. }
  1158.  
  1159.  
  1160. //
  1161. // NetworkAccessParameters_networkAddress
  1162. //
  1163.  
  1164. H245_NetworkAccessParameters_networkAddress::H245_NetworkAccessParameters_networkAddress(unsigned tag, PASN_Object::TagClass tagClass)
  1165.   : PASN_Choice(tag, tagClass, 3, TRUE
  1166. #ifndef PASN_NOPRINTON
  1167.       , "q2931Address "
  1168.         "e164Address "
  1169.         "localAreaAddress "
  1170. #endif
  1171.     )
  1172. {
  1173. }
  1174.  
  1175.  
  1176. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1177. H245_NetworkAccessParameters_networkAddress::operator H245_Q2931Address &() const
  1178. #else
  1179. H245_NetworkAccessParameters_networkAddress::operator H245_Q2931Address &()
  1180. {
  1181. #ifndef PASN_LEANANDMEAN
  1182.   PAssert(PAssertNULL(choice)->IsDescendant(H245_Q2931Address::Class()), PInvalidCast);
  1183. #endif
  1184.   return *(H245_Q2931Address *)choice;
  1185. }
  1186.  
  1187.  
  1188. H245_NetworkAccessParameters_networkAddress::operator const H245_Q2931Address &() const
  1189. #endif
  1190. {
  1191. #ifndef PASN_LEANANDMEAN
  1192.   PAssert(PAssertNULL(choice)->IsDescendant(H245_Q2931Address::Class()), PInvalidCast);
  1193. #endif
  1194.   return *(H245_Q2931Address *)choice;
  1195. }
  1196.  
  1197.  
  1198. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1199. H245_NetworkAccessParameters_networkAddress::operator H245_TransportAddress &() const
  1200. #else
  1201. H245_NetworkAccessParameters_networkAddress::operator H245_TransportAddress &()
  1202. {
  1203. #ifndef PASN_LEANANDMEAN
  1204.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TransportAddress::Class()), PInvalidCast);
  1205. #endif
  1206.   return *(H245_TransportAddress *)choice;
  1207. }
  1208.  
  1209.  
  1210. H245_NetworkAccessParameters_networkAddress::operator const H245_TransportAddress &() const
  1211. #endif
  1212. {
  1213. #ifndef PASN_LEANANDMEAN
  1214.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TransportAddress::Class()), PInvalidCast);
  1215. #endif
  1216.   return *(H245_TransportAddress *)choice;
  1217. }
  1218.  
  1219.  
  1220. BOOL H245_NetworkAccessParameters_networkAddress::CreateObject()
  1221. {
  1222.   switch (tag) {
  1223.     case e_q2931Address :
  1224.       choice = new H245_Q2931Address();
  1225.       return TRUE;
  1226.     case e_e164Address :
  1227.       choice = new PASN_IA5String();
  1228.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  1229.       choice->SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*,");
  1230.       return TRUE;
  1231.     case e_localAreaAddress :
  1232.       choice = new H245_TransportAddress();
  1233.       return TRUE;
  1234.   }
  1235.  
  1236.   choice = NULL;
  1237.   return FALSE;
  1238. }
  1239.  
  1240.  
  1241. PObject * H245_NetworkAccessParameters_networkAddress::Clone() const
  1242. {
  1243. #ifndef PASN_LEANANDMEAN
  1244.   PAssert(IsClass(H245_NetworkAccessParameters_networkAddress::Class()), PInvalidCast);
  1245. #endif
  1246.   return new H245_NetworkAccessParameters_networkAddress(*this);
  1247. }
  1248.  
  1249.  
  1250. //
  1251. // NetworkAccessParameters_t120SetupProcedure
  1252. //
  1253.  
  1254. H245_NetworkAccessParameters_t120SetupProcedure::H245_NetworkAccessParameters_t120SetupProcedure(unsigned tag, PASN_Object::TagClass tagClass)
  1255.   : PASN_Choice(tag, tagClass, 3, TRUE
  1256. #ifndef PASN_NOPRINTON
  1257.       , "originateCall "
  1258.         "waitForCall "
  1259.         "issueQuery "
  1260. #endif
  1261.     )
  1262. {
  1263. }
  1264.  
  1265.  
  1266. BOOL H245_NetworkAccessParameters_t120SetupProcedure::CreateObject()
  1267. {
  1268.   choice = (tag <= e_issueQuery) ? new PASN_Null() : NULL;
  1269.   return choice != NULL;
  1270. }
  1271.  
  1272.  
  1273. PObject * H245_NetworkAccessParameters_t120SetupProcedure::Clone() const
  1274. {
  1275. #ifndef PASN_LEANANDMEAN
  1276.   PAssert(IsClass(H245_NetworkAccessParameters_t120SetupProcedure::Class()), PInvalidCast);
  1277. #endif
  1278.   return new H245_NetworkAccessParameters_t120SetupProcedure(*this);
  1279. }
  1280.  
  1281.  
  1282. //
  1283. // Q2931Address_address
  1284. //
  1285.  
  1286. H245_Q2931Address_address::H245_Q2931Address_address(unsigned tag, PASN_Object::TagClass tagClass)
  1287.   : PASN_Choice(tag, tagClass, 2, TRUE
  1288. #ifndef PASN_NOPRINTON
  1289.       , "internationalNumber "
  1290.         "nsapAddress "
  1291. #endif
  1292.     )
  1293. {
  1294. }
  1295.  
  1296.  
  1297. BOOL H245_Q2931Address_address::CreateObject()
  1298. {
  1299.   switch (tag) {
  1300.     case e_internationalNumber :
  1301.       choice = new PASN_NumericString();
  1302.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 16);
  1303.       return TRUE;
  1304.     case e_nsapAddress :
  1305.       choice = new PASN_OctetString();
  1306.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 20);
  1307.       return TRUE;
  1308.   }
  1309.  
  1310.   choice = NULL;
  1311.   return FALSE;
  1312. }
  1313.  
  1314.  
  1315. PObject * H245_Q2931Address_address::Clone() const
  1316. {
  1317. #ifndef PASN_LEANANDMEAN
  1318.   PAssert(IsClass(H245_Q2931Address_address::Class()), PInvalidCast);
  1319. #endif
  1320.   return new H245_Q2931Address_address(*this);
  1321. }
  1322.  
  1323.  
  1324. //
  1325. // H235Media_mediaType
  1326. //
  1327.  
  1328. H245_H235Media_mediaType::H245_H235Media_mediaType(unsigned tag, PASN_Object::TagClass tagClass)
  1329.   : PASN_Choice(tag, tagClass, 4, TRUE
  1330. #ifndef PASN_NOPRINTON
  1331.       , "nonStandard "
  1332.         "videoData "
  1333.         "audioData "
  1334.         "data "
  1335. #endif
  1336.     )
  1337. {
  1338. }
  1339.  
  1340.  
  1341. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1342. H245_H235Media_mediaType::operator H245_NonStandardParameter &() const
  1343. #else
  1344. H245_H235Media_mediaType::operator H245_NonStandardParameter &()
  1345. {
  1346. #ifndef PASN_LEANANDMEAN
  1347.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  1348. #endif
  1349.   return *(H245_NonStandardParameter *)choice;
  1350. }
  1351.  
  1352.  
  1353. H245_H235Media_mediaType::operator const H245_NonStandardParameter &() const
  1354. #endif
  1355. {
  1356. #ifndef PASN_LEANANDMEAN
  1357.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  1358. #endif
  1359.   return *(H245_NonStandardParameter *)choice;
  1360. }
  1361.  
  1362.  
  1363. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1364. H245_H235Media_mediaType::operator H245_VideoCapability &() const
  1365. #else
  1366. H245_H235Media_mediaType::operator H245_VideoCapability &()
  1367. {
  1368. #ifndef PASN_LEANANDMEAN
  1369.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  1370. #endif
  1371.   return *(H245_VideoCapability *)choice;
  1372. }
  1373.  
  1374.  
  1375. H245_H235Media_mediaType::operator const H245_VideoCapability &() const
  1376. #endif
  1377. {
  1378. #ifndef PASN_LEANANDMEAN
  1379.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  1380. #endif
  1381.   return *(H245_VideoCapability *)choice;
  1382. }
  1383.  
  1384.  
  1385. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1386. H245_H235Media_mediaType::operator H245_AudioCapability &() const
  1387. #else
  1388. H245_H235Media_mediaType::operator H245_AudioCapability &()
  1389. {
  1390. #ifndef PASN_LEANANDMEAN
  1391.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  1392. #endif
  1393.   return *(H245_AudioCapability *)choice;
  1394. }
  1395.  
  1396.  
  1397. H245_H235Media_mediaType::operator const H245_AudioCapability &() const
  1398. #endif
  1399. {
  1400. #ifndef PASN_LEANANDMEAN
  1401.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  1402. #endif
  1403.   return *(H245_AudioCapability *)choice;
  1404. }
  1405.  
  1406.  
  1407. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1408. H245_H235Media_mediaType::operator H245_DataApplicationCapability &() const
  1409. #else
  1410. H245_H235Media_mediaType::operator H245_DataApplicationCapability &()
  1411. {
  1412. #ifndef PASN_LEANANDMEAN
  1413.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  1414. #endif
  1415.   return *(H245_DataApplicationCapability *)choice;
  1416. }
  1417.  
  1418.  
  1419. H245_H235Media_mediaType::operator const H245_DataApplicationCapability &() const
  1420. #endif
  1421. {
  1422. #ifndef PASN_LEANANDMEAN
  1423.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  1424. #endif
  1425.   return *(H245_DataApplicationCapability *)choice;
  1426. }
  1427.  
  1428.  
  1429. BOOL H245_H235Media_mediaType::CreateObject()
  1430. {
  1431.   switch (tag) {
  1432.     case e_nonStandard :
  1433.       choice = new H245_NonStandardParameter();
  1434.       return TRUE;
  1435.     case e_videoData :
  1436.       choice = new H245_VideoCapability();
  1437.       return TRUE;
  1438.     case e_audioData :
  1439.       choice = new H245_AudioCapability();
  1440.       return TRUE;
  1441.     case e_data :
  1442.       choice = new H245_DataApplicationCapability();
  1443.       return TRUE;
  1444.   }
  1445.  
  1446.   choice = NULL;
  1447.   return FALSE;
  1448. }
  1449.  
  1450.  
  1451. PObject * H245_H235Media_mediaType::Clone() const
  1452. {
  1453. #ifndef PASN_LEANANDMEAN
  1454.   PAssert(IsClass(H245_H235Media_mediaType::Class()), PInvalidCast);
  1455. #endif
  1456.   return new H245_H235Media_mediaType(*this);
  1457. }
  1458.  
  1459.  
  1460. //
  1461. // H223LogicalChannelParameters_adaptationLayerType
  1462. //
  1463.  
  1464. H245_H223LogicalChannelParameters_adaptationLayerType::H245_H223LogicalChannelParameters_adaptationLayerType(unsigned tag, PASN_Object::TagClass tagClass)
  1465.   : PASN_Choice(tag, tagClass, 6, TRUE
  1466. #ifndef PASN_NOPRINTON
  1467.       , "nonStandard "
  1468.         "al1Framed "
  1469.         "al1NotFramed "
  1470.         "al2WithoutSequenceNumbers "
  1471.         "al2WithSequenceNumbers "
  1472.         "al3 "
  1473.         "al1M "
  1474.         "al2M "
  1475.         "al3M "
  1476. #endif
  1477.     )
  1478. {
  1479. }
  1480.  
  1481.  
  1482. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1483. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_NonStandardParameter &() const
  1484. #else
  1485. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_NonStandardParameter &()
  1486. {
  1487. #ifndef PASN_LEANANDMEAN
  1488.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  1489. #endif
  1490.   return *(H245_NonStandardParameter *)choice;
  1491. }
  1492.  
  1493.  
  1494. H245_H223LogicalChannelParameters_adaptationLayerType::operator const H245_NonStandardParameter &() const
  1495. #endif
  1496. {
  1497. #ifndef PASN_LEANANDMEAN
  1498.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  1499. #endif
  1500.   return *(H245_NonStandardParameter *)choice;
  1501. }
  1502.  
  1503.  
  1504. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1505. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223LogicalChannelParameters_adaptationLayerType_al3 &() const
  1506. #else
  1507. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223LogicalChannelParameters_adaptationLayerType_al3 &()
  1508. {
  1509. #ifndef PASN_LEANANDMEAN
  1510.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223LogicalChannelParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  1511. #endif
  1512.   return *(H245_H223LogicalChannelParameters_adaptationLayerType_al3 *)choice;
  1513. }
  1514.  
  1515.  
  1516. H245_H223LogicalChannelParameters_adaptationLayerType::operator const H245_H223LogicalChannelParameters_adaptationLayerType_al3 &() const
  1517. #endif
  1518. {
  1519. #ifndef PASN_LEANANDMEAN
  1520.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223LogicalChannelParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  1521. #endif
  1522.   return *(H245_H223LogicalChannelParameters_adaptationLayerType_al3 *)choice;
  1523. }
  1524.  
  1525.  
  1526. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1527. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223AL1MParameters &() const
  1528. #else
  1529. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223AL1MParameters &()
  1530. {
  1531. #ifndef PASN_LEANANDMEAN
  1532.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL1MParameters::Class()), PInvalidCast);
  1533. #endif
  1534.   return *(H245_H223AL1MParameters *)choice;
  1535. }
  1536.  
  1537.  
  1538. H245_H223LogicalChannelParameters_adaptationLayerType::operator const H245_H223AL1MParameters &() const
  1539. #endif
  1540. {
  1541. #ifndef PASN_LEANANDMEAN
  1542.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL1MParameters::Class()), PInvalidCast);
  1543. #endif
  1544.   return *(H245_H223AL1MParameters *)choice;
  1545. }
  1546.  
  1547.  
  1548. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1549. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223AL2MParameters &() const
  1550. #else
  1551. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223AL2MParameters &()
  1552. {
  1553. #ifndef PASN_LEANANDMEAN
  1554.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL2MParameters::Class()), PInvalidCast);
  1555. #endif
  1556.   return *(H245_H223AL2MParameters *)choice;
  1557. }
  1558.  
  1559.  
  1560. H245_H223LogicalChannelParameters_adaptationLayerType::operator const H245_H223AL2MParameters &() const
  1561. #endif
  1562. {
  1563. #ifndef PASN_LEANANDMEAN
  1564.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL2MParameters::Class()), PInvalidCast);
  1565. #endif
  1566.   return *(H245_H223AL2MParameters *)choice;
  1567. }
  1568.  
  1569.  
  1570. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1571. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223AL3MParameters &() const
  1572. #else
  1573. H245_H223LogicalChannelParameters_adaptationLayerType::operator H245_H223AL3MParameters &()
  1574. {
  1575. #ifndef PASN_LEANANDMEAN
  1576.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL3MParameters::Class()), PInvalidCast);
  1577. #endif
  1578.   return *(H245_H223AL3MParameters *)choice;
  1579. }
  1580.  
  1581.  
  1582. H245_H223LogicalChannelParameters_adaptationLayerType::operator const H245_H223AL3MParameters &() const
  1583. #endif
  1584. {
  1585. #ifndef PASN_LEANANDMEAN
  1586.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL3MParameters::Class()), PInvalidCast);
  1587. #endif
  1588.   return *(H245_H223AL3MParameters *)choice;
  1589. }
  1590.  
  1591.  
  1592. BOOL H245_H223LogicalChannelParameters_adaptationLayerType::CreateObject()
  1593. {
  1594.   switch (tag) {
  1595.     case e_nonStandard :
  1596.       choice = new H245_NonStandardParameter();
  1597.       return TRUE;
  1598.     case e_al1Framed :
  1599.     case e_al1NotFramed :
  1600.     case e_al2WithoutSequenceNumbers :
  1601.     case e_al2WithSequenceNumbers :
  1602.       choice = new PASN_Null();
  1603.       return TRUE;
  1604.     case e_al3 :
  1605.       choice = new H245_H223LogicalChannelParameters_adaptationLayerType_al3();
  1606.       return TRUE;
  1607.     case e_al1M :
  1608.       choice = new H245_H223AL1MParameters();
  1609.       return TRUE;
  1610.     case e_al2M :
  1611.       choice = new H245_H223AL2MParameters();
  1612.       return TRUE;
  1613.     case e_al3M :
  1614.       choice = new H245_H223AL3MParameters();
  1615.       return TRUE;
  1616.   }
  1617.  
  1618.   choice = NULL;
  1619.   return FALSE;
  1620. }
  1621.  
  1622.  
  1623. PObject * H245_H223LogicalChannelParameters_adaptationLayerType::Clone() const
  1624. {
  1625. #ifndef PASN_LEANANDMEAN
  1626.   PAssert(IsClass(H245_H223LogicalChannelParameters_adaptationLayerType::Class()), PInvalidCast);
  1627. #endif
  1628.   return new H245_H223LogicalChannelParameters_adaptationLayerType(*this);
  1629. }
  1630.  
  1631.  
  1632. //
  1633. // H223AL1MParameters_transferMode
  1634. //
  1635.  
  1636. H245_H223AL1MParameters_transferMode::H245_H223AL1MParameters_transferMode(unsigned tag, PASN_Object::TagClass tagClass)
  1637.   : PASN_Choice(tag, tagClass, 2, TRUE
  1638. #ifndef PASN_NOPRINTON
  1639.       , "framed "
  1640.         "unframed "
  1641. #endif
  1642.     )
  1643. {
  1644. }
  1645.  
  1646.  
  1647. BOOL H245_H223AL1MParameters_transferMode::CreateObject()
  1648. {
  1649.   choice = (tag <= e_unframed) ? new PASN_Null() : NULL;
  1650.   return choice != NULL;
  1651. }
  1652.  
  1653.  
  1654. PObject * H245_H223AL1MParameters_transferMode::Clone() const
  1655. {
  1656. #ifndef PASN_LEANANDMEAN
  1657.   PAssert(IsClass(H245_H223AL1MParameters_transferMode::Class()), PInvalidCast);
  1658. #endif
  1659.   return new H245_H223AL1MParameters_transferMode(*this);
  1660. }
  1661.  
  1662.  
  1663. //
  1664. // H223AL1MParameters_headerFEC
  1665. //
  1666.  
  1667. H245_H223AL1MParameters_headerFEC::H245_H223AL1MParameters_headerFEC(unsigned tag, PASN_Object::TagClass tagClass)
  1668.   : PASN_Choice(tag, tagClass, 2, TRUE
  1669. #ifndef PASN_NOPRINTON
  1670.       , "sebch16_7 "
  1671.         "golay24_12 "
  1672. #endif
  1673.     )
  1674. {
  1675. }
  1676.  
  1677.  
  1678. BOOL H245_H223AL1MParameters_headerFEC::CreateObject()
  1679. {
  1680.   choice = (tag <= e_golay24_12) ? new PASN_Null() : NULL;
  1681.   return choice != NULL;
  1682. }
  1683.  
  1684.  
  1685. PObject * H245_H223AL1MParameters_headerFEC::Clone() const
  1686. {
  1687. #ifndef PASN_LEANANDMEAN
  1688.   PAssert(IsClass(H245_H223AL1MParameters_headerFEC::Class()), PInvalidCast);
  1689. #endif
  1690.   return new H245_H223AL1MParameters_headerFEC(*this);
  1691. }
  1692.  
  1693.  
  1694. //
  1695. // H223AL1MParameters_crcLength
  1696. //
  1697.  
  1698. H245_H223AL1MParameters_crcLength::H245_H223AL1MParameters_crcLength(unsigned tag, PASN_Object::TagClass tagClass)
  1699.   : PASN_Choice(tag, tagClass, 4, TRUE
  1700. #ifndef PASN_NOPRINTON
  1701.       , "crc4bit "
  1702.         "crc12bit "
  1703.         "crc20bit "
  1704.         "crc28bit "
  1705.         "crc8bit "
  1706.         "crc16bit "
  1707.         "crc32bit "
  1708.         "crcNotUsed "
  1709. #endif
  1710.     )
  1711. {
  1712. }
  1713.  
  1714.  
  1715. BOOL H245_H223AL1MParameters_crcLength::CreateObject()
  1716. {
  1717.   choice = (tag <= e_crcNotUsed) ? new PASN_Null() : NULL;
  1718.   return choice != NULL;
  1719. }
  1720.  
  1721.  
  1722. PObject * H245_H223AL1MParameters_crcLength::Clone() const
  1723. {
  1724. #ifndef PASN_LEANANDMEAN
  1725.   PAssert(IsClass(H245_H223AL1MParameters_crcLength::Class()), PInvalidCast);
  1726. #endif
  1727.   return new H245_H223AL1MParameters_crcLength(*this);
  1728. }
  1729.  
  1730.  
  1731. //
  1732. // H223AL1MParameters_arqType
  1733. //
  1734.  
  1735. H245_H223AL1MParameters_arqType::H245_H223AL1MParameters_arqType(unsigned tag, PASN_Object::TagClass tagClass)
  1736.   : PASN_Choice(tag, tagClass, 3, TRUE
  1737. #ifndef PASN_NOPRINTON
  1738.       , "noArq "
  1739.         "typeIArq "
  1740.         "typeIIArq "
  1741. #endif
  1742.     )
  1743. {
  1744. }
  1745.  
  1746.  
  1747. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1748. H245_H223AL1MParameters_arqType::operator H245_H223AnnexCArqParameters &() const
  1749. #else
  1750. H245_H223AL1MParameters_arqType::operator H245_H223AnnexCArqParameters &()
  1751. {
  1752. #ifndef PASN_LEANANDMEAN
  1753.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AnnexCArqParameters::Class()), PInvalidCast);
  1754. #endif
  1755.   return *(H245_H223AnnexCArqParameters *)choice;
  1756. }
  1757.  
  1758.  
  1759. H245_H223AL1MParameters_arqType::operator const H245_H223AnnexCArqParameters &() const
  1760. #endif
  1761. {
  1762. #ifndef PASN_LEANANDMEAN
  1763.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AnnexCArqParameters::Class()), PInvalidCast);
  1764. #endif
  1765.   return *(H245_H223AnnexCArqParameters *)choice;
  1766. }
  1767.  
  1768.  
  1769. BOOL H245_H223AL1MParameters_arqType::CreateObject()
  1770. {
  1771.   switch (tag) {
  1772.     case e_noArq :
  1773.       choice = new PASN_Null();
  1774.       return TRUE;
  1775.     case e_typeIArq :
  1776.     case e_typeIIArq :
  1777.       choice = new H245_H223AnnexCArqParameters();
  1778.       return TRUE;
  1779.   }
  1780.  
  1781.   choice = NULL;
  1782.   return FALSE;
  1783. }
  1784.  
  1785.  
  1786. PObject * H245_H223AL1MParameters_arqType::Clone() const
  1787. {
  1788. #ifndef PASN_LEANANDMEAN
  1789.   PAssert(IsClass(H245_H223AL1MParameters_arqType::Class()), PInvalidCast);
  1790. #endif
  1791.   return new H245_H223AL1MParameters_arqType(*this);
  1792. }
  1793.  
  1794.  
  1795. //
  1796. // H223AL2MParameters_headerFEC
  1797. //
  1798.  
  1799. H245_H223AL2MParameters_headerFEC::H245_H223AL2MParameters_headerFEC(unsigned tag, PASN_Object::TagClass tagClass)
  1800.   : PASN_Choice(tag, tagClass, 2, TRUE
  1801. #ifndef PASN_NOPRINTON
  1802.       , "sebch16_5 "
  1803.         "golay24_12 "
  1804. #endif
  1805.     )
  1806. {
  1807. }
  1808.  
  1809.  
  1810. BOOL H245_H223AL2MParameters_headerFEC::CreateObject()
  1811. {
  1812.   choice = (tag <= e_golay24_12) ? new PASN_Null() : NULL;
  1813.   return choice != NULL;
  1814. }
  1815.  
  1816.  
  1817. PObject * H245_H223AL2MParameters_headerFEC::Clone() const
  1818. {
  1819. #ifndef PASN_LEANANDMEAN
  1820.   PAssert(IsClass(H245_H223AL2MParameters_headerFEC::Class()), PInvalidCast);
  1821. #endif
  1822.   return new H245_H223AL2MParameters_headerFEC(*this);
  1823. }
  1824.  
  1825.  
  1826. //
  1827. // H223AL3MParameters_headerFormat
  1828. //
  1829.  
  1830. H245_H223AL3MParameters_headerFormat::H245_H223AL3MParameters_headerFormat(unsigned tag, PASN_Object::TagClass tagClass)
  1831.   : PASN_Choice(tag, tagClass, 2, TRUE
  1832. #ifndef PASN_NOPRINTON
  1833.       , "sebch16_7 "
  1834.         "golay24_12 "
  1835. #endif
  1836.     )
  1837. {
  1838. }
  1839.  
  1840.  
  1841. BOOL H245_H223AL3MParameters_headerFormat::CreateObject()
  1842. {
  1843.   choice = (tag <= e_golay24_12) ? new PASN_Null() : NULL;
  1844.   return choice != NULL;
  1845. }
  1846.  
  1847.  
  1848. PObject * H245_H223AL3MParameters_headerFormat::Clone() const
  1849. {
  1850. #ifndef PASN_LEANANDMEAN
  1851.   PAssert(IsClass(H245_H223AL3MParameters_headerFormat::Class()), PInvalidCast);
  1852. #endif
  1853.   return new H245_H223AL3MParameters_headerFormat(*this);
  1854. }
  1855.  
  1856.  
  1857. //
  1858. // H223AL3MParameters_crcLength
  1859. //
  1860.  
  1861. H245_H223AL3MParameters_crcLength::H245_H223AL3MParameters_crcLength(unsigned tag, PASN_Object::TagClass tagClass)
  1862.   : PASN_Choice(tag, tagClass, 4, TRUE
  1863. #ifndef PASN_NOPRINTON
  1864.       , "crc4bit "
  1865.         "crc12bit "
  1866.         "crc20bit "
  1867.         "crc28bit "
  1868.         "crc8bit "
  1869.         "crc16bit "
  1870.         "crc32bit "
  1871.         "crcNotUsed "
  1872. #endif
  1873.     )
  1874. {
  1875. }
  1876.  
  1877.  
  1878. BOOL H245_H223AL3MParameters_crcLength::CreateObject()
  1879. {
  1880.   choice = (tag <= e_crcNotUsed) ? new PASN_Null() : NULL;
  1881.   return choice != NULL;
  1882. }
  1883.  
  1884.  
  1885. PObject * H245_H223AL3MParameters_crcLength::Clone() const
  1886. {
  1887. #ifndef PASN_LEANANDMEAN
  1888.   PAssert(IsClass(H245_H223AL3MParameters_crcLength::Class()), PInvalidCast);
  1889. #endif
  1890.   return new H245_H223AL3MParameters_crcLength(*this);
  1891. }
  1892.  
  1893.  
  1894. //
  1895. // H223AL3MParameters_arqType
  1896. //
  1897.  
  1898. H245_H223AL3MParameters_arqType::H245_H223AL3MParameters_arqType(unsigned tag, PASN_Object::TagClass tagClass)
  1899.   : PASN_Choice(tag, tagClass, 3, TRUE
  1900. #ifndef PASN_NOPRINTON
  1901.       , "noArq "
  1902.         "typeIArq "
  1903.         "typeIIArq "
  1904. #endif
  1905.     )
  1906. {
  1907. }
  1908.  
  1909.  
  1910. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1911. H245_H223AL3MParameters_arqType::operator H245_H223AnnexCArqParameters &() const
  1912. #else
  1913. H245_H223AL3MParameters_arqType::operator H245_H223AnnexCArqParameters &()
  1914. {
  1915. #ifndef PASN_LEANANDMEAN
  1916.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AnnexCArqParameters::Class()), PInvalidCast);
  1917. #endif
  1918.   return *(H245_H223AnnexCArqParameters *)choice;
  1919. }
  1920.  
  1921.  
  1922. H245_H223AL3MParameters_arqType::operator const H245_H223AnnexCArqParameters &() const
  1923. #endif
  1924. {
  1925. #ifndef PASN_LEANANDMEAN
  1926.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AnnexCArqParameters::Class()), PInvalidCast);
  1927. #endif
  1928.   return *(H245_H223AnnexCArqParameters *)choice;
  1929. }
  1930.  
  1931.  
  1932. BOOL H245_H223AL3MParameters_arqType::CreateObject()
  1933. {
  1934.   switch (tag) {
  1935.     case e_noArq :
  1936.       choice = new PASN_Null();
  1937.       return TRUE;
  1938.     case e_typeIArq :
  1939.     case e_typeIIArq :
  1940.       choice = new H245_H223AnnexCArqParameters();
  1941.       return TRUE;
  1942.   }
  1943.  
  1944.   choice = NULL;
  1945.   return FALSE;
  1946. }
  1947.  
  1948.  
  1949. PObject * H245_H223AL3MParameters_arqType::Clone() const
  1950. {
  1951. #ifndef PASN_LEANANDMEAN
  1952.   PAssert(IsClass(H245_H223AL3MParameters_arqType::Class()), PInvalidCast);
  1953. #endif
  1954.   return new H245_H223AL3MParameters_arqType(*this);
  1955. }
  1956.  
  1957.  
  1958. //
  1959. // H223AnnexCArqParameters_numberOfRetransmissions
  1960. //
  1961.  
  1962. H245_H223AnnexCArqParameters_numberOfRetransmissions::H245_H223AnnexCArqParameters_numberOfRetransmissions(unsigned tag, PASN_Object::TagClass tagClass)
  1963.   : PASN_Choice(tag, tagClass, 2, TRUE
  1964. #ifndef PASN_NOPRINTON
  1965.       , "finite "
  1966.         "infinite "
  1967. #endif
  1968.     )
  1969. {
  1970. }
  1971.  
  1972.  
  1973. BOOL H245_H223AnnexCArqParameters_numberOfRetransmissions::CreateObject()
  1974. {
  1975.   switch (tag) {
  1976.     case e_finite :
  1977.       choice = new PASN_Integer();
  1978.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 16);
  1979.       return TRUE;
  1980.     case e_infinite :
  1981.       choice = new PASN_Null();
  1982.       return TRUE;
  1983.   }
  1984.  
  1985.   choice = NULL;
  1986.   return FALSE;
  1987. }
  1988.  
  1989.  
  1990. PObject * H245_H223AnnexCArqParameters_numberOfRetransmissions::Clone() const
  1991. {
  1992. #ifndef PASN_LEANANDMEAN
  1993.   PAssert(IsClass(H245_H223AnnexCArqParameters_numberOfRetransmissions::Class()), PInvalidCast);
  1994. #endif
  1995.   return new H245_H223AnnexCArqParameters_numberOfRetransmissions(*this);
  1996. }
  1997.  
  1998.  
  1999. //
  2000. // V76LogicalChannelParameters_suspendResume
  2001. //
  2002.  
  2003. H245_V76LogicalChannelParameters_suspendResume::H245_V76LogicalChannelParameters_suspendResume(unsigned tag, PASN_Object::TagClass tagClass)
  2004.   : PASN_Choice(tag, tagClass, 3, TRUE
  2005. #ifndef PASN_NOPRINTON
  2006.       , "noSuspendResume "
  2007.         "suspendResumewAddress "
  2008.         "suspendResumewoAddress "
  2009. #endif
  2010.     )
  2011. {
  2012. }
  2013.  
  2014.  
  2015. BOOL H245_V76LogicalChannelParameters_suspendResume::CreateObject()
  2016. {
  2017.   choice = (tag <= e_suspendResumewoAddress) ? new PASN_Null() : NULL;
  2018.   return choice != NULL;
  2019. }
  2020.  
  2021.  
  2022. PObject * H245_V76LogicalChannelParameters_suspendResume::Clone() const
  2023. {
  2024. #ifndef PASN_LEANANDMEAN
  2025.   PAssert(IsClass(H245_V76LogicalChannelParameters_suspendResume::Class()), PInvalidCast);
  2026. #endif
  2027.   return new H245_V76LogicalChannelParameters_suspendResume(*this);
  2028. }
  2029.  
  2030.  
  2031. //
  2032. // V76LogicalChannelParameters_mode
  2033. //
  2034.  
  2035. H245_V76LogicalChannelParameters_mode::H245_V76LogicalChannelParameters_mode(unsigned tag, PASN_Object::TagClass tagClass)
  2036.   : PASN_Choice(tag, tagClass, 2, TRUE
  2037. #ifndef PASN_NOPRINTON
  2038.       , "eRM "
  2039.         "uNERM "
  2040. #endif
  2041.     )
  2042. {
  2043. }
  2044.  
  2045.  
  2046. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2047. H245_V76LogicalChannelParameters_mode::operator H245_V76LogicalChannelParameters_mode_eRM &() const
  2048. #else
  2049. H245_V76LogicalChannelParameters_mode::operator H245_V76LogicalChannelParameters_mode_eRM &()
  2050. {
  2051. #ifndef PASN_LEANANDMEAN
  2052.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76LogicalChannelParameters_mode_eRM::Class()), PInvalidCast);
  2053. #endif
  2054.   return *(H245_V76LogicalChannelParameters_mode_eRM *)choice;
  2055. }
  2056.  
  2057.  
  2058. H245_V76LogicalChannelParameters_mode::operator const H245_V76LogicalChannelParameters_mode_eRM &() const
  2059. #endif
  2060. {
  2061. #ifndef PASN_LEANANDMEAN
  2062.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76LogicalChannelParameters_mode_eRM::Class()), PInvalidCast);
  2063. #endif
  2064.   return *(H245_V76LogicalChannelParameters_mode_eRM *)choice;
  2065. }
  2066.  
  2067.  
  2068. BOOL H245_V76LogicalChannelParameters_mode::CreateObject()
  2069. {
  2070.   switch (tag) {
  2071.     case e_eRM :
  2072.       choice = new H245_V76LogicalChannelParameters_mode_eRM();
  2073.       return TRUE;
  2074.     case e_uNERM :
  2075.       choice = new PASN_Null();
  2076.       return TRUE;
  2077.   }
  2078.  
  2079.   choice = NULL;
  2080.   return FALSE;
  2081. }
  2082.  
  2083.  
  2084. PObject * H245_V76LogicalChannelParameters_mode::Clone() const
  2085. {
  2086. #ifndef PASN_LEANANDMEAN
  2087.   PAssert(IsClass(H245_V76LogicalChannelParameters_mode::Class()), PInvalidCast);
  2088. #endif
  2089.   return new H245_V76LogicalChannelParameters_mode(*this);
  2090. }
  2091.  
  2092.  
  2093. //
  2094. // H2250LogicalChannelParameters_mediaPacketization
  2095. //
  2096.  
  2097. H245_H2250LogicalChannelParameters_mediaPacketization::H245_H2250LogicalChannelParameters_mediaPacketization(unsigned tag, PASN_Object::TagClass tagClass)
  2098.   : PASN_Choice(tag, tagClass, 1, TRUE
  2099. #ifndef PASN_NOPRINTON
  2100.       , "h261aVideoPacketization "
  2101.         "rtpPayloadType "
  2102. #endif
  2103.     )
  2104. {
  2105. }
  2106.  
  2107.  
  2108. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2109. H245_H2250LogicalChannelParameters_mediaPacketization::operator H245_RTPPayloadType &() const
  2110. #else
  2111. H245_H2250LogicalChannelParameters_mediaPacketization::operator H245_RTPPayloadType &()
  2112. {
  2113. #ifndef PASN_LEANANDMEAN
  2114.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RTPPayloadType::Class()), PInvalidCast);
  2115. #endif
  2116.   return *(H245_RTPPayloadType *)choice;
  2117. }
  2118.  
  2119.  
  2120. H245_H2250LogicalChannelParameters_mediaPacketization::operator const H245_RTPPayloadType &() const
  2121. #endif
  2122. {
  2123. #ifndef PASN_LEANANDMEAN
  2124.   PAssert(PAssertNULL(choice)->IsDescendant(H245_RTPPayloadType::Class()), PInvalidCast);
  2125. #endif
  2126.   return *(H245_RTPPayloadType *)choice;
  2127. }
  2128.  
  2129.  
  2130. BOOL H245_H2250LogicalChannelParameters_mediaPacketization::CreateObject()
  2131. {
  2132.   switch (tag) {
  2133.     case e_h261aVideoPacketization :
  2134.       choice = new PASN_Null();
  2135.       return TRUE;
  2136.     case e_rtpPayloadType :
  2137.       choice = new H245_RTPPayloadType();
  2138.       return TRUE;
  2139.   }
  2140.  
  2141.   choice = NULL;
  2142.   return FALSE;
  2143. }
  2144.  
  2145.  
  2146. PObject * H245_H2250LogicalChannelParameters_mediaPacketization::Clone() const
  2147. {
  2148. #ifndef PASN_LEANANDMEAN
  2149.   PAssert(IsClass(H245_H2250LogicalChannelParameters_mediaPacketization::Class()), PInvalidCast);
  2150. #endif
  2151.   return new H245_H2250LogicalChannelParameters_mediaPacketization(*this);
  2152. }
  2153.  
  2154.  
  2155. //
  2156. // RTPPayloadType_payloadDescriptor
  2157. //
  2158.  
  2159. H245_RTPPayloadType_payloadDescriptor::H245_RTPPayloadType_payloadDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  2160.   : PASN_Choice(tag, tagClass, 3, TRUE
  2161. #ifndef PASN_NOPRINTON
  2162.       , "nonStandardIdentifier "
  2163.         "rfc_number "
  2164.         "oid "
  2165. #endif
  2166.     )
  2167. {
  2168. }
  2169.  
  2170.  
  2171. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2172. H245_RTPPayloadType_payloadDescriptor::operator H245_NonStandardParameter &() const
  2173. #else
  2174. H245_RTPPayloadType_payloadDescriptor::operator H245_NonStandardParameter &()
  2175. {
  2176. #ifndef PASN_LEANANDMEAN
  2177.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  2178. #endif
  2179.   return *(H245_NonStandardParameter *)choice;
  2180. }
  2181.  
  2182.  
  2183. H245_RTPPayloadType_payloadDescriptor::operator const H245_NonStandardParameter &() const
  2184. #endif
  2185. {
  2186. #ifndef PASN_LEANANDMEAN
  2187.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  2188. #endif
  2189.   return *(H245_NonStandardParameter *)choice;
  2190. }
  2191.  
  2192.  
  2193. BOOL H245_RTPPayloadType_payloadDescriptor::CreateObject()
  2194. {
  2195.   switch (tag) {
  2196.     case e_nonStandardIdentifier :
  2197.       choice = new H245_NonStandardParameter();
  2198.       return TRUE;
  2199.     case e_rfc_number :
  2200.       choice = new PASN_Integer();
  2201.       choice->SetConstraints(PASN_Object::ExtendableConstraint, 1, 32768);
  2202.       return TRUE;
  2203.     case e_oid :
  2204.       choice = new PASN_ObjectId();
  2205.       return TRUE;
  2206.   }
  2207.  
  2208.   choice = NULL;
  2209.   return FALSE;
  2210. }
  2211.  
  2212.  
  2213. PObject * H245_RTPPayloadType_payloadDescriptor::Clone() const
  2214. {
  2215. #ifndef PASN_LEANANDMEAN
  2216.   PAssert(IsClass(H245_RTPPayloadType_payloadDescriptor::Class()), PInvalidCast);
  2217. #endif
  2218.   return new H245_RTPPayloadType_payloadDescriptor(*this);
  2219. }
  2220.  
  2221.  
  2222. //
  2223. // UnicastAddress_iPAddress
  2224. //
  2225.  
  2226. H245_UnicastAddress_iPAddress::H245_UnicastAddress_iPAddress(unsigned tag, PASN_Object::TagClass tagClass)
  2227.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2228. {
  2229.   m_network.SetConstraints(PASN_Object::FixedConstraint, 4);
  2230.   m_tsapIdentifier.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  2231. }
  2232.  
  2233.  
  2234. #ifndef PASN_NOPRINTON
  2235. void H245_UnicastAddress_iPAddress::PrintOn(ostream & strm) const
  2236. {
  2237.   int indent = strm.precision() + 2;
  2238.   strm << "{\n";
  2239.   strm << setw(indent+10) << "network = " << setprecision(indent) << m_network << '\n';
  2240.   strm << setw(indent+17) << "tsapIdentifier = " << setprecision(indent) << m_tsapIdentifier << '\n';
  2241.   strm << setw(indent-1) << "}";
  2242. }
  2243. #endif
  2244.  
  2245.  
  2246. PObject::Comparison H245_UnicastAddress_iPAddress::Compare(const PObject & obj) const
  2247. {
  2248. #ifndef PASN_LEANANDMEAN
  2249.   PAssert(IsDescendant(H245_UnicastAddress_iPAddress::Class()), PInvalidCast);
  2250. #endif
  2251.   const H245_UnicastAddress_iPAddress & other = (const H245_UnicastAddress_iPAddress &)obj;
  2252.  
  2253.   Comparison result;
  2254.  
  2255.   if ((result = m_network.Compare(other.m_network)) != EqualTo)
  2256.     return result;
  2257.   if ((result = m_tsapIdentifier.Compare(other.m_tsapIdentifier)) != EqualTo)
  2258.     return result;
  2259.  
  2260.   return PASN_Sequence::Compare(other);
  2261. }
  2262.  
  2263.  
  2264. PINDEX H245_UnicastAddress_iPAddress::GetDataLength() const
  2265. {
  2266.   PINDEX length = 0;
  2267.   length += m_network.GetObjectLength();
  2268.   length += m_tsapIdentifier.GetObjectLength();
  2269.   return length;
  2270. }
  2271.  
  2272.  
  2273. BOOL H245_UnicastAddress_iPAddress::Decode(PASN_Stream & strm)
  2274. {
  2275.   if (!PreambleDecode(strm))
  2276.     return FALSE;
  2277.  
  2278.   if (!m_network.Decode(strm))
  2279.     return FALSE;
  2280.   if (!m_tsapIdentifier.Decode(strm))
  2281.     return FALSE;
  2282.  
  2283.   return UnknownExtensionsDecode(strm);
  2284. }
  2285.  
  2286.  
  2287. void H245_UnicastAddress_iPAddress::Encode(PASN_Stream & strm) const
  2288. {
  2289.   PreambleEncode(strm);
  2290.  
  2291.   m_network.Encode(strm);
  2292.   m_tsapIdentifier.Encode(strm);
  2293.  
  2294.   UnknownExtensionsEncode(strm);
  2295. }
  2296.  
  2297.  
  2298. PObject * H245_UnicastAddress_iPAddress::Clone() const
  2299. {
  2300. #ifndef PASN_LEANANDMEAN
  2301.   PAssert(IsClass(H245_UnicastAddress_iPAddress::Class()), PInvalidCast);
  2302. #endif
  2303.   return new H245_UnicastAddress_iPAddress(*this);
  2304. }
  2305.  
  2306.  
  2307. //
  2308. // UnicastAddress_iPXAddress
  2309. //
  2310.  
  2311. H245_UnicastAddress_iPXAddress::H245_UnicastAddress_iPXAddress(unsigned tag, PASN_Object::TagClass tagClass)
  2312.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2313. {
  2314.   m_node.SetConstraints(PASN_Object::FixedConstraint, 6);
  2315.   m_netnum.SetConstraints(PASN_Object::FixedConstraint, 4);
  2316.   m_tsapIdentifier.SetConstraints(PASN_Object::FixedConstraint, 2);
  2317. }
  2318.  
  2319.  
  2320. #ifndef PASN_NOPRINTON
  2321. void H245_UnicastAddress_iPXAddress::PrintOn(ostream & strm) const
  2322. {
  2323.   int indent = strm.precision() + 2;
  2324.   strm << "{\n";
  2325.   strm << setw(indent+7) << "node = " << setprecision(indent) << m_node << '\n';
  2326.   strm << setw(indent+9) << "netnum = " << setprecision(indent) << m_netnum << '\n';
  2327.   strm << setw(indent+17) << "tsapIdentifier = " << setprecision(indent) << m_tsapIdentifier << '\n';
  2328.   strm << setw(indent-1) << "}";
  2329. }
  2330. #endif
  2331.  
  2332.  
  2333. PObject::Comparison H245_UnicastAddress_iPXAddress::Compare(const PObject & obj) const
  2334. {
  2335. #ifndef PASN_LEANANDMEAN
  2336.   PAssert(IsDescendant(H245_UnicastAddress_iPXAddress::Class()), PInvalidCast);
  2337. #endif
  2338.   const H245_UnicastAddress_iPXAddress & other = (const H245_UnicastAddress_iPXAddress &)obj;
  2339.  
  2340.   Comparison result;
  2341.  
  2342.   if ((result = m_node.Compare(other.m_node)) != EqualTo)
  2343.     return result;
  2344.   if ((result = m_netnum.Compare(other.m_netnum)) != EqualTo)
  2345.     return result;
  2346.   if ((result = m_tsapIdentifier.Compare(other.m_tsapIdentifier)) != EqualTo)
  2347.     return result;
  2348.  
  2349.   return PASN_Sequence::Compare(other);
  2350. }
  2351.  
  2352.  
  2353. PINDEX H245_UnicastAddress_iPXAddress::GetDataLength() const
  2354. {
  2355.   PINDEX length = 0;
  2356.   length += m_node.GetObjectLength();
  2357.   length += m_netnum.GetObjectLength();
  2358.   length += m_tsapIdentifier.GetObjectLength();
  2359.   return length;
  2360. }
  2361.  
  2362.  
  2363. BOOL H245_UnicastAddress_iPXAddress::Decode(PASN_Stream & strm)
  2364. {
  2365.   if (!PreambleDecode(strm))
  2366.     return FALSE;
  2367.  
  2368.   if (!m_node.Decode(strm))
  2369.     return FALSE;
  2370.   if (!m_netnum.Decode(strm))
  2371.     return FALSE;
  2372.   if (!m_tsapIdentifier.Decode(strm))
  2373.     return FALSE;
  2374.  
  2375.   return UnknownExtensionsDecode(strm);
  2376. }
  2377.  
  2378.  
  2379. void H245_UnicastAddress_iPXAddress::Encode(PASN_Stream & strm) const
  2380. {
  2381.   PreambleEncode(strm);
  2382.  
  2383.   m_node.Encode(strm);
  2384.   m_netnum.Encode(strm);
  2385.   m_tsapIdentifier.Encode(strm);
  2386.  
  2387.   UnknownExtensionsEncode(strm);
  2388. }
  2389.  
  2390.  
  2391. PObject * H245_UnicastAddress_iPXAddress::Clone() const
  2392. {
  2393. #ifndef PASN_LEANANDMEAN
  2394.   PAssert(IsClass(H245_UnicastAddress_iPXAddress::Class()), PInvalidCast);
  2395. #endif
  2396.   return new H245_UnicastAddress_iPXAddress(*this);
  2397. }
  2398.  
  2399.  
  2400. //
  2401. // UnicastAddress_iP6Address
  2402. //
  2403.  
  2404. H245_UnicastAddress_iP6Address::H245_UnicastAddress_iP6Address(unsigned tag, PASN_Object::TagClass tagClass)
  2405.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2406. {
  2407.   m_network.SetConstraints(PASN_Object::FixedConstraint, 16);
  2408.   m_tsapIdentifier.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  2409. }
  2410.  
  2411.  
  2412. #ifndef PASN_NOPRINTON
  2413. void H245_UnicastAddress_iP6Address::PrintOn(ostream & strm) const
  2414. {
  2415.   int indent = strm.precision() + 2;
  2416.   strm << "{\n";
  2417.   strm << setw(indent+10) << "network = " << setprecision(indent) << m_network << '\n';
  2418.   strm << setw(indent+17) << "tsapIdentifier = " << setprecision(indent) << m_tsapIdentifier << '\n';
  2419.   strm << setw(indent-1) << "}";
  2420. }
  2421. #endif
  2422.  
  2423.  
  2424. PObject::Comparison H245_UnicastAddress_iP6Address::Compare(const PObject & obj) const
  2425. {
  2426. #ifndef PASN_LEANANDMEAN
  2427.   PAssert(IsDescendant(H245_UnicastAddress_iP6Address::Class()), PInvalidCast);
  2428. #endif
  2429.   const H245_UnicastAddress_iP6Address & other = (const H245_UnicastAddress_iP6Address &)obj;
  2430.  
  2431.   Comparison result;
  2432.  
  2433.   if ((result = m_network.Compare(other.m_network)) != EqualTo)
  2434.     return result;
  2435.   if ((result = m_tsapIdentifier.Compare(other.m_tsapIdentifier)) != EqualTo)
  2436.     return result;
  2437.  
  2438.   return PASN_Sequence::Compare(other);
  2439. }
  2440.  
  2441.  
  2442. PINDEX H245_UnicastAddress_iP6Address::GetDataLength() const
  2443. {
  2444.   PINDEX length = 0;
  2445.   length += m_network.GetObjectLength();
  2446.   length += m_tsapIdentifier.GetObjectLength();
  2447.   return length;
  2448. }
  2449.  
  2450.  
  2451. BOOL H245_UnicastAddress_iP6Address::Decode(PASN_Stream & strm)
  2452. {
  2453.   if (!PreambleDecode(strm))
  2454.     return FALSE;
  2455.  
  2456.   if (!m_network.Decode(strm))
  2457.     return FALSE;
  2458.   if (!m_tsapIdentifier.Decode(strm))
  2459.     return FALSE;
  2460.  
  2461.   return UnknownExtensionsDecode(strm);
  2462. }
  2463.  
  2464.  
  2465. void H245_UnicastAddress_iP6Address::Encode(PASN_Stream & strm) const
  2466. {
  2467.   PreambleEncode(strm);
  2468.  
  2469.   m_network.Encode(strm);
  2470.   m_tsapIdentifier.Encode(strm);
  2471.  
  2472.   UnknownExtensionsEncode(strm);
  2473. }
  2474.  
  2475.  
  2476. PObject * H245_UnicastAddress_iP6Address::Clone() const
  2477. {
  2478. #ifndef PASN_LEANANDMEAN
  2479.   PAssert(IsClass(H245_UnicastAddress_iP6Address::Class()), PInvalidCast);
  2480. #endif
  2481.   return new H245_UnicastAddress_iP6Address(*this);
  2482. }
  2483.  
  2484.  
  2485. //
  2486. // MulticastAddress_iPAddress
  2487. //
  2488.  
  2489. H245_MulticastAddress_iPAddress::H245_MulticastAddress_iPAddress(unsigned tag, PASN_Object::TagClass tagClass)
  2490.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2491. {
  2492.   m_network.SetConstraints(PASN_Object::FixedConstraint, 4);
  2493.   m_tsapIdentifier.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  2494. }
  2495.  
  2496.  
  2497. #ifndef PASN_NOPRINTON
  2498. void H245_MulticastAddress_iPAddress::PrintOn(ostream & strm) const
  2499. {
  2500.   int indent = strm.precision() + 2;
  2501.   strm << "{\n";
  2502.   strm << setw(indent+10) << "network = " << setprecision(indent) << m_network << '\n';
  2503.   strm << setw(indent+17) << "tsapIdentifier = " << setprecision(indent) << m_tsapIdentifier << '\n';
  2504.   strm << setw(indent-1) << "}";
  2505. }
  2506. #endif
  2507.  
  2508.  
  2509. PObject::Comparison H245_MulticastAddress_iPAddress::Compare(const PObject & obj) const
  2510. {
  2511. #ifndef PASN_LEANANDMEAN
  2512.   PAssert(IsDescendant(H245_MulticastAddress_iPAddress::Class()), PInvalidCast);
  2513. #endif
  2514.   const H245_MulticastAddress_iPAddress & other = (const H245_MulticastAddress_iPAddress &)obj;
  2515.  
  2516.   Comparison result;
  2517.  
  2518.   if ((result = m_network.Compare(other.m_network)) != EqualTo)
  2519.     return result;
  2520.   if ((result = m_tsapIdentifier.Compare(other.m_tsapIdentifier)) != EqualTo)
  2521.     return result;
  2522.  
  2523.   return PASN_Sequence::Compare(other);
  2524. }
  2525.  
  2526.  
  2527. PINDEX H245_MulticastAddress_iPAddress::GetDataLength() const
  2528. {
  2529.   PINDEX length = 0;
  2530.   length += m_network.GetObjectLength();
  2531.   length += m_tsapIdentifier.GetObjectLength();
  2532.   return length;
  2533. }
  2534.  
  2535.  
  2536. BOOL H245_MulticastAddress_iPAddress::Decode(PASN_Stream & strm)
  2537. {
  2538.   if (!PreambleDecode(strm))
  2539.     return FALSE;
  2540.  
  2541.   if (!m_network.Decode(strm))
  2542.     return FALSE;
  2543.   if (!m_tsapIdentifier.Decode(strm))
  2544.     return FALSE;
  2545.  
  2546.   return UnknownExtensionsDecode(strm);
  2547. }
  2548.  
  2549.  
  2550. void H245_MulticastAddress_iPAddress::Encode(PASN_Stream & strm) const
  2551. {
  2552.   PreambleEncode(strm);
  2553.  
  2554.   m_network.Encode(strm);
  2555.   m_tsapIdentifier.Encode(strm);
  2556.  
  2557.   UnknownExtensionsEncode(strm);
  2558. }
  2559.  
  2560.  
  2561. PObject * H245_MulticastAddress_iPAddress::Clone() const
  2562. {
  2563. #ifndef PASN_LEANANDMEAN
  2564.   PAssert(IsClass(H245_MulticastAddress_iPAddress::Class()), PInvalidCast);
  2565. #endif
  2566.   return new H245_MulticastAddress_iPAddress(*this);
  2567. }
  2568.  
  2569.  
  2570. //
  2571. // MulticastAddress_iP6Address
  2572. //
  2573.  
  2574. H245_MulticastAddress_iP6Address::H245_MulticastAddress_iP6Address(unsigned tag, PASN_Object::TagClass tagClass)
  2575.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2576. {
  2577.   m_network.SetConstraints(PASN_Object::FixedConstraint, 16);
  2578.   m_tsapIdentifier.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  2579. }
  2580.  
  2581.  
  2582. #ifndef PASN_NOPRINTON
  2583. void H245_MulticastAddress_iP6Address::PrintOn(ostream & strm) const
  2584. {
  2585.   int indent = strm.precision() + 2;
  2586.   strm << "{\n";
  2587.   strm << setw(indent+10) << "network = " << setprecision(indent) << m_network << '\n';
  2588.   strm << setw(indent+17) << "tsapIdentifier = " << setprecision(indent) << m_tsapIdentifier << '\n';
  2589.   strm << setw(indent-1) << "}";
  2590. }
  2591. #endif
  2592.  
  2593.  
  2594. PObject::Comparison H245_MulticastAddress_iP6Address::Compare(const PObject & obj) const
  2595. {
  2596. #ifndef PASN_LEANANDMEAN
  2597.   PAssert(IsDescendant(H245_MulticastAddress_iP6Address::Class()), PInvalidCast);
  2598. #endif
  2599.   const H245_MulticastAddress_iP6Address & other = (const H245_MulticastAddress_iP6Address &)obj;
  2600.  
  2601.   Comparison result;
  2602.  
  2603.   if ((result = m_network.Compare(other.m_network)) != EqualTo)
  2604.     return result;
  2605.   if ((result = m_tsapIdentifier.Compare(other.m_tsapIdentifier)) != EqualTo)
  2606.     return result;
  2607.  
  2608.   return PASN_Sequence::Compare(other);
  2609. }
  2610.  
  2611.  
  2612. PINDEX H245_MulticastAddress_iP6Address::GetDataLength() const
  2613. {
  2614.   PINDEX length = 0;
  2615.   length += m_network.GetObjectLength();
  2616.   length += m_tsapIdentifier.GetObjectLength();
  2617.   return length;
  2618. }
  2619.  
  2620.  
  2621. BOOL H245_MulticastAddress_iP6Address::Decode(PASN_Stream & strm)
  2622. {
  2623.   if (!PreambleDecode(strm))
  2624.     return FALSE;
  2625.  
  2626.   if (!m_network.Decode(strm))
  2627.     return FALSE;
  2628.   if (!m_tsapIdentifier.Decode(strm))
  2629.     return FALSE;
  2630.  
  2631.   return UnknownExtensionsDecode(strm);
  2632. }
  2633.  
  2634.  
  2635. void H245_MulticastAddress_iP6Address::Encode(PASN_Stream & strm) const
  2636. {
  2637.   PreambleEncode(strm);
  2638.  
  2639.   m_network.Encode(strm);
  2640.   m_tsapIdentifier.Encode(strm);
  2641.  
  2642.   UnknownExtensionsEncode(strm);
  2643. }
  2644.  
  2645.  
  2646. PObject * H245_MulticastAddress_iP6Address::Clone() const
  2647. {
  2648. #ifndef PASN_LEANANDMEAN
  2649.   PAssert(IsClass(H245_MulticastAddress_iP6Address::Class()), PInvalidCast);
  2650. #endif
  2651.   return new H245_MulticastAddress_iP6Address(*this);
  2652. }
  2653.  
  2654.  
  2655. //
  2656. // ArrayOf_EscrowData
  2657. //
  2658.  
  2659. H245_ArrayOf_EscrowData::H245_ArrayOf_EscrowData(unsigned tag, PASN_Object::TagClass tagClass)
  2660.   : PASN_Array(tag, tagClass)
  2661. {
  2662. }
  2663.  
  2664.  
  2665. PASN_Object * H245_ArrayOf_EscrowData::CreateObject() const
  2666. {
  2667.   return new H245_EscrowData;
  2668. }
  2669.  
  2670.  
  2671. H245_EscrowData & H245_ArrayOf_EscrowData::operator[](PINDEX i) const
  2672. {
  2673.   return (H245_EscrowData &)array[i];
  2674. }
  2675.  
  2676.  
  2677. PObject * H245_ArrayOf_EscrowData::Clone() const
  2678. {
  2679. #ifndef PASN_LEANANDMEAN
  2680.   PAssert(IsClass(H245_ArrayOf_EscrowData::Class()), PInvalidCast);
  2681. #endif
  2682.   return new H245_ArrayOf_EscrowData(*this);
  2683. }
  2684.  
  2685.  
  2686. //
  2687. // OpenLogicalChannelAck_forwardMultiplexAckParameters
  2688. //
  2689.  
  2690. H245_OpenLogicalChannelAck_forwardMultiplexAckParameters::H245_OpenLogicalChannelAck_forwardMultiplexAckParameters(unsigned tag, PASN_Object::TagClass tagClass)
  2691.   : PASN_Choice(tag, tagClass, 1, TRUE
  2692. #ifndef PASN_NOPRINTON
  2693.       , "h2250LogicalChannelAckParameters "
  2694. #endif
  2695.     )
  2696. {
  2697. }
  2698.  
  2699.  
  2700. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2701. H245_OpenLogicalChannelAck_forwardMultiplexAckParameters::operator H245_H2250LogicalChannelAckParameters &() const
  2702. #else
  2703. H245_OpenLogicalChannelAck_forwardMultiplexAckParameters::operator H245_H2250LogicalChannelAckParameters &()
  2704. {
  2705. #ifndef PASN_LEANANDMEAN
  2706.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelAckParameters::Class()), PInvalidCast);
  2707. #endif
  2708.   return *(H245_H2250LogicalChannelAckParameters *)choice;
  2709. }
  2710.  
  2711.  
  2712. H245_OpenLogicalChannelAck_forwardMultiplexAckParameters::operator const H245_H2250LogicalChannelAckParameters &() const
  2713. #endif
  2714. {
  2715. #ifndef PASN_LEANANDMEAN
  2716.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelAckParameters::Class()), PInvalidCast);
  2717. #endif
  2718.   return *(H245_H2250LogicalChannelAckParameters *)choice;
  2719. }
  2720.  
  2721.  
  2722. BOOL H245_OpenLogicalChannelAck_forwardMultiplexAckParameters::CreateObject()
  2723. {
  2724.   switch (tag) {
  2725.     case e_h2250LogicalChannelAckParameters :
  2726.       choice = new H245_H2250LogicalChannelAckParameters();
  2727.       return TRUE;
  2728.   }
  2729.  
  2730.   choice = NULL;
  2731.   return FALSE;
  2732. }
  2733.  
  2734.  
  2735. PObject * H245_OpenLogicalChannelAck_forwardMultiplexAckParameters::Clone() const
  2736. {
  2737. #ifndef PASN_LEANANDMEAN
  2738.   PAssert(IsClass(H245_OpenLogicalChannelAck_forwardMultiplexAckParameters::Class()), PInvalidCast);
  2739. #endif
  2740.   return new H245_OpenLogicalChannelAck_forwardMultiplexAckParameters(*this);
  2741. }
  2742.  
  2743.  
  2744. //
  2745. // OpenLogicalChannelReject_cause
  2746. //
  2747.  
  2748. H245_OpenLogicalChannelReject_cause::H245_OpenLogicalChannelReject_cause(unsigned tag, PASN_Object::TagClass tagClass)
  2749.   : PASN_Choice(tag, tagClass, 6, TRUE
  2750. #ifndef PASN_NOPRINTON
  2751.       , "unspecified "
  2752.         "unsuitableReverseParameters "
  2753.         "dataTypeNotSupported "
  2754.         "dataTypeNotAvailable "
  2755.         "unknownDataType "
  2756.         "dataTypeALCombinationNotSupported "
  2757.         "multicastChannelNotAllowed "
  2758.         "insufficientBandwidth "
  2759.         "separateStackEstablishmentFailed "
  2760.         "invalidSessionID "
  2761.         "masterSlaveConflict "
  2762.         "waitForCommunicationMode "
  2763.         "invalidDependentChannel "
  2764.         "replacementForRejected "
  2765. #endif
  2766.     )
  2767. {
  2768. }
  2769.  
  2770.  
  2771. BOOL H245_OpenLogicalChannelReject_cause::CreateObject()
  2772. {
  2773.   choice = (tag <= e_replacementForRejected) ? new PASN_Null() : NULL;
  2774.   return choice != NULL;
  2775. }
  2776.  
  2777.  
  2778. PObject * H245_OpenLogicalChannelReject_cause::Clone() const
  2779. {
  2780. #ifndef PASN_LEANANDMEAN
  2781.   PAssert(IsClass(H245_OpenLogicalChannelReject_cause::Class()), PInvalidCast);
  2782. #endif
  2783.   return new H245_OpenLogicalChannelReject_cause(*this);
  2784. }
  2785.  
  2786.  
  2787. //
  2788. // CloseLogicalChannel_source
  2789. //
  2790.  
  2791. H245_CloseLogicalChannel_source::H245_CloseLogicalChannel_source(unsigned tag, PASN_Object::TagClass tagClass)
  2792.   : PASN_Choice(tag, tagClass, 2, FALSE
  2793. #ifndef PASN_NOPRINTON
  2794.       , "user "
  2795.         "lcse "
  2796. #endif
  2797.     )
  2798. {
  2799. }
  2800.  
  2801.  
  2802. BOOL H245_CloseLogicalChannel_source::CreateObject()
  2803. {
  2804.   choice = (tag <= e_lcse) ? new PASN_Null() : NULL;
  2805.   return choice != NULL;
  2806. }
  2807.  
  2808.  
  2809. PObject * H245_CloseLogicalChannel_source::Clone() const
  2810. {
  2811. #ifndef PASN_LEANANDMEAN
  2812.   PAssert(IsClass(H245_CloseLogicalChannel_source::Class()), PInvalidCast);
  2813. #endif
  2814.   return new H245_CloseLogicalChannel_source(*this);
  2815. }
  2816.  
  2817.  
  2818. //
  2819. // CloseLogicalChannel_reason
  2820. //
  2821.  
  2822. H245_CloseLogicalChannel_reason::H245_CloseLogicalChannel_reason(unsigned tag, PASN_Object::TagClass tagClass)
  2823.   : PASN_Choice(tag, tagClass, 3, TRUE
  2824. #ifndef PASN_NOPRINTON
  2825.       , "unknown "
  2826.         "reopen "
  2827.         "reservationFailure "
  2828. #endif
  2829.     )
  2830. {
  2831. }
  2832.  
  2833.  
  2834. BOOL H245_CloseLogicalChannel_reason::CreateObject()
  2835. {
  2836.   choice = (tag <= e_reservationFailure) ? new PASN_Null() : NULL;
  2837.   return choice != NULL;
  2838. }
  2839.  
  2840.  
  2841. PObject * H245_CloseLogicalChannel_reason::Clone() const
  2842. {
  2843. #ifndef PASN_LEANANDMEAN
  2844.   PAssert(IsClass(H245_CloseLogicalChannel_reason::Class()), PInvalidCast);
  2845. #endif
  2846.   return new H245_CloseLogicalChannel_reason(*this);
  2847. }
  2848.  
  2849.  
  2850. //
  2851. // RequestChannelClose_reason
  2852. //
  2853.  
  2854. H245_RequestChannelClose_reason::H245_RequestChannelClose_reason(unsigned tag, PASN_Object::TagClass tagClass)
  2855.   : PASN_Choice(tag, tagClass, 4, TRUE
  2856. #ifndef PASN_NOPRINTON
  2857.       , "unknown "
  2858.         "normal "
  2859.         "reopen "
  2860.         "reservationFailure "
  2861. #endif
  2862.     )
  2863. {
  2864. }
  2865.  
  2866.  
  2867. BOOL H245_RequestChannelClose_reason::CreateObject()
  2868. {
  2869.   choice = (tag <= e_reservationFailure) ? new PASN_Null() : NULL;
  2870.   return choice != NULL;
  2871. }
  2872.  
  2873.  
  2874. PObject * H245_RequestChannelClose_reason::Clone() const
  2875. {
  2876. #ifndef PASN_LEANANDMEAN
  2877.   PAssert(IsClass(H245_RequestChannelClose_reason::Class()), PInvalidCast);
  2878. #endif
  2879.   return new H245_RequestChannelClose_reason(*this);
  2880. }
  2881.  
  2882.  
  2883. //
  2884. // RequestChannelCloseReject_cause
  2885. //
  2886.  
  2887. H245_RequestChannelCloseReject_cause::H245_RequestChannelCloseReject_cause(unsigned tag, PASN_Object::TagClass tagClass)
  2888.   : PASN_Choice(tag, tagClass, 1, TRUE
  2889. #ifndef PASN_NOPRINTON
  2890.       , "unspecified "
  2891. #endif
  2892.     )
  2893. {
  2894. }
  2895.  
  2896.  
  2897. BOOL H245_RequestChannelCloseReject_cause::CreateObject()
  2898. {
  2899.   choice = (tag <= e_unspecified) ? new PASN_Null() : NULL;
  2900.   return choice != NULL;
  2901. }
  2902.  
  2903.  
  2904. PObject * H245_RequestChannelCloseReject_cause::Clone() const
  2905. {
  2906. #ifndef PASN_LEANANDMEAN
  2907.   PAssert(IsClass(H245_RequestChannelCloseReject_cause::Class()), PInvalidCast);
  2908. #endif
  2909.   return new H245_RequestChannelCloseReject_cause(*this);
  2910. }
  2911.  
  2912.  
  2913. //
  2914. // ArrayOf_MultiplexEntryDescriptor
  2915. //
  2916.  
  2917. H245_ArrayOf_MultiplexEntryDescriptor::H245_ArrayOf_MultiplexEntryDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  2918.   : PASN_Array(tag, tagClass)
  2919. {
  2920. }
  2921.  
  2922.  
  2923. PASN_Object * H245_ArrayOf_MultiplexEntryDescriptor::CreateObject() const
  2924. {
  2925.   return new H245_MultiplexEntryDescriptor;
  2926. }
  2927.  
  2928.  
  2929. H245_MultiplexEntryDescriptor & H245_ArrayOf_MultiplexEntryDescriptor::operator[](PINDEX i) const
  2930. {
  2931.   return (H245_MultiplexEntryDescriptor &)array[i];
  2932. }
  2933.  
  2934.  
  2935. PObject * H245_ArrayOf_MultiplexEntryDescriptor::Clone() const
  2936. {
  2937. #ifndef PASN_LEANANDMEAN
  2938.   PAssert(IsClass(H245_ArrayOf_MultiplexEntryDescriptor::Class()), PInvalidCast);
  2939. #endif
  2940.   return new H245_ArrayOf_MultiplexEntryDescriptor(*this);
  2941. }
  2942.  
  2943.  
  2944. //
  2945. // ArrayOf_MultiplexElement
  2946. //
  2947.  
  2948. H245_ArrayOf_MultiplexElement::H245_ArrayOf_MultiplexElement(unsigned tag, PASN_Object::TagClass tagClass)
  2949.   : PASN_Array(tag, tagClass)
  2950. {
  2951. }
  2952.  
  2953.  
  2954. PASN_Object * H245_ArrayOf_MultiplexElement::CreateObject() const
  2955. {
  2956.   return new H245_MultiplexElement;
  2957. }
  2958.  
  2959.  
  2960. H245_MultiplexElement & H245_ArrayOf_MultiplexElement::operator[](PINDEX i) const
  2961. {
  2962.   return (H245_MultiplexElement &)array[i];
  2963. }
  2964.  
  2965.  
  2966. PObject * H245_ArrayOf_MultiplexElement::Clone() const
  2967. {
  2968. #ifndef PASN_LEANANDMEAN
  2969.   PAssert(IsClass(H245_ArrayOf_MultiplexElement::Class()), PInvalidCast);
  2970. #endif
  2971.   return new H245_ArrayOf_MultiplexElement(*this);
  2972. }
  2973.  
  2974.  
  2975. //
  2976. // MultiplexElement_type
  2977. //
  2978.  
  2979. H245_MultiplexElement_type::H245_MultiplexElement_type(unsigned tag, PASN_Object::TagClass tagClass)
  2980.   : PASN_Choice(tag, tagClass, 2, FALSE
  2981. #ifndef PASN_NOPRINTON
  2982.       , "logicalChannelNumber "
  2983.         "subElementList "
  2984. #endif
  2985.     )
  2986. {
  2987. }
  2988.  
  2989.  
  2990. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2991. H245_MultiplexElement_type::operator H245_ArrayOf_MultiplexElement &() const
  2992. #else
  2993. H245_MultiplexElement_type::operator H245_ArrayOf_MultiplexElement &()
  2994. {
  2995. #ifndef PASN_LEANANDMEAN
  2996.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_MultiplexElement::Class()), PInvalidCast);
  2997. #endif
  2998.   return *(H245_ArrayOf_MultiplexElement *)choice;
  2999. }
  3000.  
  3001.  
  3002. H245_MultiplexElement_type::operator const H245_ArrayOf_MultiplexElement &() const
  3003. #endif
  3004. {
  3005. #ifndef PASN_LEANANDMEAN
  3006.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_MultiplexElement::Class()), PInvalidCast);
  3007. #endif
  3008.   return *(H245_ArrayOf_MultiplexElement *)choice;
  3009. }
  3010.  
  3011.  
  3012. BOOL H245_MultiplexElement_type::CreateObject()
  3013. {
  3014.   switch (tag) {
  3015.     case e_logicalChannelNumber :
  3016.       choice = new PASN_Integer();
  3017.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  3018.       return TRUE;
  3019.     case e_subElementList :
  3020.       choice = new H245_ArrayOf_MultiplexElement();
  3021.       choice->SetConstraints(PASN_Object::FixedConstraint, 2, 255);
  3022.       return TRUE;
  3023.   }
  3024.  
  3025.   choice = NULL;
  3026.   return FALSE;
  3027. }
  3028.  
  3029.  
  3030. PObject * H245_MultiplexElement_type::Clone() const
  3031. {
  3032. #ifndef PASN_LEANANDMEAN
  3033.   PAssert(IsClass(H245_MultiplexElement_type::Class()), PInvalidCast);
  3034. #endif
  3035.   return new H245_MultiplexElement_type(*this);
  3036. }
  3037.  
  3038.  
  3039. //
  3040. // MultiplexElement_repeatCount
  3041. //
  3042.  
  3043. H245_MultiplexElement_repeatCount::H245_MultiplexElement_repeatCount(unsigned tag, PASN_Object::TagClass tagClass)
  3044.   : PASN_Choice(tag, tagClass, 2, FALSE
  3045. #ifndef PASN_NOPRINTON
  3046.       , "finite "
  3047.         "untilClosingFlag "
  3048. #endif
  3049.     )
  3050. {
  3051. }
  3052.  
  3053.  
  3054. BOOL H245_MultiplexElement_repeatCount::CreateObject()
  3055. {
  3056.   switch (tag) {
  3057.     case e_finite :
  3058.       choice = new PASN_Integer();
  3059.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  3060.       return TRUE;
  3061.     case e_untilClosingFlag :
  3062.       choice = new PASN_Null();
  3063.       return TRUE;
  3064.   }
  3065.  
  3066.   choice = NULL;
  3067.   return FALSE;
  3068. }
  3069.  
  3070.  
  3071. PObject * H245_MultiplexElement_repeatCount::Clone() const
  3072. {
  3073. #ifndef PASN_LEANANDMEAN
  3074.   PAssert(IsClass(H245_MultiplexElement_repeatCount::Class()), PInvalidCast);
  3075. #endif
  3076.   return new H245_MultiplexElement_repeatCount(*this);
  3077. }
  3078.  
  3079.  
  3080. //
  3081. // ArrayOf_MultiplexTableEntryNumber
  3082. //
  3083.  
  3084. H245_ArrayOf_MultiplexTableEntryNumber::H245_ArrayOf_MultiplexTableEntryNumber(unsigned tag, PASN_Object::TagClass tagClass)
  3085.   : PASN_Array(tag, tagClass)
  3086. {
  3087. }
  3088.  
  3089.  
  3090. PASN_Object * H245_ArrayOf_MultiplexTableEntryNumber::CreateObject() const
  3091. {
  3092.   return new H245_MultiplexTableEntryNumber;
  3093. }
  3094.  
  3095.  
  3096. H245_MultiplexTableEntryNumber & H245_ArrayOf_MultiplexTableEntryNumber::operator[](PINDEX i) const
  3097. {
  3098.   return (H245_MultiplexTableEntryNumber &)array[i];
  3099. }
  3100.  
  3101.  
  3102. PObject * H245_ArrayOf_MultiplexTableEntryNumber::Clone() const
  3103. {
  3104. #ifndef PASN_LEANANDMEAN
  3105.   PAssert(IsClass(H245_ArrayOf_MultiplexTableEntryNumber::Class()), PInvalidCast);
  3106. #endif
  3107.   return new H245_ArrayOf_MultiplexTableEntryNumber(*this);
  3108. }
  3109.  
  3110.  
  3111. //
  3112. // ArrayOf_MultiplexEntryRejectionDescriptions
  3113. //
  3114.  
  3115. H245_ArrayOf_MultiplexEntryRejectionDescriptions::H245_ArrayOf_MultiplexEntryRejectionDescriptions(unsigned tag, PASN_Object::TagClass tagClass)
  3116.   : PASN_Array(tag, tagClass)
  3117. {
  3118. }
  3119.  
  3120.  
  3121. PASN_Object * H245_ArrayOf_MultiplexEntryRejectionDescriptions::CreateObject() const
  3122. {
  3123.   return new H245_MultiplexEntryRejectionDescriptions;
  3124. }
  3125.  
  3126.  
  3127. H245_MultiplexEntryRejectionDescriptions & H245_ArrayOf_MultiplexEntryRejectionDescriptions::operator[](PINDEX i) const
  3128. {
  3129.   return (H245_MultiplexEntryRejectionDescriptions &)array[i];
  3130. }
  3131.  
  3132.  
  3133. PObject * H245_ArrayOf_MultiplexEntryRejectionDescriptions::Clone() const
  3134. {
  3135. #ifndef PASN_LEANANDMEAN
  3136.   PAssert(IsClass(H245_ArrayOf_MultiplexEntryRejectionDescriptions::Class()), PInvalidCast);
  3137. #endif
  3138.   return new H245_ArrayOf_MultiplexEntryRejectionDescriptions(*this);
  3139. }
  3140.  
  3141.  
  3142. //
  3143. // MultiplexEntryRejectionDescriptions_cause
  3144. //
  3145.  
  3146. H245_MultiplexEntryRejectionDescriptions_cause::H245_MultiplexEntryRejectionDescriptions_cause(unsigned tag, PASN_Object::TagClass tagClass)
  3147.   : PASN_Choice(tag, tagClass, 2, TRUE
  3148. #ifndef PASN_NOPRINTON
  3149.       , "unspecifiedCause "
  3150.         "descriptorTooComplex "
  3151. #endif
  3152.     )
  3153. {
  3154. }
  3155.  
  3156.  
  3157. BOOL H245_MultiplexEntryRejectionDescriptions_cause::CreateObject()
  3158. {
  3159.   choice = (tag <= e_descriptorTooComplex) ? new PASN_Null() : NULL;
  3160.   return choice != NULL;
  3161. }
  3162.  
  3163.  
  3164. PObject * H245_MultiplexEntryRejectionDescriptions_cause::Clone() const
  3165. {
  3166. #ifndef PASN_LEANANDMEAN
  3167.   PAssert(IsClass(H245_MultiplexEntryRejectionDescriptions_cause::Class()), PInvalidCast);
  3168. #endif
  3169.   return new H245_MultiplexEntryRejectionDescriptions_cause(*this);
  3170. }
  3171.  
  3172.  
  3173. //
  3174. // ArrayOf_RequestMultiplexEntryRejectionDescriptions
  3175. //
  3176.  
  3177. H245_ArrayOf_RequestMultiplexEntryRejectionDescriptions::H245_ArrayOf_RequestMultiplexEntryRejectionDescriptions(unsigned tag, PASN_Object::TagClass tagClass)
  3178.   : PASN_Array(tag, tagClass)
  3179. {
  3180. }
  3181.  
  3182.  
  3183. PASN_Object * H245_ArrayOf_RequestMultiplexEntryRejectionDescriptions::CreateObject() const
  3184. {
  3185.   return new H245_RequestMultiplexEntryRejectionDescriptions;
  3186. }
  3187.  
  3188.  
  3189. H245_RequestMultiplexEntryRejectionDescriptions & H245_ArrayOf_RequestMultiplexEntryRejectionDescriptions::operator[](PINDEX i) const
  3190. {
  3191.   return (H245_RequestMultiplexEntryRejectionDescriptions &)array[i];
  3192. }
  3193.  
  3194.  
  3195. PObject * H245_ArrayOf_RequestMultiplexEntryRejectionDescriptions::Clone() const
  3196. {
  3197. #ifndef PASN_LEANANDMEAN
  3198.   PAssert(IsClass(H245_ArrayOf_RequestMultiplexEntryRejectionDescriptions::Class()), PInvalidCast);
  3199. #endif
  3200.   return new H245_ArrayOf_RequestMultiplexEntryRejectionDescriptions(*this);
  3201. }
  3202.  
  3203.  
  3204. //
  3205. // RequestMultiplexEntryRejectionDescriptions_cause
  3206. //
  3207.  
  3208. H245_RequestMultiplexEntryRejectionDescriptions_cause::H245_RequestMultiplexEntryRejectionDescriptions_cause(unsigned tag, PASN_Object::TagClass tagClass)
  3209.   : PASN_Choice(tag, tagClass, 1, TRUE
  3210. #ifndef PASN_NOPRINTON
  3211.       , "unspecifiedCause "
  3212. #endif
  3213.     )
  3214. {
  3215. }
  3216.  
  3217.  
  3218. BOOL H245_RequestMultiplexEntryRejectionDescriptions_cause::CreateObject()
  3219. {
  3220.   choice = (tag <= e_unspecifiedCause) ? new PASN_Null() : NULL;
  3221.   return choice != NULL;
  3222. }
  3223.  
  3224.  
  3225. PObject * H245_RequestMultiplexEntryRejectionDescriptions_cause::Clone() const
  3226. {
  3227. #ifndef PASN_LEANANDMEAN
  3228.   PAssert(IsClass(H245_RequestMultiplexEntryRejectionDescriptions_cause::Class()), PInvalidCast);
  3229. #endif
  3230.   return new H245_RequestMultiplexEntryRejectionDescriptions_cause(*this);
  3231. }
  3232.  
  3233.  
  3234. //
  3235. // ArrayOf_ModeDescription
  3236. //
  3237.  
  3238. H245_ArrayOf_ModeDescription::H245_ArrayOf_ModeDescription(unsigned tag, PASN_Object::TagClass tagClass)
  3239.   : PASN_Array(tag, tagClass)
  3240. {
  3241. }
  3242.  
  3243.  
  3244. PASN_Object * H245_ArrayOf_ModeDescription::CreateObject() const
  3245. {
  3246.   return new H245_ModeDescription;
  3247. }
  3248.  
  3249.  
  3250. H245_ModeDescription & H245_ArrayOf_ModeDescription::operator[](PINDEX i) const
  3251. {
  3252.   return (H245_ModeDescription &)array[i];
  3253. }
  3254.  
  3255.  
  3256. PObject * H245_ArrayOf_ModeDescription::Clone() const
  3257. {
  3258. #ifndef PASN_LEANANDMEAN
  3259.   PAssert(IsClass(H245_ArrayOf_ModeDescription::Class()), PInvalidCast);
  3260. #endif
  3261.   return new H245_ArrayOf_ModeDescription(*this);
  3262. }
  3263.  
  3264.  
  3265. //
  3266. // RequestModeAck_response
  3267. //
  3268.  
  3269. H245_RequestModeAck_response::H245_RequestModeAck_response(unsigned tag, PASN_Object::TagClass tagClass)
  3270.   : PASN_Choice(tag, tagClass, 2, TRUE
  3271. #ifndef PASN_NOPRINTON
  3272.       , "willTransmitMostPreferredMode "
  3273.         "willTransmitLessPreferredMode "
  3274. #endif
  3275.     )
  3276. {
  3277. }
  3278.  
  3279.  
  3280. BOOL H245_RequestModeAck_response::CreateObject()
  3281. {
  3282.   choice = (tag <= e_willTransmitLessPreferredMode) ? new PASN_Null() : NULL;
  3283.   return choice != NULL;
  3284. }
  3285.  
  3286.  
  3287. PObject * H245_RequestModeAck_response::Clone() const
  3288. {
  3289. #ifndef PASN_LEANANDMEAN
  3290.   PAssert(IsClass(H245_RequestModeAck_response::Class()), PInvalidCast);
  3291. #endif
  3292.   return new H245_RequestModeAck_response(*this);
  3293. }
  3294.  
  3295.  
  3296. //
  3297. // RequestModeReject_cause
  3298. //
  3299.  
  3300. H245_RequestModeReject_cause::H245_RequestModeReject_cause(unsigned tag, PASN_Object::TagClass tagClass)
  3301.   : PASN_Choice(tag, tagClass, 3, TRUE
  3302. #ifndef PASN_NOPRINTON
  3303.       , "modeUnavailable "
  3304.         "multipointConstraint "
  3305.         "requestDenied "
  3306. #endif
  3307.     )
  3308. {
  3309. }
  3310.  
  3311.  
  3312. BOOL H245_RequestModeReject_cause::CreateObject()
  3313. {
  3314.   choice = (tag <= e_requestDenied) ? new PASN_Null() : NULL;
  3315.   return choice != NULL;
  3316. }
  3317.  
  3318.  
  3319. PObject * H245_RequestModeReject_cause::Clone() const
  3320. {
  3321. #ifndef PASN_LEANANDMEAN
  3322.   PAssert(IsClass(H245_RequestModeReject_cause::Class()), PInvalidCast);
  3323. #endif
  3324.   return new H245_RequestModeReject_cause(*this);
  3325. }
  3326.  
  3327.  
  3328. //
  3329. // ModeElement_type
  3330. //
  3331.  
  3332. H245_ModeElement_type::H245_ModeElement_type(unsigned tag, PASN_Object::TagClass tagClass)
  3333.   : PASN_Choice(tag, tagClass, 5, TRUE
  3334. #ifndef PASN_NOPRINTON
  3335.       , "nonStandard "
  3336.         "videoMode "
  3337.         "audioMode "
  3338.         "dataMode "
  3339.         "encryptionMode "
  3340.         "h235Mode "
  3341.         "multiplexedStreamMode "
  3342. #endif
  3343.     )
  3344. {
  3345. }
  3346.  
  3347.  
  3348. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3349. H245_ModeElement_type::operator H245_NonStandardParameter &() const
  3350. #else
  3351. H245_ModeElement_type::operator H245_NonStandardParameter &()
  3352. {
  3353. #ifndef PASN_LEANANDMEAN
  3354.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3355. #endif
  3356.   return *(H245_NonStandardParameter *)choice;
  3357. }
  3358.  
  3359.  
  3360. H245_ModeElement_type::operator const H245_NonStandardParameter &() const
  3361. #endif
  3362. {
  3363. #ifndef PASN_LEANANDMEAN
  3364.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3365. #endif
  3366.   return *(H245_NonStandardParameter *)choice;
  3367. }
  3368.  
  3369.  
  3370. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3371. H245_ModeElement_type::operator H245_VideoMode &() const
  3372. #else
  3373. H245_ModeElement_type::operator H245_VideoMode &()
  3374. {
  3375. #ifndef PASN_LEANANDMEAN
  3376.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoMode::Class()), PInvalidCast);
  3377. #endif
  3378.   return *(H245_VideoMode *)choice;
  3379. }
  3380.  
  3381.  
  3382. H245_ModeElement_type::operator const H245_VideoMode &() const
  3383. #endif
  3384. {
  3385. #ifndef PASN_LEANANDMEAN
  3386.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoMode::Class()), PInvalidCast);
  3387. #endif
  3388.   return *(H245_VideoMode *)choice;
  3389. }
  3390.  
  3391.  
  3392. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3393. H245_ModeElement_type::operator H245_AudioMode &() const
  3394. #else
  3395. H245_ModeElement_type::operator H245_AudioMode &()
  3396. {
  3397. #ifndef PASN_LEANANDMEAN
  3398.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode::Class()), PInvalidCast);
  3399. #endif
  3400.   return *(H245_AudioMode *)choice;
  3401. }
  3402.  
  3403.  
  3404. H245_ModeElement_type::operator const H245_AudioMode &() const
  3405. #endif
  3406. {
  3407. #ifndef PASN_LEANANDMEAN
  3408.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode::Class()), PInvalidCast);
  3409. #endif
  3410.   return *(H245_AudioMode *)choice;
  3411. }
  3412.  
  3413.  
  3414. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3415. H245_ModeElement_type::operator H245_DataMode &() const
  3416. #else
  3417. H245_ModeElement_type::operator H245_DataMode &()
  3418. {
  3419. #ifndef PASN_LEANANDMEAN
  3420.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode::Class()), PInvalidCast);
  3421. #endif
  3422.   return *(H245_DataMode *)choice;
  3423. }
  3424.  
  3425.  
  3426. H245_ModeElement_type::operator const H245_DataMode &() const
  3427. #endif
  3428. {
  3429. #ifndef PASN_LEANANDMEAN
  3430.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode::Class()), PInvalidCast);
  3431. #endif
  3432.   return *(H245_DataMode *)choice;
  3433. }
  3434.  
  3435.  
  3436. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3437. H245_ModeElement_type::operator H245_EncryptionMode &() const
  3438. #else
  3439. H245_ModeElement_type::operator H245_EncryptionMode &()
  3440. {
  3441. #ifndef PASN_LEANANDMEAN
  3442.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionMode::Class()), PInvalidCast);
  3443. #endif
  3444.   return *(H245_EncryptionMode *)choice;
  3445. }
  3446.  
  3447.  
  3448. H245_ModeElement_type::operator const H245_EncryptionMode &() const
  3449. #endif
  3450. {
  3451. #ifndef PASN_LEANANDMEAN
  3452.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionMode::Class()), PInvalidCast);
  3453. #endif
  3454.   return *(H245_EncryptionMode *)choice;
  3455. }
  3456.  
  3457.  
  3458. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3459. H245_ModeElement_type::operator H245_H235Mode &() const
  3460. #else
  3461. H245_ModeElement_type::operator H245_H235Mode &()
  3462. {
  3463. #ifndef PASN_LEANANDMEAN
  3464.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H235Mode::Class()), PInvalidCast);
  3465. #endif
  3466.   return *(H245_H235Mode *)choice;
  3467. }
  3468.  
  3469.  
  3470. H245_ModeElement_type::operator const H245_H235Mode &() const
  3471. #endif
  3472. {
  3473. #ifndef PASN_LEANANDMEAN
  3474.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H235Mode::Class()), PInvalidCast);
  3475. #endif
  3476.   return *(H245_H235Mode *)choice;
  3477. }
  3478.  
  3479.  
  3480. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3481. H245_ModeElement_type::operator H245_MultiplexedStreamParameter &() const
  3482. #else
  3483. H245_ModeElement_type::operator H245_MultiplexedStreamParameter &()
  3484. {
  3485. #ifndef PASN_LEANANDMEAN
  3486.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexedStreamParameter::Class()), PInvalidCast);
  3487. #endif
  3488.   return *(H245_MultiplexedStreamParameter *)choice;
  3489. }
  3490.  
  3491.  
  3492. H245_ModeElement_type::operator const H245_MultiplexedStreamParameter &() const
  3493. #endif
  3494. {
  3495. #ifndef PASN_LEANANDMEAN
  3496.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultiplexedStreamParameter::Class()), PInvalidCast);
  3497. #endif
  3498.   return *(H245_MultiplexedStreamParameter *)choice;
  3499. }
  3500.  
  3501.  
  3502. BOOL H245_ModeElement_type::CreateObject()
  3503. {
  3504.   switch (tag) {
  3505.     case e_nonStandard :
  3506.       choice = new H245_NonStandardParameter();
  3507.       return TRUE;
  3508.     case e_videoMode :
  3509.       choice = new H245_VideoMode();
  3510.       return TRUE;
  3511.     case e_audioMode :
  3512.       choice = new H245_AudioMode();
  3513.       return TRUE;
  3514.     case e_dataMode :
  3515.       choice = new H245_DataMode();
  3516.       return TRUE;
  3517.     case e_encryptionMode :
  3518.       choice = new H245_EncryptionMode();
  3519.       return TRUE;
  3520.     case e_h235Mode :
  3521.       choice = new H245_H235Mode();
  3522.       return TRUE;
  3523.     case e_multiplexedStreamMode :
  3524.       choice = new H245_MultiplexedStreamParameter();
  3525.       return TRUE;
  3526.   }
  3527.  
  3528.   choice = NULL;
  3529.   return FALSE;
  3530. }
  3531.  
  3532.  
  3533. PObject * H245_ModeElement_type::Clone() const
  3534. {
  3535. #ifndef PASN_LEANANDMEAN
  3536.   PAssert(IsClass(H245_ModeElement_type::Class()), PInvalidCast);
  3537. #endif
  3538.   return new H245_ModeElement_type(*this);
  3539. }
  3540.  
  3541.  
  3542. //
  3543. // H235Mode_mediaMode
  3544. //
  3545.  
  3546. H245_H235Mode_mediaMode::H245_H235Mode_mediaMode(unsigned tag, PASN_Object::TagClass tagClass)
  3547.   : PASN_Choice(tag, tagClass, 4, TRUE
  3548. #ifndef PASN_NOPRINTON
  3549.       , "nonStandard "
  3550.         "videoMode "
  3551.         "audioMode "
  3552.         "dataMode "
  3553. #endif
  3554.     )
  3555. {
  3556. }
  3557.  
  3558.  
  3559. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3560. H245_H235Mode_mediaMode::operator H245_NonStandardParameter &() const
  3561. #else
  3562. H245_H235Mode_mediaMode::operator H245_NonStandardParameter &()
  3563. {
  3564. #ifndef PASN_LEANANDMEAN
  3565.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3566. #endif
  3567.   return *(H245_NonStandardParameter *)choice;
  3568. }
  3569.  
  3570.  
  3571. H245_H235Mode_mediaMode::operator const H245_NonStandardParameter &() const
  3572. #endif
  3573. {
  3574. #ifndef PASN_LEANANDMEAN
  3575.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3576. #endif
  3577.   return *(H245_NonStandardParameter *)choice;
  3578. }
  3579.  
  3580.  
  3581. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3582. H245_H235Mode_mediaMode::operator H245_VideoMode &() const
  3583. #else
  3584. H245_H235Mode_mediaMode::operator H245_VideoMode &()
  3585. {
  3586. #ifndef PASN_LEANANDMEAN
  3587.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoMode::Class()), PInvalidCast);
  3588. #endif
  3589.   return *(H245_VideoMode *)choice;
  3590. }
  3591.  
  3592.  
  3593. H245_H235Mode_mediaMode::operator const H245_VideoMode &() const
  3594. #endif
  3595. {
  3596. #ifndef PASN_LEANANDMEAN
  3597.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoMode::Class()), PInvalidCast);
  3598. #endif
  3599.   return *(H245_VideoMode *)choice;
  3600. }
  3601.  
  3602.  
  3603. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3604. H245_H235Mode_mediaMode::operator H245_AudioMode &() const
  3605. #else
  3606. H245_H235Mode_mediaMode::operator H245_AudioMode &()
  3607. {
  3608. #ifndef PASN_LEANANDMEAN
  3609.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode::Class()), PInvalidCast);
  3610. #endif
  3611.   return *(H245_AudioMode *)choice;
  3612. }
  3613.  
  3614.  
  3615. H245_H235Mode_mediaMode::operator const H245_AudioMode &() const
  3616. #endif
  3617. {
  3618. #ifndef PASN_LEANANDMEAN
  3619.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode::Class()), PInvalidCast);
  3620. #endif
  3621.   return *(H245_AudioMode *)choice;
  3622. }
  3623.  
  3624.  
  3625. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3626. H245_H235Mode_mediaMode::operator H245_DataMode &() const
  3627. #else
  3628. H245_H235Mode_mediaMode::operator H245_DataMode &()
  3629. {
  3630. #ifndef PASN_LEANANDMEAN
  3631.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode::Class()), PInvalidCast);
  3632. #endif
  3633.   return *(H245_DataMode *)choice;
  3634. }
  3635.  
  3636.  
  3637. H245_H235Mode_mediaMode::operator const H245_DataMode &() const
  3638. #endif
  3639. {
  3640. #ifndef PASN_LEANANDMEAN
  3641.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode::Class()), PInvalidCast);
  3642. #endif
  3643.   return *(H245_DataMode *)choice;
  3644. }
  3645.  
  3646.  
  3647. BOOL H245_H235Mode_mediaMode::CreateObject()
  3648. {
  3649.   switch (tag) {
  3650.     case e_nonStandard :
  3651.       choice = new H245_NonStandardParameter();
  3652.       return TRUE;
  3653.     case e_videoMode :
  3654.       choice = new H245_VideoMode();
  3655.       return TRUE;
  3656.     case e_audioMode :
  3657.       choice = new H245_AudioMode();
  3658.       return TRUE;
  3659.     case e_dataMode :
  3660.       choice = new H245_DataMode();
  3661.       return TRUE;
  3662.   }
  3663.  
  3664.   choice = NULL;
  3665.   return FALSE;
  3666. }
  3667.  
  3668.  
  3669. PObject * H245_H235Mode_mediaMode::Clone() const
  3670. {
  3671. #ifndef PASN_LEANANDMEAN
  3672.   PAssert(IsClass(H245_H235Mode_mediaMode::Class()), PInvalidCast);
  3673. #endif
  3674.   return new H245_H235Mode_mediaMode(*this);
  3675. }
  3676.  
  3677.  
  3678. //
  3679. // H223ModeParameters_adaptationLayerType
  3680. //
  3681.  
  3682. H245_H223ModeParameters_adaptationLayerType::H245_H223ModeParameters_adaptationLayerType(unsigned tag, PASN_Object::TagClass tagClass)
  3683.   : PASN_Choice(tag, tagClass, 6, TRUE
  3684. #ifndef PASN_NOPRINTON
  3685.       , "nonStandard "
  3686.         "al1Framed "
  3687.         "al1NotFramed "
  3688.         "al2WithoutSequenceNumbers "
  3689.         "al2WithSequenceNumbers "
  3690.         "al3 "
  3691.         "al1M "
  3692.         "al2M "
  3693.         "al3M "
  3694. #endif
  3695.     )
  3696. {
  3697. }
  3698.  
  3699.  
  3700. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3701. H245_H223ModeParameters_adaptationLayerType::operator H245_NonStandardParameter &() const
  3702. #else
  3703. H245_H223ModeParameters_adaptationLayerType::operator H245_NonStandardParameter &()
  3704. {
  3705. #ifndef PASN_LEANANDMEAN
  3706.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3707. #endif
  3708.   return *(H245_NonStandardParameter *)choice;
  3709. }
  3710.  
  3711.  
  3712. H245_H223ModeParameters_adaptationLayerType::operator const H245_NonStandardParameter &() const
  3713. #endif
  3714. {
  3715. #ifndef PASN_LEANANDMEAN
  3716.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3717. #endif
  3718.   return *(H245_NonStandardParameter *)choice;
  3719. }
  3720.  
  3721.  
  3722. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3723. H245_H223ModeParameters_adaptationLayerType::operator H245_H223ModeParameters_adaptationLayerType_al3 &() const
  3724. #else
  3725. H245_H223ModeParameters_adaptationLayerType::operator H245_H223ModeParameters_adaptationLayerType_al3 &()
  3726. {
  3727. #ifndef PASN_LEANANDMEAN
  3728.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223ModeParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  3729. #endif
  3730.   return *(H245_H223ModeParameters_adaptationLayerType_al3 *)choice;
  3731. }
  3732.  
  3733.  
  3734. H245_H223ModeParameters_adaptationLayerType::operator const H245_H223ModeParameters_adaptationLayerType_al3 &() const
  3735. #endif
  3736. {
  3737. #ifndef PASN_LEANANDMEAN
  3738.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223ModeParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  3739. #endif
  3740.   return *(H245_H223ModeParameters_adaptationLayerType_al3 *)choice;
  3741. }
  3742.  
  3743.  
  3744. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3745. H245_H223ModeParameters_adaptationLayerType::operator H245_H223AL1MParameters &() const
  3746. #else
  3747. H245_H223ModeParameters_adaptationLayerType::operator H245_H223AL1MParameters &()
  3748. {
  3749. #ifndef PASN_LEANANDMEAN
  3750.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL1MParameters::Class()), PInvalidCast);
  3751. #endif
  3752.   return *(H245_H223AL1MParameters *)choice;
  3753. }
  3754.  
  3755.  
  3756. H245_H223ModeParameters_adaptationLayerType::operator const H245_H223AL1MParameters &() const
  3757. #endif
  3758. {
  3759. #ifndef PASN_LEANANDMEAN
  3760.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL1MParameters::Class()), PInvalidCast);
  3761. #endif
  3762.   return *(H245_H223AL1MParameters *)choice;
  3763. }
  3764.  
  3765.  
  3766. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3767. H245_H223ModeParameters_adaptationLayerType::operator H245_H223AL2MParameters &() const
  3768. #else
  3769. H245_H223ModeParameters_adaptationLayerType::operator H245_H223AL2MParameters &()
  3770. {
  3771. #ifndef PASN_LEANANDMEAN
  3772.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL2MParameters::Class()), PInvalidCast);
  3773. #endif
  3774.   return *(H245_H223AL2MParameters *)choice;
  3775. }
  3776.  
  3777.  
  3778. H245_H223ModeParameters_adaptationLayerType::operator const H245_H223AL2MParameters &() const
  3779. #endif
  3780. {
  3781. #ifndef PASN_LEANANDMEAN
  3782.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL2MParameters::Class()), PInvalidCast);
  3783. #endif
  3784.   return *(H245_H223AL2MParameters *)choice;
  3785. }
  3786.  
  3787.  
  3788. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3789. H245_H223ModeParameters_adaptationLayerType::operator H245_H223AL3MParameters &() const
  3790. #else
  3791. H245_H223ModeParameters_adaptationLayerType::operator H245_H223AL3MParameters &()
  3792. {
  3793. #ifndef PASN_LEANANDMEAN
  3794.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL3MParameters::Class()), PInvalidCast);
  3795. #endif
  3796.   return *(H245_H223AL3MParameters *)choice;
  3797. }
  3798.  
  3799.  
  3800. H245_H223ModeParameters_adaptationLayerType::operator const H245_H223AL3MParameters &() const
  3801. #endif
  3802. {
  3803. #ifndef PASN_LEANANDMEAN
  3804.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223AL3MParameters::Class()), PInvalidCast);
  3805. #endif
  3806.   return *(H245_H223AL3MParameters *)choice;
  3807. }
  3808.  
  3809.  
  3810. BOOL H245_H223ModeParameters_adaptationLayerType::CreateObject()
  3811. {
  3812.   switch (tag) {
  3813.     case e_nonStandard :
  3814.       choice = new H245_NonStandardParameter();
  3815.       return TRUE;
  3816.     case e_al1Framed :
  3817.     case e_al1NotFramed :
  3818.     case e_al2WithoutSequenceNumbers :
  3819.     case e_al2WithSequenceNumbers :
  3820.       choice = new PASN_Null();
  3821.       return TRUE;
  3822.     case e_al3 :
  3823.       choice = new H245_H223ModeParameters_adaptationLayerType_al3();
  3824.       return TRUE;
  3825.     case e_al1M :
  3826.       choice = new H245_H223AL1MParameters();
  3827.       return TRUE;
  3828.     case e_al2M :
  3829.       choice = new H245_H223AL2MParameters();
  3830.       return TRUE;
  3831.     case e_al3M :
  3832.       choice = new H245_H223AL3MParameters();
  3833.       return TRUE;
  3834.   }
  3835.  
  3836.   choice = NULL;
  3837.   return FALSE;
  3838. }
  3839.  
  3840.  
  3841. PObject * H245_H223ModeParameters_adaptationLayerType::Clone() const
  3842. {
  3843. #ifndef PASN_LEANANDMEAN
  3844.   PAssert(IsClass(H245_H223ModeParameters_adaptationLayerType::Class()), PInvalidCast);
  3845. #endif
  3846.   return new H245_H223ModeParameters_adaptationLayerType(*this);
  3847. }
  3848.  
  3849.  
  3850. //
  3851. // RedundancyEncodingMode_secondaryEncoding
  3852. //
  3853.  
  3854. H245_RedundancyEncodingMode_secondaryEncoding::H245_RedundancyEncodingMode_secondaryEncoding(unsigned tag, PASN_Object::TagClass tagClass)
  3855.   : PASN_Choice(tag, tagClass, 2, TRUE
  3856. #ifndef PASN_NOPRINTON
  3857.       , "nonStandard "
  3858.         "audioData "
  3859. #endif
  3860.     )
  3861. {
  3862. }
  3863.  
  3864.  
  3865. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3866. H245_RedundancyEncodingMode_secondaryEncoding::operator H245_NonStandardParameter &() const
  3867. #else
  3868. H245_RedundancyEncodingMode_secondaryEncoding::operator H245_NonStandardParameter &()
  3869. {
  3870. #ifndef PASN_LEANANDMEAN
  3871.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3872. #endif
  3873.   return *(H245_NonStandardParameter *)choice;
  3874. }
  3875.  
  3876.  
  3877. H245_RedundancyEncodingMode_secondaryEncoding::operator const H245_NonStandardParameter &() const
  3878. #endif
  3879. {
  3880. #ifndef PASN_LEANANDMEAN
  3881.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  3882. #endif
  3883.   return *(H245_NonStandardParameter *)choice;
  3884. }
  3885.  
  3886.  
  3887. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3888. H245_RedundancyEncodingMode_secondaryEncoding::operator H245_AudioMode &() const
  3889. #else
  3890. H245_RedundancyEncodingMode_secondaryEncoding::operator H245_AudioMode &()
  3891. {
  3892. #ifndef PASN_LEANANDMEAN
  3893.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode::Class()), PInvalidCast);
  3894. #endif
  3895.   return *(H245_AudioMode *)choice;
  3896. }
  3897.  
  3898.  
  3899. H245_RedundancyEncodingMode_secondaryEncoding::operator const H245_AudioMode &() const
  3900. #endif
  3901. {
  3902. #ifndef PASN_LEANANDMEAN
  3903.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioMode::Class()), PInvalidCast);
  3904. #endif
  3905.   return *(H245_AudioMode *)choice;
  3906. }
  3907.  
  3908.  
  3909. BOOL H245_RedundancyEncodingMode_secondaryEncoding::CreateObject()
  3910. {
  3911.   switch (tag) {
  3912.     case e_nonStandard :
  3913.       choice = new H245_NonStandardParameter();
  3914.       return TRUE;
  3915.     case e_audioData :
  3916.       choice = new H245_AudioMode();
  3917.       return TRUE;
  3918.   }
  3919.  
  3920.   choice = NULL;
  3921.   return FALSE;
  3922. }
  3923.  
  3924.  
  3925. PObject * H245_RedundancyEncodingMode_secondaryEncoding::Clone() const
  3926. {
  3927. #ifndef PASN_LEANANDMEAN
  3928.   PAssert(IsClass(H245_RedundancyEncodingMode_secondaryEncoding::Class()), PInvalidCast);
  3929. #endif
  3930.   return new H245_RedundancyEncodingMode_secondaryEncoding(*this);
  3931. }
  3932.  
  3933.  
  3934. //
  3935. // H261VideoMode_resolution
  3936. //
  3937.  
  3938. H245_H261VideoMode_resolution::H245_H261VideoMode_resolution(unsigned tag, PASN_Object::TagClass tagClass)
  3939.   : PASN_Choice(tag, tagClass, 2, FALSE
  3940. #ifndef PASN_NOPRINTON
  3941.       , "qcif "
  3942.         "cif "
  3943. #endif
  3944.     )
  3945. {
  3946. }
  3947.  
  3948.  
  3949. BOOL H245_H261VideoMode_resolution::CreateObject()
  3950. {
  3951.   choice = (tag <= e_cif) ? new PASN_Null() : NULL;
  3952.   return choice != NULL;
  3953. }
  3954.  
  3955.  
  3956. PObject * H245_H261VideoMode_resolution::Clone() const
  3957. {
  3958. #ifndef PASN_LEANANDMEAN
  3959.   PAssert(IsClass(H245_H261VideoMode_resolution::Class()), PInvalidCast);
  3960. #endif
  3961.   return new H245_H261VideoMode_resolution(*this);
  3962. }
  3963.  
  3964.  
  3965. //
  3966. // H262VideoMode_profileAndLevel
  3967. //
  3968.  
  3969. H245_H262VideoMode_profileAndLevel::H245_H262VideoMode_profileAndLevel(unsigned tag, PASN_Object::TagClass tagClass)
  3970.   : PASN_Choice(tag, tagClass, 11, TRUE
  3971. #ifndef PASN_NOPRINTON
  3972.       , "profileAndLevel_SPatML "
  3973.         "profileAndLevel_MPatLL "
  3974.         "profileAndLevel_MPatML "
  3975.         "profileAndLevel_MPatH_14 "
  3976.         "profileAndLevel_MPatHL "
  3977.         "profileAndLevel_SNRatLL "
  3978.         "profileAndLevel_SNRatML "
  3979.         "profileAndLevel_SpatialatH_14 "
  3980.         "profileAndLevel_HPatML "
  3981.         "profileAndLevel_HPatH_14 "
  3982.         "profileAndLevel_HPatHL "
  3983. #endif
  3984.     )
  3985. {
  3986. }
  3987.  
  3988.  
  3989. BOOL H245_H262VideoMode_profileAndLevel::CreateObject()
  3990. {
  3991.   choice = (tag <= e_profileAndLevel_HPatHL) ? new PASN_Null() : NULL;
  3992.   return choice != NULL;
  3993. }
  3994.  
  3995.  
  3996. PObject * H245_H262VideoMode_profileAndLevel::Clone() const
  3997. {
  3998. #ifndef PASN_LEANANDMEAN
  3999.   PAssert(IsClass(H245_H262VideoMode_profileAndLevel::Class()), PInvalidCast);
  4000. #endif
  4001.   return new H245_H262VideoMode_profileAndLevel(*this);
  4002. }
  4003.  
  4004.  
  4005. //
  4006. // H263VideoMode_resolution
  4007. //
  4008.  
  4009. H245_H263VideoMode_resolution::H245_H263VideoMode_resolution(unsigned tag, PASN_Object::TagClass tagClass)
  4010.   : PASN_Choice(tag, tagClass, 5, TRUE
  4011. #ifndef PASN_NOPRINTON
  4012.       , "sqcif "
  4013.         "qcif "
  4014.         "cif "
  4015.         "cif4 "
  4016.         "cif16 "
  4017. #endif
  4018.     )
  4019. {
  4020. }
  4021.  
  4022.  
  4023. BOOL H245_H263VideoMode_resolution::CreateObject()
  4024. {
  4025.   choice = (tag <= e_cif16) ? new PASN_Null() : NULL;
  4026.   return choice != NULL;
  4027. }
  4028.  
  4029.  
  4030. PObject * H245_H263VideoMode_resolution::Clone() const
  4031. {
  4032. #ifndef PASN_LEANANDMEAN
  4033.   PAssert(IsClass(H245_H263VideoMode_resolution::Class()), PInvalidCast);
  4034. #endif
  4035.   return new H245_H263VideoMode_resolution(*this);
  4036. }
  4037.  
  4038.  
  4039. //
  4040. // AudioMode_g7231
  4041. //
  4042.  
  4043. H245_AudioMode_g7231::H245_AudioMode_g7231(unsigned tag, PASN_Object::TagClass tagClass)
  4044.   : PASN_Choice(tag, tagClass, 4, FALSE
  4045. #ifndef PASN_NOPRINTON
  4046.       , "noSilenceSuppressionLowRate "
  4047.         "noSilenceSuppressionHighRate "
  4048.         "silenceSuppressionLowRate "
  4049.         "silenceSuppressionHighRate "
  4050. #endif
  4051.     )
  4052. {
  4053. }
  4054.  
  4055.  
  4056. BOOL H245_AudioMode_g7231::CreateObject()
  4057. {
  4058.   choice = (tag <= e_silenceSuppressionHighRate) ? new PASN_Null() : NULL;
  4059.   return choice != NULL;
  4060. }
  4061.  
  4062.  
  4063. PObject * H245_AudioMode_g7231::Clone() const
  4064. {
  4065. #ifndef PASN_LEANANDMEAN
  4066.   PAssert(IsClass(H245_AudioMode_g7231::Class()), PInvalidCast);
  4067. #endif
  4068.   return new H245_AudioMode_g7231(*this);
  4069. }
  4070.  
  4071.  
  4072. //
  4073. // IS11172AudioMode_audioLayer
  4074. //
  4075.  
  4076. H245_IS11172AudioMode_audioLayer::H245_IS11172AudioMode_audioLayer(unsigned tag, PASN_Object::TagClass tagClass)
  4077.   : PASN_Choice(tag, tagClass, 3, FALSE
  4078. #ifndef PASN_NOPRINTON
  4079.       , "audioLayer1 "
  4080.         "audioLayer2 "
  4081.         "audioLayer3 "
  4082. #endif
  4083.     )
  4084. {
  4085. }
  4086.  
  4087.  
  4088. BOOL H245_IS11172AudioMode_audioLayer::CreateObject()
  4089. {
  4090.   choice = (tag <= e_audioLayer3) ? new PASN_Null() : NULL;
  4091.   return choice != NULL;
  4092. }
  4093.  
  4094.  
  4095. PObject * H245_IS11172AudioMode_audioLayer::Clone() const
  4096. {
  4097. #ifndef PASN_LEANANDMEAN
  4098.   PAssert(IsClass(H245_IS11172AudioMode_audioLayer::Class()), PInvalidCast);
  4099. #endif
  4100.   return new H245_IS11172AudioMode_audioLayer(*this);
  4101. }
  4102.  
  4103.  
  4104. //
  4105. // IS11172AudioMode_audioSampling
  4106. //
  4107.  
  4108. H245_IS11172AudioMode_audioSampling::H245_IS11172AudioMode_audioSampling(unsigned tag, PASN_Object::TagClass tagClass)
  4109.   : PASN_Choice(tag, tagClass, 3, FALSE
  4110. #ifndef PASN_NOPRINTON
  4111.       , "audioSampling32k "
  4112.         "audioSampling44k1 "
  4113.         "audioSampling48k "
  4114. #endif
  4115.     )
  4116. {
  4117. }
  4118.  
  4119.  
  4120. BOOL H245_IS11172AudioMode_audioSampling::CreateObject()
  4121. {
  4122.   choice = (tag <= e_audioSampling48k) ? new PASN_Null() : NULL;
  4123.   return choice != NULL;
  4124. }
  4125.  
  4126.  
  4127. PObject * H245_IS11172AudioMode_audioSampling::Clone() const
  4128. {
  4129. #ifndef PASN_LEANANDMEAN
  4130.   PAssert(IsClass(H245_IS11172AudioMode_audioSampling::Class()), PInvalidCast);
  4131. #endif
  4132.   return new H245_IS11172AudioMode_audioSampling(*this);
  4133. }
  4134.  
  4135.  
  4136. //
  4137. // IS11172AudioMode_multichannelType
  4138. //
  4139.  
  4140. H245_IS11172AudioMode_multichannelType::H245_IS11172AudioMode_multichannelType(unsigned tag, PASN_Object::TagClass tagClass)
  4141.   : PASN_Choice(tag, tagClass, 3, FALSE
  4142. #ifndef PASN_NOPRINTON
  4143.       , "singleChannel "
  4144.         "twoChannelStereo "
  4145.         "twoChannelDual "
  4146. #endif
  4147.     )
  4148. {
  4149. }
  4150.  
  4151.  
  4152. BOOL H245_IS11172AudioMode_multichannelType::CreateObject()
  4153. {
  4154.   choice = (tag <= e_twoChannelDual) ? new PASN_Null() : NULL;
  4155.   return choice != NULL;
  4156. }
  4157.  
  4158.  
  4159. PObject * H245_IS11172AudioMode_multichannelType::Clone() const
  4160. {
  4161. #ifndef PASN_LEANANDMEAN
  4162.   PAssert(IsClass(H245_IS11172AudioMode_multichannelType::Class()), PInvalidCast);
  4163. #endif
  4164.   return new H245_IS11172AudioMode_multichannelType(*this);
  4165. }
  4166.  
  4167.  
  4168. //
  4169. // IS13818AudioMode_audioLayer
  4170. //
  4171.  
  4172. H245_IS13818AudioMode_audioLayer::H245_IS13818AudioMode_audioLayer(unsigned tag, PASN_Object::TagClass tagClass)
  4173.   : PASN_Choice(tag, tagClass, 3, FALSE
  4174. #ifndef PASN_NOPRINTON
  4175.       , "audioLayer1 "
  4176.         "audioLayer2 "
  4177.         "audioLayer3 "
  4178. #endif
  4179.     )
  4180. {
  4181. }
  4182.  
  4183.  
  4184. BOOL H245_IS13818AudioMode_audioLayer::CreateObject()
  4185. {
  4186.   choice = (tag <= e_audioLayer3) ? new PASN_Null() : NULL;
  4187.   return choice != NULL;
  4188. }
  4189.  
  4190.  
  4191. PObject * H245_IS13818AudioMode_audioLayer::Clone() const
  4192. {
  4193. #ifndef PASN_LEANANDMEAN
  4194.   PAssert(IsClass(H245_IS13818AudioMode_audioLayer::Class()), PInvalidCast);
  4195. #endif
  4196.   return new H245_IS13818AudioMode_audioLayer(*this);
  4197. }
  4198.  
  4199.  
  4200. //
  4201. // IS13818AudioMode_audioSampling
  4202. //
  4203.  
  4204. H245_IS13818AudioMode_audioSampling::H245_IS13818AudioMode_audioSampling(unsigned tag, PASN_Object::TagClass tagClass)
  4205.   : PASN_Choice(tag, tagClass, 6, FALSE
  4206. #ifndef PASN_NOPRINTON
  4207.       , "audioSampling16k "
  4208.         "audioSampling22k05 "
  4209.         "audioSampling24k "
  4210.         "audioSampling32k "
  4211.         "audioSampling44k1 "
  4212.         "audioSampling48k "
  4213. #endif
  4214.     )
  4215. {
  4216. }
  4217.  
  4218.  
  4219. BOOL H245_IS13818AudioMode_audioSampling::CreateObject()
  4220. {
  4221.   choice = (tag <= e_audioSampling48k) ? new PASN_Null() : NULL;
  4222.   return choice != NULL;
  4223. }
  4224.  
  4225.  
  4226. PObject * H245_IS13818AudioMode_audioSampling::Clone() const
  4227. {
  4228. #ifndef PASN_LEANANDMEAN
  4229.   PAssert(IsClass(H245_IS13818AudioMode_audioSampling::Class()), PInvalidCast);
  4230. #endif
  4231.   return new H245_IS13818AudioMode_audioSampling(*this);
  4232. }
  4233.  
  4234.  
  4235. //
  4236. // IS13818AudioMode_multichannelType
  4237. //
  4238.  
  4239. H245_IS13818AudioMode_multichannelType::H245_IS13818AudioMode_multichannelType(unsigned tag, PASN_Object::TagClass tagClass)
  4240.   : PASN_Choice(tag, tagClass, 10, FALSE
  4241. #ifndef PASN_NOPRINTON
  4242.       , "singleChannel "
  4243.         "twoChannelStereo "
  4244.         "twoChannelDual "
  4245.         "threeChannels2_1 "
  4246.         "threeChannels3_0 "
  4247.         "fourChannels2_0_2_0 "
  4248.         "fourChannels2_2 "
  4249.         "fourChannels3_1 "
  4250.         "fiveChannels3_0_2_0 "
  4251.         "fiveChannels3_2 "
  4252. #endif
  4253.     )
  4254. {
  4255. }
  4256.  
  4257.  
  4258. BOOL H245_IS13818AudioMode_multichannelType::CreateObject()
  4259. {
  4260.   choice = (tag <= e_fiveChannels3_2) ? new PASN_Null() : NULL;
  4261.   return choice != NULL;
  4262. }
  4263.  
  4264.  
  4265. PObject * H245_IS13818AudioMode_multichannelType::Clone() const
  4266. {
  4267. #ifndef PASN_LEANANDMEAN
  4268.   PAssert(IsClass(H245_IS13818AudioMode_multichannelType::Class()), PInvalidCast);
  4269. #endif
  4270.   return new H245_IS13818AudioMode_multichannelType(*this);
  4271. }
  4272.  
  4273.  
  4274. //
  4275. // G7231AnnexCMode_g723AnnexCAudioMode
  4276. //
  4277.  
  4278. H245_G7231AnnexCMode_g723AnnexCAudioMode::H245_G7231AnnexCMode_g723AnnexCAudioMode(unsigned tag, PASN_Object::TagClass tagClass)
  4279.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  4280. {
  4281.   m_highRateMode0.SetConstraints(PASN_Object::FixedConstraint, 27, 78);
  4282.   m_highRateMode1.SetConstraints(PASN_Object::FixedConstraint, 27, 78);
  4283.   m_lowRateMode0.SetConstraints(PASN_Object::FixedConstraint, 23, 66);
  4284.   m_lowRateMode1.SetConstraints(PASN_Object::FixedConstraint, 23, 66);
  4285.   m_sidMode0.SetConstraints(PASN_Object::FixedConstraint, 6, 17);
  4286.   m_sidMode1.SetConstraints(PASN_Object::FixedConstraint, 6, 17);
  4287. }
  4288.  
  4289.  
  4290. #ifndef PASN_NOPRINTON
  4291. void H245_G7231AnnexCMode_g723AnnexCAudioMode::PrintOn(ostream & strm) const
  4292. {
  4293.   int indent = strm.precision() + 2;
  4294.   strm << "{\n";
  4295.   strm << setw(indent+16) << "highRateMode0 = " << setprecision(indent) << m_highRateMode0 << '\n';
  4296.   strm << setw(indent+16) << "highRateMode1 = " << setprecision(indent) << m_highRateMode1 << '\n';
  4297.   strm << setw(indent+15) << "lowRateMode0 = " << setprecision(indent) << m_lowRateMode0 << '\n';
  4298.   strm << setw(indent+15) << "lowRateMode1 = " << setprecision(indent) << m_lowRateMode1 << '\n';
  4299.   strm << setw(indent+11) << "sidMode0 = " << setprecision(indent) << m_sidMode0 << '\n';
  4300.   strm << setw(indent+11) << "sidMode1 = " << setprecision(indent) << m_sidMode1 << '\n';
  4301.   strm << setw(indent-1) << "}";
  4302. }
  4303. #endif
  4304.  
  4305.  
  4306. PObject::Comparison H245_G7231AnnexCMode_g723AnnexCAudioMode::Compare(const PObject & obj) const
  4307. {
  4308. #ifndef PASN_LEANANDMEAN
  4309.   PAssert(IsDescendant(H245_G7231AnnexCMode_g723AnnexCAudioMode::Class()), PInvalidCast);
  4310. #endif
  4311.   const H245_G7231AnnexCMode_g723AnnexCAudioMode & other = (const H245_G7231AnnexCMode_g723AnnexCAudioMode &)obj;
  4312.  
  4313.   Comparison result;
  4314.  
  4315.   if ((result = m_highRateMode0.Compare(other.m_highRateMode0)) != EqualTo)
  4316.     return result;
  4317.   if ((result = m_highRateMode1.Compare(other.m_highRateMode1)) != EqualTo)
  4318.     return result;
  4319.   if ((result = m_lowRateMode0.Compare(other.m_lowRateMode0)) != EqualTo)
  4320.     return result;
  4321.   if ((result = m_lowRateMode1.Compare(other.m_lowRateMode1)) != EqualTo)
  4322.     return result;
  4323.   if ((result = m_sidMode0.Compare(other.m_sidMode0)) != EqualTo)
  4324.     return result;
  4325.   if ((result = m_sidMode1.Compare(other.m_sidMode1)) != EqualTo)
  4326.     return result;
  4327.  
  4328.   return PASN_Sequence::Compare(other);
  4329. }
  4330.  
  4331.  
  4332. PINDEX H245_G7231AnnexCMode_g723AnnexCAudioMode::GetDataLength() const
  4333. {
  4334.   PINDEX length = 0;
  4335.   length += m_highRateMode0.GetObjectLength();
  4336.   length += m_highRateMode1.GetObjectLength();
  4337.   length += m_lowRateMode0.GetObjectLength();
  4338.   length += m_lowRateMode1.GetObjectLength();
  4339.   length += m_sidMode0.GetObjectLength();
  4340.   length += m_sidMode1.GetObjectLength();
  4341.   return length;
  4342. }
  4343.  
  4344.  
  4345. BOOL H245_G7231AnnexCMode_g723AnnexCAudioMode::Decode(PASN_Stream & strm)
  4346. {
  4347.   if (!PreambleDecode(strm))
  4348.     return FALSE;
  4349.  
  4350.   if (!m_highRateMode0.Decode(strm))
  4351.     return FALSE;
  4352.   if (!m_highRateMode1.Decode(strm))
  4353.     return FALSE;
  4354.   if (!m_lowRateMode0.Decode(strm))
  4355.     return FALSE;
  4356.   if (!m_lowRateMode1.Decode(strm))
  4357.     return FALSE;
  4358.   if (!m_sidMode0.Decode(strm))
  4359.     return FALSE;
  4360.   if (!m_sidMode1.Decode(strm))
  4361.     return FALSE;
  4362.  
  4363.   return UnknownExtensionsDecode(strm);
  4364. }
  4365.  
  4366.  
  4367. void H245_G7231AnnexCMode_g723AnnexCAudioMode::Encode(PASN_Stream & strm) const
  4368. {
  4369.   PreambleEncode(strm);
  4370.  
  4371.   m_highRateMode0.Encode(strm);
  4372.   m_highRateMode1.Encode(strm);
  4373.   m_lowRateMode0.Encode(strm);
  4374.   m_lowRateMode1.Encode(strm);
  4375.   m_sidMode0.Encode(strm);
  4376.   m_sidMode1.Encode(strm);
  4377.  
  4378.   UnknownExtensionsEncode(strm);
  4379. }
  4380.  
  4381.  
  4382. PObject * H245_G7231AnnexCMode_g723AnnexCAudioMode::Clone() const
  4383. {
  4384. #ifndef PASN_LEANANDMEAN
  4385.   PAssert(IsClass(H245_G7231AnnexCMode_g723AnnexCAudioMode::Class()), PInvalidCast);
  4386. #endif
  4387.   return new H245_G7231AnnexCMode_g723AnnexCAudioMode(*this);
  4388. }
  4389.  
  4390.  
  4391. //
  4392. // DataMode_application
  4393. //
  4394.  
  4395. H245_DataMode_application::H245_DataMode_application(unsigned tag, PASN_Object::TagClass tagClass)
  4396.   : PASN_Choice(tag, tagClass, 10, TRUE
  4397. #ifndef PASN_NOPRINTON
  4398.       , "nonStandard "
  4399.         "t120 "
  4400.         "dsm_cc "
  4401.         "userData "
  4402.         "t84 "
  4403.         "t434 "
  4404.         "h224 "
  4405.         "nlpid "
  4406.         "dsvdControl "
  4407.         "h222DataPartitioning "
  4408.         "t30fax "
  4409.         "t140 "
  4410.         "t38fax "
  4411.         "genericDataMode "
  4412. #endif
  4413.     )
  4414. {
  4415. }
  4416.  
  4417.  
  4418. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4419. H245_DataMode_application::operator H245_NonStandardParameter &() const
  4420. #else
  4421. H245_DataMode_application::operator H245_NonStandardParameter &()
  4422. {
  4423. #ifndef PASN_LEANANDMEAN
  4424.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  4425. #endif
  4426.   return *(H245_NonStandardParameter *)choice;
  4427. }
  4428.  
  4429.  
  4430. H245_DataMode_application::operator const H245_NonStandardParameter &() const
  4431. #endif
  4432. {
  4433. #ifndef PASN_LEANANDMEAN
  4434.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  4435. #endif
  4436.   return *(H245_NonStandardParameter *)choice;
  4437. }
  4438.  
  4439.  
  4440. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4441. H245_DataMode_application::operator H245_DataProtocolCapability &() const
  4442. #else
  4443. H245_DataMode_application::operator H245_DataProtocolCapability &()
  4444. {
  4445. #ifndef PASN_LEANANDMEAN
  4446.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataProtocolCapability::Class()), PInvalidCast);
  4447. #endif
  4448.   return *(H245_DataProtocolCapability *)choice;
  4449. }
  4450.  
  4451.  
  4452. H245_DataMode_application::operator const H245_DataProtocolCapability &() const
  4453. #endif
  4454. {
  4455. #ifndef PASN_LEANANDMEAN
  4456.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataProtocolCapability::Class()), PInvalidCast);
  4457. #endif
  4458.   return *(H245_DataProtocolCapability *)choice;
  4459. }
  4460.  
  4461.  
  4462. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4463. H245_DataMode_application::operator H245_DataMode_application_nlpid &() const
  4464. #else
  4465. H245_DataMode_application::operator H245_DataMode_application_nlpid &()
  4466. {
  4467. #ifndef PASN_LEANANDMEAN
  4468.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode_application_nlpid::Class()), PInvalidCast);
  4469. #endif
  4470.   return *(H245_DataMode_application_nlpid *)choice;
  4471. }
  4472.  
  4473.  
  4474. H245_DataMode_application::operator const H245_DataMode_application_nlpid &() const
  4475. #endif
  4476. {
  4477. #ifndef PASN_LEANANDMEAN
  4478.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode_application_nlpid::Class()), PInvalidCast);
  4479. #endif
  4480.   return *(H245_DataMode_application_nlpid *)choice;
  4481. }
  4482.  
  4483.  
  4484. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4485. H245_DataMode_application::operator H245_DataMode_application_t38fax &() const
  4486. #else
  4487. H245_DataMode_application::operator H245_DataMode_application_t38fax &()
  4488. {
  4489. #ifndef PASN_LEANANDMEAN
  4490.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode_application_t38fax::Class()), PInvalidCast);
  4491. #endif
  4492.   return *(H245_DataMode_application_t38fax *)choice;
  4493. }
  4494.  
  4495.  
  4496. H245_DataMode_application::operator const H245_DataMode_application_t38fax &() const
  4497. #endif
  4498. {
  4499. #ifndef PASN_LEANANDMEAN
  4500.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataMode_application_t38fax::Class()), PInvalidCast);
  4501. #endif
  4502.   return *(H245_DataMode_application_t38fax *)choice;
  4503. }
  4504.  
  4505.  
  4506. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4507. H245_DataMode_application::operator H245_GenericCapability &() const
  4508. #else
  4509. H245_DataMode_application::operator H245_GenericCapability &()
  4510. {
  4511. #ifndef PASN_LEANANDMEAN
  4512.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  4513. #endif
  4514.   return *(H245_GenericCapability *)choice;
  4515. }
  4516.  
  4517.  
  4518. H245_DataMode_application::operator const H245_GenericCapability &() const
  4519. #endif
  4520. {
  4521. #ifndef PASN_LEANANDMEAN
  4522.   PAssert(PAssertNULL(choice)->IsDescendant(H245_GenericCapability::Class()), PInvalidCast);
  4523. #endif
  4524.   return *(H245_GenericCapability *)choice;
  4525. }
  4526.  
  4527.  
  4528. BOOL H245_DataMode_application::CreateObject()
  4529. {
  4530.   switch (tag) {
  4531.     case e_nonStandard :
  4532.       choice = new H245_NonStandardParameter();
  4533.       return TRUE;
  4534.     case e_t120 :
  4535.     case e_dsm_cc :
  4536.     case e_userData :
  4537.     case e_t84 :
  4538.     case e_t434 :
  4539.     case e_h224 :
  4540.     case e_h222DataPartitioning :
  4541.     case e_t30fax :
  4542.     case e_t140 :
  4543.       choice = new H245_DataProtocolCapability();
  4544.       return TRUE;
  4545.     case e_nlpid :
  4546.       choice = new H245_DataMode_application_nlpid();
  4547.       return TRUE;
  4548.     case e_dsvdControl :
  4549.       choice = new PASN_Null();
  4550.       return TRUE;
  4551.     case e_t38fax :
  4552.       choice = new H245_DataMode_application_t38fax();
  4553.       return TRUE;
  4554.     case e_genericDataMode :
  4555.       choice = new H245_GenericCapability();
  4556.       return TRUE;
  4557.   }
  4558.  
  4559.   choice = NULL;
  4560.   return FALSE;
  4561. }
  4562.  
  4563.  
  4564. PObject * H245_DataMode_application::Clone() const
  4565. {
  4566. #ifndef PASN_LEANANDMEAN
  4567.   PAssert(IsClass(H245_DataMode_application::Class()), PInvalidCast);
  4568. #endif
  4569.   return new H245_DataMode_application(*this);
  4570. }
  4571.  
  4572.  
  4573. //
  4574. // MaintenanceLoopRequest_type
  4575. //
  4576.  
  4577. H245_MaintenanceLoopRequest_type::H245_MaintenanceLoopRequest_type(unsigned tag, PASN_Object::TagClass tagClass)
  4578.   : PASN_Choice(tag, tagClass, 3, TRUE
  4579. #ifndef PASN_NOPRINTON
  4580.       , "systemLoop "
  4581.         "mediaLoop "
  4582.         "logicalChannelLoop "
  4583. #endif
  4584.     )
  4585. {
  4586. }
  4587.  
  4588.  
  4589. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4590. H245_MaintenanceLoopRequest_type::operator H245_LogicalChannelNumber &() const
  4591. #else
  4592. H245_MaintenanceLoopRequest_type::operator H245_LogicalChannelNumber &()
  4593. {
  4594. #ifndef PASN_LEANANDMEAN
  4595.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  4596. #endif
  4597.   return *(H245_LogicalChannelNumber *)choice;
  4598. }
  4599.  
  4600.  
  4601. H245_MaintenanceLoopRequest_type::operator const H245_LogicalChannelNumber &() const
  4602. #endif
  4603. {
  4604. #ifndef PASN_LEANANDMEAN
  4605.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  4606. #endif
  4607.   return *(H245_LogicalChannelNumber *)choice;
  4608. }
  4609.  
  4610.  
  4611. BOOL H245_MaintenanceLoopRequest_type::CreateObject()
  4612. {
  4613.   switch (tag) {
  4614.     case e_systemLoop :
  4615.       choice = new PASN_Null();
  4616.       return TRUE;
  4617.     case e_mediaLoop :
  4618.     case e_logicalChannelLoop :
  4619.       choice = new H245_LogicalChannelNumber();
  4620.       return TRUE;
  4621.   }
  4622.  
  4623.   choice = NULL;
  4624.   return FALSE;
  4625. }
  4626.  
  4627.  
  4628. PObject * H245_MaintenanceLoopRequest_type::Clone() const
  4629. {
  4630. #ifndef PASN_LEANANDMEAN
  4631.   PAssert(IsClass(H245_MaintenanceLoopRequest_type::Class()), PInvalidCast);
  4632. #endif
  4633.   return new H245_MaintenanceLoopRequest_type(*this);
  4634. }
  4635.  
  4636.  
  4637. //
  4638. // MaintenanceLoopAck_type
  4639. //
  4640.  
  4641. H245_MaintenanceLoopAck_type::H245_MaintenanceLoopAck_type(unsigned tag, PASN_Object::TagClass tagClass)
  4642.   : PASN_Choice(tag, tagClass, 3, TRUE
  4643. #ifndef PASN_NOPRINTON
  4644.       , "systemLoop "
  4645.         "mediaLoop "
  4646.         "logicalChannelLoop "
  4647. #endif
  4648.     )
  4649. {
  4650. }
  4651.  
  4652.  
  4653. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4654. H245_MaintenanceLoopAck_type::operator H245_LogicalChannelNumber &() const
  4655. #else
  4656. H245_MaintenanceLoopAck_type::operator H245_LogicalChannelNumber &()
  4657. {
  4658. #ifndef PASN_LEANANDMEAN
  4659.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  4660. #endif
  4661.   return *(H245_LogicalChannelNumber *)choice;
  4662. }
  4663.  
  4664.  
  4665. H245_MaintenanceLoopAck_type::operator const H245_LogicalChannelNumber &() const
  4666. #endif
  4667. {
  4668. #ifndef PASN_LEANANDMEAN
  4669.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  4670. #endif
  4671.   return *(H245_LogicalChannelNumber *)choice;
  4672. }
  4673.  
  4674.  
  4675. BOOL H245_MaintenanceLoopAck_type::CreateObject()
  4676. {
  4677.   switch (tag) {
  4678.     case e_systemLoop :
  4679.       choice = new PASN_Null();
  4680.       return TRUE;
  4681.     case e_mediaLoop :
  4682.     case e_logicalChannelLoop :
  4683.       choice = new H245_LogicalChannelNumber();
  4684.       return TRUE;
  4685.   }
  4686.  
  4687.   choice = NULL;
  4688.   return FALSE;
  4689. }
  4690.  
  4691.  
  4692. PObject * H245_MaintenanceLoopAck_type::Clone() const
  4693. {
  4694. #ifndef PASN_LEANANDMEAN
  4695.   PAssert(IsClass(H245_MaintenanceLoopAck_type::Class()), PInvalidCast);
  4696. #endif
  4697.   return new H245_MaintenanceLoopAck_type(*this);
  4698. }
  4699.  
  4700.  
  4701. //
  4702. // MaintenanceLoopReject_type
  4703. //
  4704.  
  4705. H245_MaintenanceLoopReject_type::H245_MaintenanceLoopReject_type(unsigned tag, PASN_Object::TagClass tagClass)
  4706.   : PASN_Choice(tag, tagClass, 3, TRUE
  4707. #ifndef PASN_NOPRINTON
  4708.       , "systemLoop "
  4709.         "mediaLoop "
  4710.         "logicalChannelLoop "
  4711. #endif
  4712.     )
  4713. {
  4714. }
  4715.  
  4716.  
  4717. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4718. H245_MaintenanceLoopReject_type::operator H245_LogicalChannelNumber &() const
  4719. #else
  4720. H245_MaintenanceLoopReject_type::operator H245_LogicalChannelNumber &()
  4721. {
  4722. #ifndef PASN_LEANANDMEAN
  4723.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  4724. #endif
  4725.   return *(H245_LogicalChannelNumber *)choice;
  4726. }
  4727.  
  4728.  
  4729. H245_MaintenanceLoopReject_type::operator const H245_LogicalChannelNumber &() const
  4730. #endif
  4731. {
  4732. #ifndef PASN_LEANANDMEAN
  4733.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  4734. #endif
  4735.   return *(H245_LogicalChannelNumber *)choice;
  4736. }
  4737.  
  4738.  
  4739. BOOL H245_MaintenanceLoopReject_type::CreateObject()
  4740. {
  4741.   switch (tag) {
  4742.     case e_systemLoop :
  4743.       choice = new PASN_Null();
  4744.       return TRUE;
  4745.     case e_mediaLoop :
  4746.     case e_logicalChannelLoop :
  4747.       choice = new H245_LogicalChannelNumber();
  4748.       return TRUE;
  4749.   }
  4750.  
  4751.   choice = NULL;
  4752.   return FALSE;
  4753. }
  4754.  
  4755.  
  4756. PObject * H245_MaintenanceLoopReject_type::Clone() const
  4757. {
  4758. #ifndef PASN_LEANANDMEAN
  4759.   PAssert(IsClass(H245_MaintenanceLoopReject_type::Class()), PInvalidCast);
  4760. #endif
  4761.   return new H245_MaintenanceLoopReject_type(*this);
  4762. }
  4763.  
  4764.  
  4765. //
  4766. // MaintenanceLoopReject_cause
  4767. //
  4768.  
  4769. H245_MaintenanceLoopReject_cause::H245_MaintenanceLoopReject_cause(unsigned tag, PASN_Object::TagClass tagClass)
  4770.   : PASN_Choice(tag, tagClass, 1, TRUE
  4771. #ifndef PASN_NOPRINTON
  4772.       , "canNotPerformLoop "
  4773. #endif
  4774.     )
  4775. {
  4776. }
  4777.  
  4778.  
  4779. BOOL H245_MaintenanceLoopReject_cause::CreateObject()
  4780. {
  4781.   choice = (tag <= e_canNotPerformLoop) ? new PASN_Null() : NULL;
  4782.   return choice != NULL;
  4783. }
  4784.  
  4785.  
  4786. PObject * H245_MaintenanceLoopReject_cause::Clone() const
  4787. {
  4788. #ifndef PASN_LEANANDMEAN
  4789.   PAssert(IsClass(H245_MaintenanceLoopReject_cause::Class()), PInvalidCast);
  4790. #endif
  4791.   return new H245_MaintenanceLoopReject_cause(*this);
  4792. }
  4793.  
  4794.  
  4795. //
  4796. // ArrayOf_CommunicationModeTableEntry
  4797. //
  4798.  
  4799. H245_ArrayOf_CommunicationModeTableEntry::H245_ArrayOf_CommunicationModeTableEntry(unsigned tag, PASN_Object::TagClass tagClass)
  4800.   : PASN_Array(tag, tagClass)
  4801. {
  4802. }
  4803.  
  4804.  
  4805. PASN_Object * H245_ArrayOf_CommunicationModeTableEntry::CreateObject() const
  4806. {
  4807.   return new H245_CommunicationModeTableEntry;
  4808. }
  4809.  
  4810.  
  4811. H245_CommunicationModeTableEntry & H245_ArrayOf_CommunicationModeTableEntry::operator[](PINDEX i) const
  4812. {
  4813.   return (H245_CommunicationModeTableEntry &)array[i];
  4814. }
  4815.  
  4816.  
  4817. PObject * H245_ArrayOf_CommunicationModeTableEntry::Clone() const
  4818. {
  4819. #ifndef PASN_LEANANDMEAN
  4820.   PAssert(IsClass(H245_ArrayOf_CommunicationModeTableEntry::Class()), PInvalidCast);
  4821. #endif
  4822.   return new H245_ArrayOf_CommunicationModeTableEntry(*this);
  4823. }
  4824.  
  4825.  
  4826. //
  4827. // CommunicationModeTableEntry_dataType
  4828. //
  4829.  
  4830. H245_CommunicationModeTableEntry_dataType::H245_CommunicationModeTableEntry_dataType(unsigned tag, PASN_Object::TagClass tagClass)
  4831.   : PASN_Choice(tag, tagClass, 3, TRUE
  4832. #ifndef PASN_NOPRINTON
  4833.       , "videoData "
  4834.         "audioData "
  4835.         "data "
  4836. #endif
  4837.     )
  4838. {
  4839. }
  4840.  
  4841.  
  4842. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4843. H245_CommunicationModeTableEntry_dataType::operator H245_VideoCapability &() const
  4844. #else
  4845. H245_CommunicationModeTableEntry_dataType::operator H245_VideoCapability &()
  4846. {
  4847. #ifndef PASN_LEANANDMEAN
  4848.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  4849. #endif
  4850.   return *(H245_VideoCapability *)choice;
  4851. }
  4852.  
  4853.  
  4854. H245_CommunicationModeTableEntry_dataType::operator const H245_VideoCapability &() const
  4855. #endif
  4856. {
  4857. #ifndef PASN_LEANANDMEAN
  4858.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VideoCapability::Class()), PInvalidCast);
  4859. #endif
  4860.   return *(H245_VideoCapability *)choice;
  4861. }
  4862.  
  4863.  
  4864. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4865. H245_CommunicationModeTableEntry_dataType::operator H245_AudioCapability &() const
  4866. #else
  4867. H245_CommunicationModeTableEntry_dataType::operator H245_AudioCapability &()
  4868. {
  4869. #ifndef PASN_LEANANDMEAN
  4870.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  4871. #endif
  4872.   return *(H245_AudioCapability *)choice;
  4873. }
  4874.  
  4875.  
  4876. H245_CommunicationModeTableEntry_dataType::operator const H245_AudioCapability &() const
  4877. #endif
  4878. {
  4879. #ifndef PASN_LEANANDMEAN
  4880.   PAssert(PAssertNULL(choice)->IsDescendant(H245_AudioCapability::Class()), PInvalidCast);
  4881. #endif
  4882.   return *(H245_AudioCapability *)choice;
  4883. }
  4884.  
  4885.  
  4886. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4887. H245_CommunicationModeTableEntry_dataType::operator H245_DataApplicationCapability &() const
  4888. #else
  4889. H245_CommunicationModeTableEntry_dataType::operator H245_DataApplicationCapability &()
  4890. {
  4891. #ifndef PASN_LEANANDMEAN
  4892.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  4893. #endif
  4894.   return *(H245_DataApplicationCapability *)choice;
  4895. }
  4896.  
  4897.  
  4898. H245_CommunicationModeTableEntry_dataType::operator const H245_DataApplicationCapability &() const
  4899. #endif
  4900. {
  4901. #ifndef PASN_LEANANDMEAN
  4902.   PAssert(PAssertNULL(choice)->IsDescendant(H245_DataApplicationCapability::Class()), PInvalidCast);
  4903. #endif
  4904.   return *(H245_DataApplicationCapability *)choice;
  4905. }
  4906.  
  4907.  
  4908. BOOL H245_CommunicationModeTableEntry_dataType::CreateObject()
  4909. {
  4910.   switch (tag) {
  4911.     case e_videoData :
  4912.       choice = new H245_VideoCapability();
  4913.       return TRUE;
  4914.     case e_audioData :
  4915.       choice = new H245_AudioCapability();
  4916.       return TRUE;
  4917.     case e_data :
  4918.       choice = new H245_DataApplicationCapability();
  4919.       return TRUE;
  4920.   }
  4921.  
  4922.   choice = NULL;
  4923.   return FALSE;
  4924. }
  4925.  
  4926.  
  4927. PObject * H245_CommunicationModeTableEntry_dataType::Clone() const
  4928. {
  4929. #ifndef PASN_LEANANDMEAN
  4930.   PAssert(IsClass(H245_CommunicationModeTableEntry_dataType::Class()), PInvalidCast);
  4931. #endif
  4932.   return new H245_CommunicationModeTableEntry_dataType(*this);
  4933. }
  4934.  
  4935.  
  4936. //
  4937. // ArrayOf_TerminalLabel
  4938. //
  4939.  
  4940. H245_ArrayOf_TerminalLabel::H245_ArrayOf_TerminalLabel(unsigned tag, PASN_Object::TagClass tagClass)
  4941.   : PASN_Array(tag, tagClass)
  4942. {
  4943. }
  4944.  
  4945.  
  4946. PASN_Object * H245_ArrayOf_TerminalLabel::CreateObject() const
  4947. {
  4948.   return new H245_TerminalLabel;
  4949. }
  4950.  
  4951.  
  4952. H245_TerminalLabel & H245_ArrayOf_TerminalLabel::operator[](PINDEX i) const
  4953. {
  4954.   return (H245_TerminalLabel &)array[i];
  4955. }
  4956.  
  4957.  
  4958. PObject * H245_ArrayOf_TerminalLabel::Clone() const
  4959. {
  4960. #ifndef PASN_LEANANDMEAN
  4961.   PAssert(IsClass(H245_ArrayOf_TerminalLabel::Class()), PInvalidCast);
  4962. #endif
  4963.   return new H245_ArrayOf_TerminalLabel(*this);
  4964. }
  4965.  
  4966.  
  4967. //
  4968. // ConferenceResponse_makeMeChairResponse
  4969. //
  4970.  
  4971. H245_ConferenceResponse_makeMeChairResponse::H245_ConferenceResponse_makeMeChairResponse(unsigned tag, PASN_Object::TagClass tagClass)
  4972.   : PASN_Choice(tag, tagClass, 2, TRUE
  4973. #ifndef PASN_NOPRINTON
  4974.       , "grantedChairToken "
  4975.         "deniedChairToken "
  4976. #endif
  4977.     )
  4978. {
  4979. }
  4980.  
  4981.  
  4982. BOOL H245_ConferenceResponse_makeMeChairResponse::CreateObject()
  4983. {
  4984.   choice = (tag <= e_deniedChairToken) ? new PASN_Null() : NULL;
  4985.   return choice != NULL;
  4986. }
  4987.  
  4988.  
  4989. PObject * H245_ConferenceResponse_makeMeChairResponse::Clone() const
  4990. {
  4991. #ifndef PASN_LEANANDMEAN
  4992.   PAssert(IsClass(H245_ConferenceResponse_makeMeChairResponse::Class()), PInvalidCast);
  4993. #endif
  4994.   return new H245_ConferenceResponse_makeMeChairResponse(*this);
  4995. }
  4996.  
  4997.  
  4998. //
  4999. // ConferenceResponse_extensionAddressResponse
  5000. //
  5001.  
  5002. H245_ConferenceResponse_extensionAddressResponse::H245_ConferenceResponse_extensionAddressResponse(unsigned tag, PASN_Object::TagClass tagClass)
  5003.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5004. {
  5005. }
  5006.  
  5007.  
  5008. #ifndef PASN_NOPRINTON
  5009. void H245_ConferenceResponse_extensionAddressResponse::PrintOn(ostream & strm) const
  5010. {
  5011.   int indent = strm.precision() + 2;
  5012.   strm << "{\n";
  5013.   strm << setw(indent+19) << "extensionAddress = " << setprecision(indent) << m_extensionAddress << '\n';
  5014.   strm << setw(indent-1) << "}";
  5015. }
  5016. #endif
  5017.  
  5018.  
  5019. PObject::Comparison H245_ConferenceResponse_extensionAddressResponse::Compare(const PObject & obj) const
  5020. {
  5021. #ifndef PASN_LEANANDMEAN
  5022.   PAssert(IsDescendant(H245_ConferenceResponse_extensionAddressResponse::Class()), PInvalidCast);
  5023. #endif
  5024.   const H245_ConferenceResponse_extensionAddressResponse & other = (const H245_ConferenceResponse_extensionAddressResponse &)obj;
  5025.  
  5026.   Comparison result;
  5027.  
  5028.   if ((result = m_extensionAddress.Compare(other.m_extensionAddress)) != EqualTo)
  5029.     return result;
  5030.  
  5031.   return PASN_Sequence::Compare(other);
  5032. }
  5033.  
  5034.  
  5035. PINDEX H245_ConferenceResponse_extensionAddressResponse::GetDataLength() const
  5036. {
  5037.   PINDEX length = 0;
  5038.   length += m_extensionAddress.GetObjectLength();
  5039.   return length;
  5040. }
  5041.  
  5042.  
  5043. BOOL H245_ConferenceResponse_extensionAddressResponse::Decode(PASN_Stream & strm)
  5044. {
  5045.   if (!PreambleDecode(strm))
  5046.     return FALSE;
  5047.  
  5048.   if (!m_extensionAddress.Decode(strm))
  5049.     return FALSE;
  5050.  
  5051.   return UnknownExtensionsDecode(strm);
  5052. }
  5053.  
  5054.  
  5055. void H245_ConferenceResponse_extensionAddressResponse::Encode(PASN_Stream & strm) const
  5056. {
  5057.   PreambleEncode(strm);
  5058.  
  5059.   m_extensionAddress.Encode(strm);
  5060.  
  5061.   UnknownExtensionsEncode(strm);
  5062. }
  5063.  
  5064.  
  5065. PObject * H245_ConferenceResponse_extensionAddressResponse::Clone() const
  5066. {
  5067. #ifndef PASN_LEANANDMEAN
  5068.   PAssert(IsClass(H245_ConferenceResponse_extensionAddressResponse::Class()), PInvalidCast);
  5069. #endif
  5070.   return new H245_ConferenceResponse_extensionAddressResponse(*this);
  5071. }
  5072.  
  5073.  
  5074. //
  5075. // ConferenceResponse_broadcastMyLogicalChannelResponse
  5076. //
  5077.  
  5078. H245_ConferenceResponse_broadcastMyLogicalChannelResponse::H245_ConferenceResponse_broadcastMyLogicalChannelResponse(unsigned tag, PASN_Object::TagClass tagClass)
  5079.   : PASN_Choice(tag, tagClass, 2, TRUE
  5080. #ifndef PASN_NOPRINTON
  5081.       , "grantedBroadcastMyLogicalChannel "
  5082.         "deniedBroadcastMyLogicalChannel "
  5083. #endif
  5084.     )
  5085. {
  5086. }
  5087.  
  5088.  
  5089. BOOL H245_ConferenceResponse_broadcastMyLogicalChannelResponse::CreateObject()
  5090. {
  5091.   choice = (tag <= e_deniedBroadcastMyLogicalChannel) ? new PASN_Null() : NULL;
  5092.   return choice != NULL;
  5093. }
  5094.  
  5095.  
  5096. PObject * H245_ConferenceResponse_broadcastMyLogicalChannelResponse::Clone() const
  5097. {
  5098. #ifndef PASN_LEANANDMEAN
  5099.   PAssert(IsClass(H245_ConferenceResponse_broadcastMyLogicalChannelResponse::Class()), PInvalidCast);
  5100. #endif
  5101.   return new H245_ConferenceResponse_broadcastMyLogicalChannelResponse(*this);
  5102. }
  5103.  
  5104.  
  5105. //
  5106. // ConferenceResponse_makeTerminalBroadcasterResponse
  5107. //
  5108.  
  5109. H245_ConferenceResponse_makeTerminalBroadcasterResponse::H245_ConferenceResponse_makeTerminalBroadcasterResponse(unsigned tag, PASN_Object::TagClass tagClass)
  5110.   : PASN_Choice(tag, tagClass, 2, TRUE
  5111. #ifndef PASN_NOPRINTON
  5112.       , "grantedMakeTerminalBroadcaster "
  5113.         "deniedMakeTerminalBroadcaster "
  5114. #endif
  5115.     )
  5116. {
  5117. }
  5118.  
  5119.  
  5120. BOOL H245_ConferenceResponse_makeTerminalBroadcasterResponse::CreateObject()
  5121. {
  5122.   choice = (tag <= e_deniedMakeTerminalBroadcaster) ? new PASN_Null() : NULL;
  5123.   return choice != NULL;
  5124. }
  5125.  
  5126.  
  5127. PObject * H245_ConferenceResponse_makeTerminalBroadcasterResponse::Clone() const
  5128. {
  5129. #ifndef PASN_LEANANDMEAN
  5130.   PAssert(IsClass(H245_ConferenceResponse_makeTerminalBroadcasterResponse::Class()), PInvalidCast);
  5131. #endif
  5132.   return new H245_ConferenceResponse_makeTerminalBroadcasterResponse(*this);
  5133. }
  5134.  
  5135.  
  5136. //
  5137. // ConferenceResponse_sendThisSourceResponse
  5138. //
  5139.  
  5140. H245_ConferenceResponse_sendThisSourceResponse::H245_ConferenceResponse_sendThisSourceResponse(unsigned tag, PASN_Object::TagClass tagClass)
  5141.   : PASN_Choice(tag, tagClass, 2, TRUE
  5142. #ifndef PASN_NOPRINTON
  5143.       , "grantedSendThisSource "
  5144.         "deniedSendThisSource "
  5145. #endif
  5146.     )
  5147. {
  5148. }
  5149.  
  5150.  
  5151. BOOL H245_ConferenceResponse_sendThisSourceResponse::CreateObject()
  5152. {
  5153.   choice = (tag <= e_deniedSendThisSource) ? new PASN_Null() : NULL;
  5154.   return choice != NULL;
  5155. }
  5156.  
  5157.  
  5158. PObject * H245_ConferenceResponse_sendThisSourceResponse::Clone() const
  5159. {
  5160. #ifndef PASN_LEANANDMEAN
  5161.   PAssert(IsClass(H245_ConferenceResponse_sendThisSourceResponse::Class()), PInvalidCast);
  5162. #endif
  5163.   return new H245_ConferenceResponse_sendThisSourceResponse(*this);
  5164. }
  5165.  
  5166.  
  5167. //
  5168. // ArrayOf_TerminalInformation
  5169. //
  5170.  
  5171. H245_ArrayOf_TerminalInformation::H245_ArrayOf_TerminalInformation(unsigned tag, PASN_Object::TagClass tagClass)
  5172.   : PASN_Array(tag, tagClass)
  5173. {
  5174. }
  5175.  
  5176.  
  5177. PASN_Object * H245_ArrayOf_TerminalInformation::CreateObject() const
  5178. {
  5179.   return new H245_TerminalInformation;
  5180. }
  5181.  
  5182.  
  5183. H245_TerminalInformation & H245_ArrayOf_TerminalInformation::operator[](PINDEX i) const
  5184. {
  5185.   return (H245_TerminalInformation &)array[i];
  5186. }
  5187.  
  5188.  
  5189. PObject * H245_ArrayOf_TerminalInformation::Clone() const
  5190. {
  5191. #ifndef PASN_LEANANDMEAN
  5192.   PAssert(IsClass(H245_ArrayOf_TerminalInformation::Class()), PInvalidCast);
  5193. #endif
  5194.   return new H245_ArrayOf_TerminalInformation(*this);
  5195. }
  5196.  
  5197.  
  5198. //
  5199. // RemoteMCResponse_reject
  5200. //
  5201.  
  5202. H245_RemoteMCResponse_reject::H245_RemoteMCResponse_reject(unsigned tag, PASN_Object::TagClass tagClass)
  5203.   : PASN_Choice(tag, tagClass, 2, TRUE
  5204. #ifndef PASN_NOPRINTON
  5205.       , "unspecified "
  5206.         "functionNotSupported "
  5207. #endif
  5208.     )
  5209. {
  5210. }
  5211.  
  5212.  
  5213. BOOL H245_RemoteMCResponse_reject::CreateObject()
  5214. {
  5215.   choice = (tag <= e_functionNotSupported) ? new PASN_Null() : NULL;
  5216.   return choice != NULL;
  5217. }
  5218.  
  5219.  
  5220. PObject * H245_RemoteMCResponse_reject::Clone() const
  5221. {
  5222. #ifndef PASN_LEANANDMEAN
  5223.   PAssert(IsClass(H245_RemoteMCResponse_reject::Class()), PInvalidCast);
  5224. #endif
  5225.   return new H245_RemoteMCResponse_reject(*this);
  5226. }
  5227.  
  5228.  
  5229. //
  5230. // MultilinkRequest_callInformation
  5231. //
  5232.  
  5233. H245_MultilinkRequest_callInformation::H245_MultilinkRequest_callInformation(unsigned tag, PASN_Object::TagClass tagClass)
  5234.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5235. {
  5236.   m_maxNumberOfAdditionalConnections.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  5237. }
  5238.  
  5239.  
  5240. #ifndef PASN_NOPRINTON
  5241. void H245_MultilinkRequest_callInformation::PrintOn(ostream & strm) const
  5242. {
  5243.   int indent = strm.precision() + 2;
  5244.   strm << "{\n";
  5245.   strm << setw(indent+35) << "maxNumberOfAdditionalConnections = " << setprecision(indent) << m_maxNumberOfAdditionalConnections << '\n';
  5246.   strm << setw(indent-1) << "}";
  5247. }
  5248. #endif
  5249.  
  5250.  
  5251. PObject::Comparison H245_MultilinkRequest_callInformation::Compare(const PObject & obj) const
  5252. {
  5253. #ifndef PASN_LEANANDMEAN
  5254.   PAssert(IsDescendant(H245_MultilinkRequest_callInformation::Class()), PInvalidCast);
  5255. #endif
  5256.   const H245_MultilinkRequest_callInformation & other = (const H245_MultilinkRequest_callInformation &)obj;
  5257.  
  5258.   Comparison result;
  5259.  
  5260.   if ((result = m_maxNumberOfAdditionalConnections.Compare(other.m_maxNumberOfAdditionalConnections)) != EqualTo)
  5261.     return result;
  5262.  
  5263.   return PASN_Sequence::Compare(other);
  5264. }
  5265.  
  5266.  
  5267. PINDEX H245_MultilinkRequest_callInformation::GetDataLength() const
  5268. {
  5269.   PINDEX length = 0;
  5270.   length += m_maxNumberOfAdditionalConnections.GetObjectLength();
  5271.   return length;
  5272. }
  5273.  
  5274.  
  5275. BOOL H245_MultilinkRequest_callInformation::Decode(PASN_Stream & strm)
  5276. {
  5277.   if (!PreambleDecode(strm))
  5278.     return FALSE;
  5279.  
  5280.   if (!m_maxNumberOfAdditionalConnections.Decode(strm))
  5281.     return FALSE;
  5282.  
  5283.   return UnknownExtensionsDecode(strm);
  5284. }
  5285.  
  5286.  
  5287. void H245_MultilinkRequest_callInformation::Encode(PASN_Stream & strm) const
  5288. {
  5289.   PreambleEncode(strm);
  5290.  
  5291.   m_maxNumberOfAdditionalConnections.Encode(strm);
  5292.  
  5293.   UnknownExtensionsEncode(strm);
  5294. }
  5295.  
  5296.  
  5297. PObject * H245_MultilinkRequest_callInformation::Clone() const
  5298. {
  5299. #ifndef PASN_LEANANDMEAN
  5300.   PAssert(IsClass(H245_MultilinkRequest_callInformation::Class()), PInvalidCast);
  5301. #endif
  5302.   return new H245_MultilinkRequest_callInformation(*this);
  5303. }
  5304.  
  5305.  
  5306. //
  5307. // MultilinkRequest_addConnection
  5308. //
  5309.  
  5310. H245_MultilinkRequest_addConnection::H245_MultilinkRequest_addConnection(unsigned tag, PASN_Object::TagClass tagClass)
  5311.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5312. {
  5313. }
  5314.  
  5315.  
  5316. #ifndef PASN_NOPRINTON
  5317. void H245_MultilinkRequest_addConnection::PrintOn(ostream & strm) const
  5318. {
  5319.   int indent = strm.precision() + 2;
  5320.   strm << "{\n";
  5321.   strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
  5322.   strm << setw(indent+21) << "dialingInformation = " << setprecision(indent) << m_dialingInformation << '\n';
  5323.   strm << setw(indent-1) << "}";
  5324. }
  5325. #endif
  5326.  
  5327.  
  5328. PObject::Comparison H245_MultilinkRequest_addConnection::Compare(const PObject & obj) const
  5329. {
  5330. #ifndef PASN_LEANANDMEAN
  5331.   PAssert(IsDescendant(H245_MultilinkRequest_addConnection::Class()), PInvalidCast);
  5332. #endif
  5333.   const H245_MultilinkRequest_addConnection & other = (const H245_MultilinkRequest_addConnection &)obj;
  5334.  
  5335.   Comparison result;
  5336.  
  5337.   if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
  5338.     return result;
  5339.   if ((result = m_dialingInformation.Compare(other.m_dialingInformation)) != EqualTo)
  5340.     return result;
  5341.  
  5342.   return PASN_Sequence::Compare(other);
  5343. }
  5344.  
  5345.  
  5346. PINDEX H245_MultilinkRequest_addConnection::GetDataLength() const
  5347. {
  5348.   PINDEX length = 0;
  5349.   length += m_sequenceNumber.GetObjectLength();
  5350.   length += m_dialingInformation.GetObjectLength();
  5351.   return length;
  5352. }
  5353.  
  5354.  
  5355. BOOL H245_MultilinkRequest_addConnection::Decode(PASN_Stream & strm)
  5356. {
  5357.   if (!PreambleDecode(strm))
  5358.     return FALSE;
  5359.  
  5360.   if (!m_sequenceNumber.Decode(strm))
  5361.     return FALSE;
  5362.   if (!m_dialingInformation.Decode(strm))
  5363.     return FALSE;
  5364.  
  5365.   return UnknownExtensionsDecode(strm);
  5366. }
  5367.  
  5368.  
  5369. void H245_MultilinkRequest_addConnection::Encode(PASN_Stream & strm) const
  5370. {
  5371.   PreambleEncode(strm);
  5372.  
  5373.   m_sequenceNumber.Encode(strm);
  5374.   m_dialingInformation.Encode(strm);
  5375.  
  5376.   UnknownExtensionsEncode(strm);
  5377. }
  5378.  
  5379.  
  5380. PObject * H245_MultilinkRequest_addConnection::Clone() const
  5381. {
  5382. #ifndef PASN_LEANANDMEAN
  5383.   PAssert(IsClass(H245_MultilinkRequest_addConnection::Class()), PInvalidCast);
  5384. #endif
  5385.   return new H245_MultilinkRequest_addConnection(*this);
  5386. }
  5387.  
  5388.  
  5389. //
  5390. // MultilinkRequest_removeConnection
  5391. //
  5392.  
  5393. H245_MultilinkRequest_removeConnection::H245_MultilinkRequest_removeConnection(unsigned tag, PASN_Object::TagClass tagClass)
  5394.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5395. {
  5396. }
  5397.  
  5398.  
  5399. #ifndef PASN_NOPRINTON
  5400. void H245_MultilinkRequest_removeConnection::PrintOn(ostream & strm) const
  5401. {
  5402.   int indent = strm.precision() + 2;
  5403.   strm << "{\n";
  5404.   strm << setw(indent+23) << "connectionIdentifier = " << setprecision(indent) << m_connectionIdentifier << '\n';
  5405.   strm << setw(indent-1) << "}";
  5406. }
  5407. #endif
  5408.  
  5409.  
  5410. PObject::Comparison H245_MultilinkRequest_removeConnection::Compare(const PObject & obj) const
  5411. {
  5412. #ifndef PASN_LEANANDMEAN
  5413.   PAssert(IsDescendant(H245_MultilinkRequest_removeConnection::Class()), PInvalidCast);
  5414. #endif
  5415.   const H245_MultilinkRequest_removeConnection & other = (const H245_MultilinkRequest_removeConnection &)obj;
  5416.  
  5417.   Comparison result;
  5418.  
  5419.   if ((result = m_connectionIdentifier.Compare(other.m_connectionIdentifier)) != EqualTo)
  5420.     return result;
  5421.  
  5422.   return PASN_Sequence::Compare(other);
  5423. }
  5424.  
  5425.  
  5426. PINDEX H245_MultilinkRequest_removeConnection::GetDataLength() const
  5427. {
  5428.   PINDEX length = 0;
  5429.   length += m_connectionIdentifier.GetObjectLength();
  5430.   return length;
  5431. }
  5432.  
  5433.  
  5434. BOOL H245_MultilinkRequest_removeConnection::Decode(PASN_Stream & strm)
  5435. {
  5436.   if (!PreambleDecode(strm))
  5437.     return FALSE;
  5438.  
  5439.   if (!m_connectionIdentifier.Decode(strm))
  5440.     return FALSE;
  5441.  
  5442.   return UnknownExtensionsDecode(strm);
  5443. }
  5444.  
  5445.  
  5446. void H245_MultilinkRequest_removeConnection::Encode(PASN_Stream & strm) const
  5447. {
  5448.   PreambleEncode(strm);
  5449.  
  5450.   m_connectionIdentifier.Encode(strm);
  5451.  
  5452.   UnknownExtensionsEncode(strm);
  5453. }
  5454.  
  5455.  
  5456. PObject * H245_MultilinkRequest_removeConnection::Clone() const
  5457. {
  5458. #ifndef PASN_LEANANDMEAN
  5459.   PAssert(IsClass(H245_MultilinkRequest_removeConnection::Class()), PInvalidCast);
  5460. #endif
  5461.   return new H245_MultilinkRequest_removeConnection(*this);
  5462. }
  5463.  
  5464.  
  5465. //
  5466. // MultilinkResponse_callInformation
  5467. //
  5468.  
  5469. H245_MultilinkResponse_callInformation::H245_MultilinkResponse_callInformation(unsigned tag, PASN_Object::TagClass tagClass)
  5470.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5471. {
  5472.   m_callAssociationNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  5473. }
  5474.  
  5475.  
  5476. #ifndef PASN_NOPRINTON
  5477. void H245_MultilinkResponse_callInformation::PrintOn(ostream & strm) const
  5478. {
  5479.   int indent = strm.precision() + 2;
  5480.   strm << "{\n";
  5481.   strm << setw(indent+21) << "dialingInformation = " << setprecision(indent) << m_dialingInformation << '\n';
  5482.   strm << setw(indent+24) << "callAssociationNumber = " << setprecision(indent) << m_callAssociationNumber << '\n';
  5483.   strm << setw(indent-1) << "}";
  5484. }
  5485. #endif
  5486.  
  5487.  
  5488. PObject::Comparison H245_MultilinkResponse_callInformation::Compare(const PObject & obj) const
  5489. {
  5490. #ifndef PASN_LEANANDMEAN
  5491.   PAssert(IsDescendant(H245_MultilinkResponse_callInformation::Class()), PInvalidCast);
  5492. #endif
  5493.   const H245_MultilinkResponse_callInformation & other = (const H245_MultilinkResponse_callInformation &)obj;
  5494.  
  5495.   Comparison result;
  5496.  
  5497.   if ((result = m_dialingInformation.Compare(other.m_dialingInformation)) != EqualTo)
  5498.     return result;
  5499.   if ((result = m_callAssociationNumber.Compare(other.m_callAssociationNumber)) != EqualTo)
  5500.     return result;
  5501.  
  5502.   return PASN_Sequence::Compare(other);
  5503. }
  5504.  
  5505.  
  5506. PINDEX H245_MultilinkResponse_callInformation::GetDataLength() const
  5507. {
  5508.   PINDEX length = 0;
  5509.   length += m_dialingInformation.GetObjectLength();
  5510.   length += m_callAssociationNumber.GetObjectLength();
  5511.   return length;
  5512. }
  5513.  
  5514.  
  5515. BOOL H245_MultilinkResponse_callInformation::Decode(PASN_Stream & strm)
  5516. {
  5517.   if (!PreambleDecode(strm))
  5518.     return FALSE;
  5519.  
  5520.   if (!m_dialingInformation.Decode(strm))
  5521.     return FALSE;
  5522.   if (!m_callAssociationNumber.Decode(strm))
  5523.     return FALSE;
  5524.  
  5525.   return UnknownExtensionsDecode(strm);
  5526. }
  5527.  
  5528.  
  5529. void H245_MultilinkResponse_callInformation::Encode(PASN_Stream & strm) const
  5530. {
  5531.   PreambleEncode(strm);
  5532.  
  5533.   m_dialingInformation.Encode(strm);
  5534.   m_callAssociationNumber.Encode(strm);
  5535.  
  5536.   UnknownExtensionsEncode(strm);
  5537. }
  5538.  
  5539.  
  5540. PObject * H245_MultilinkResponse_callInformation::Clone() const
  5541. {
  5542. #ifndef PASN_LEANANDMEAN
  5543.   PAssert(IsClass(H245_MultilinkResponse_callInformation::Class()), PInvalidCast);
  5544. #endif
  5545.   return new H245_MultilinkResponse_callInformation(*this);
  5546. }
  5547.  
  5548.  
  5549. //
  5550. // MultilinkResponse_removeConnection
  5551. //
  5552.  
  5553. H245_MultilinkResponse_removeConnection::H245_MultilinkResponse_removeConnection(unsigned tag, PASN_Object::TagClass tagClass)
  5554.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5555. {
  5556. }
  5557.  
  5558.  
  5559. #ifndef PASN_NOPRINTON
  5560. void H245_MultilinkResponse_removeConnection::PrintOn(ostream & strm) const
  5561. {
  5562.   int indent = strm.precision() + 2;
  5563.   strm << "{\n";
  5564.   strm << setw(indent+23) << "connectionIdentifier = " << setprecision(indent) << m_connectionIdentifier << '\n';
  5565.   strm << setw(indent-1) << "}";
  5566. }
  5567. #endif
  5568.  
  5569.  
  5570. PObject::Comparison H245_MultilinkResponse_removeConnection::Compare(const PObject & obj) const
  5571. {
  5572. #ifndef PASN_LEANANDMEAN
  5573.   PAssert(IsDescendant(H245_MultilinkResponse_removeConnection::Class()), PInvalidCast);
  5574. #endif
  5575.   const H245_MultilinkResponse_removeConnection & other = (const H245_MultilinkResponse_removeConnection &)obj;
  5576.  
  5577.   Comparison result;
  5578.  
  5579.   if ((result = m_connectionIdentifier.Compare(other.m_connectionIdentifier)) != EqualTo)
  5580.     return result;
  5581.  
  5582.   return PASN_Sequence::Compare(other);
  5583. }
  5584.  
  5585.  
  5586. PINDEX H245_MultilinkResponse_removeConnection::GetDataLength() const
  5587. {
  5588.   PINDEX length = 0;
  5589.   length += m_connectionIdentifier.GetObjectLength();
  5590.   return length;
  5591. }
  5592.  
  5593.  
  5594. BOOL H245_MultilinkResponse_removeConnection::Decode(PASN_Stream & strm)
  5595. {
  5596.   if (!PreambleDecode(strm))
  5597.     return FALSE;
  5598.  
  5599.   if (!m_connectionIdentifier.Decode(strm))
  5600.     return FALSE;
  5601.  
  5602.   return UnknownExtensionsDecode(strm);
  5603. }
  5604.  
  5605.  
  5606. void H245_MultilinkResponse_removeConnection::Encode(PASN_Stream & strm) const
  5607. {
  5608.   PreambleEncode(strm);
  5609.  
  5610.   m_connectionIdentifier.Encode(strm);
  5611.  
  5612.   UnknownExtensionsEncode(strm);
  5613. }
  5614.  
  5615.  
  5616. PObject * H245_MultilinkResponse_removeConnection::Clone() const
  5617. {
  5618. #ifndef PASN_LEANANDMEAN
  5619.   PAssert(IsClass(H245_MultilinkResponse_removeConnection::Class()), PInvalidCast);
  5620. #endif
  5621.   return new H245_MultilinkResponse_removeConnection(*this);
  5622. }
  5623.  
  5624.  
  5625. //
  5626. // MultilinkResponse_maximumHeaderInterval
  5627. //
  5628.  
  5629. H245_MultilinkResponse_maximumHeaderInterval::H245_MultilinkResponse_maximumHeaderInterval(unsigned tag, PASN_Object::TagClass tagClass)
  5630.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5631. {
  5632.   m_currentInterval.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  5633. }
  5634.  
  5635.  
  5636. #ifndef PASN_NOPRINTON
  5637. void H245_MultilinkResponse_maximumHeaderInterval::PrintOn(ostream & strm) const
  5638. {
  5639.   int indent = strm.precision() + 2;
  5640.   strm << "{\n";
  5641.   strm << setw(indent+18) << "currentInterval = " << setprecision(indent) << m_currentInterval << '\n';
  5642.   strm << setw(indent-1) << "}";
  5643. }
  5644. #endif
  5645.  
  5646.  
  5647. PObject::Comparison H245_MultilinkResponse_maximumHeaderInterval::Compare(const PObject & obj) const
  5648. {
  5649. #ifndef PASN_LEANANDMEAN
  5650.   PAssert(IsDescendant(H245_MultilinkResponse_maximumHeaderInterval::Class()), PInvalidCast);
  5651. #endif
  5652.   const H245_MultilinkResponse_maximumHeaderInterval & other = (const H245_MultilinkResponse_maximumHeaderInterval &)obj;
  5653.  
  5654.   Comparison result;
  5655.  
  5656.   if ((result = m_currentInterval.Compare(other.m_currentInterval)) != EqualTo)
  5657.     return result;
  5658.  
  5659.   return PASN_Sequence::Compare(other);
  5660. }
  5661.  
  5662.  
  5663. PINDEX H245_MultilinkResponse_maximumHeaderInterval::GetDataLength() const
  5664. {
  5665.   PINDEX length = 0;
  5666.   length += m_currentInterval.GetObjectLength();
  5667.   return length;
  5668. }
  5669.  
  5670.  
  5671. BOOL H245_MultilinkResponse_maximumHeaderInterval::Decode(PASN_Stream & strm)
  5672. {
  5673.   if (!PreambleDecode(strm))
  5674.     return FALSE;
  5675.  
  5676.   if (!m_currentInterval.Decode(strm))
  5677.     return FALSE;
  5678.  
  5679.   return UnknownExtensionsDecode(strm);
  5680. }
  5681.  
  5682.  
  5683. void H245_MultilinkResponse_maximumHeaderInterval::Encode(PASN_Stream & strm) const
  5684. {
  5685.   PreambleEncode(strm);
  5686.  
  5687.   m_currentInterval.Encode(strm);
  5688.  
  5689.   UnknownExtensionsEncode(strm);
  5690. }
  5691.  
  5692.  
  5693. PObject * H245_MultilinkResponse_maximumHeaderInterval::Clone() const
  5694. {
  5695. #ifndef PASN_LEANANDMEAN
  5696.   PAssert(IsClass(H245_MultilinkResponse_maximumHeaderInterval::Class()), PInvalidCast);
  5697. #endif
  5698.   return new H245_MultilinkResponse_maximumHeaderInterval(*this);
  5699. }
  5700.  
  5701.  
  5702. //
  5703. // MultilinkIndication_crcDesired
  5704. //
  5705.  
  5706. H245_MultilinkIndication_crcDesired::H245_MultilinkIndication_crcDesired(unsigned tag, PASN_Object::TagClass tagClass)
  5707.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5708. {
  5709. }
  5710.  
  5711.  
  5712. #ifndef PASN_NOPRINTON
  5713. void H245_MultilinkIndication_crcDesired::PrintOn(ostream & strm) const
  5714. {
  5715.   int indent = strm.precision() + 2;
  5716.   strm << "{\n";
  5717.   strm << setw(indent-1) << "}";
  5718. }
  5719. #endif
  5720.  
  5721.  
  5722. PINDEX H245_MultilinkIndication_crcDesired::GetDataLength() const
  5723. {
  5724.   PINDEX length = 0;
  5725.   return length;
  5726. }
  5727.  
  5728.  
  5729. BOOL H245_MultilinkIndication_crcDesired::Decode(PASN_Stream & strm)
  5730. {
  5731.   if (!PreambleDecode(strm))
  5732.     return FALSE;
  5733.  
  5734.  
  5735.   return UnknownExtensionsDecode(strm);
  5736. }
  5737.  
  5738.  
  5739. void H245_MultilinkIndication_crcDesired::Encode(PASN_Stream & strm) const
  5740. {
  5741.   PreambleEncode(strm);
  5742.  
  5743.  
  5744.   UnknownExtensionsEncode(strm);
  5745. }
  5746.  
  5747.  
  5748. PObject * H245_MultilinkIndication_crcDesired::Clone() const
  5749. {
  5750. #ifndef PASN_LEANANDMEAN
  5751.   PAssert(IsClass(H245_MultilinkIndication_crcDesired::Class()), PInvalidCast);
  5752. #endif
  5753.   return new H245_MultilinkIndication_crcDesired(*this);
  5754. }
  5755.  
  5756.  
  5757. //
  5758. // MultilinkIndication_excessiveError
  5759. //
  5760.  
  5761. H245_MultilinkIndication_excessiveError::H245_MultilinkIndication_excessiveError(unsigned tag, PASN_Object::TagClass tagClass)
  5762.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5763. {
  5764. }
  5765.  
  5766.  
  5767. #ifndef PASN_NOPRINTON
  5768. void H245_MultilinkIndication_excessiveError::PrintOn(ostream & strm) const
  5769. {
  5770.   int indent = strm.precision() + 2;
  5771.   strm << "{\n";
  5772.   strm << setw(indent+23) << "connectionIdentifier = " << setprecision(indent) << m_connectionIdentifier << '\n';
  5773.   strm << setw(indent-1) << "}";
  5774. }
  5775. #endif
  5776.  
  5777.  
  5778. PObject::Comparison H245_MultilinkIndication_excessiveError::Compare(const PObject & obj) const
  5779. {
  5780. #ifndef PASN_LEANANDMEAN
  5781.   PAssert(IsDescendant(H245_MultilinkIndication_excessiveError::Class()), PInvalidCast);
  5782. #endif
  5783.   const H245_MultilinkIndication_excessiveError & other = (const H245_MultilinkIndication_excessiveError &)obj;
  5784.  
  5785.   Comparison result;
  5786.  
  5787.   if ((result = m_connectionIdentifier.Compare(other.m_connectionIdentifier)) != EqualTo)
  5788.     return result;
  5789.  
  5790.   return PASN_Sequence::Compare(other);
  5791. }
  5792.  
  5793.  
  5794. PINDEX H245_MultilinkIndication_excessiveError::GetDataLength() const
  5795. {
  5796.   PINDEX length = 0;
  5797.   length += m_connectionIdentifier.GetObjectLength();
  5798.   return length;
  5799. }
  5800.  
  5801.  
  5802. BOOL H245_MultilinkIndication_excessiveError::Decode(PASN_Stream & strm)
  5803. {
  5804.   if (!PreambleDecode(strm))
  5805.     return FALSE;
  5806.  
  5807.   if (!m_connectionIdentifier.Decode(strm))
  5808.     return FALSE;
  5809.  
  5810.   return UnknownExtensionsDecode(strm);
  5811. }
  5812.  
  5813.  
  5814. void H245_MultilinkIndication_excessiveError::Encode(PASN_Stream & strm) const
  5815. {
  5816.   PreambleEncode(strm);
  5817.  
  5818.   m_connectionIdentifier.Encode(strm);
  5819.  
  5820.   UnknownExtensionsEncode(strm);
  5821. }
  5822.  
  5823.  
  5824. PObject * H245_MultilinkIndication_excessiveError::Clone() const
  5825. {
  5826. #ifndef PASN_LEANANDMEAN
  5827.   PAssert(IsClass(H245_MultilinkIndication_excessiveError::Class()), PInvalidCast);
  5828. #endif
  5829.   return new H245_MultilinkIndication_excessiveError(*this);
  5830. }
  5831.  
  5832.  
  5833. //
  5834. // ArrayOf_DialingInformationNumber
  5835. //
  5836.  
  5837. H245_ArrayOf_DialingInformationNumber::H245_ArrayOf_DialingInformationNumber(unsigned tag, PASN_Object::TagClass tagClass)
  5838.   : PASN_Array(tag, tagClass)
  5839. {
  5840. }
  5841.  
  5842.  
  5843. PASN_Object * H245_ArrayOf_DialingInformationNumber::CreateObject() const
  5844. {
  5845.   return new H245_DialingInformationNumber;
  5846. }
  5847.  
  5848.  
  5849. H245_DialingInformationNumber & H245_ArrayOf_DialingInformationNumber::operator[](PINDEX i) const
  5850. {
  5851.   return (H245_DialingInformationNumber &)array[i];
  5852. }
  5853.  
  5854.  
  5855. PObject * H245_ArrayOf_DialingInformationNumber::Clone() const
  5856. {
  5857. #ifndef PASN_LEANANDMEAN
  5858.   PAssert(IsClass(H245_ArrayOf_DialingInformationNumber::Class()), PInvalidCast);
  5859. #endif
  5860.   return new H245_ArrayOf_DialingInformationNumber(*this);
  5861. }
  5862.  
  5863.  
  5864. //
  5865. // ArrayOf_DialingInformationNetworkType
  5866. //
  5867.  
  5868. H245_ArrayOf_DialingInformationNetworkType::H245_ArrayOf_DialingInformationNetworkType(unsigned tag, PASN_Object::TagClass tagClass)
  5869.   : PASN_Array(tag, tagClass)
  5870. {
  5871. }
  5872.  
  5873.  
  5874. PASN_Object * H245_ArrayOf_DialingInformationNetworkType::CreateObject() const
  5875. {
  5876.   return new H245_DialingInformationNetworkType;
  5877. }
  5878.  
  5879.  
  5880. H245_DialingInformationNetworkType & H245_ArrayOf_DialingInformationNetworkType::operator[](PINDEX i) const
  5881. {
  5882.   return (H245_DialingInformationNetworkType &)array[i];
  5883. }
  5884.  
  5885.  
  5886. PObject * H245_ArrayOf_DialingInformationNetworkType::Clone() const
  5887. {
  5888. #ifndef PASN_LEANANDMEAN
  5889.   PAssert(IsClass(H245_ArrayOf_DialingInformationNetworkType::Class()), PInvalidCast);
  5890. #endif
  5891.   return new H245_ArrayOf_DialingInformationNetworkType(*this);
  5892. }
  5893.  
  5894.  
  5895. //
  5896. // FlowControlCommand_scope
  5897. //
  5898.  
  5899. H245_FlowControlCommand_scope::H245_FlowControlCommand_scope(unsigned tag, PASN_Object::TagClass tagClass)
  5900.   : PASN_Choice(tag, tagClass, 3, FALSE
  5901. #ifndef PASN_NOPRINTON
  5902.       , "logicalChannelNumber "
  5903.         "resourceID "
  5904.         "wholeMultiplex "
  5905. #endif
  5906.     )
  5907. {
  5908. }
  5909.  
  5910.  
  5911. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5912. H245_FlowControlCommand_scope::operator H245_LogicalChannelNumber &() const
  5913. #else
  5914. H245_FlowControlCommand_scope::operator H245_LogicalChannelNumber &()
  5915. {
  5916. #ifndef PASN_LEANANDMEAN
  5917.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  5918. #endif
  5919.   return *(H245_LogicalChannelNumber *)choice;
  5920. }
  5921.  
  5922.  
  5923. H245_FlowControlCommand_scope::operator const H245_LogicalChannelNumber &() const
  5924. #endif
  5925. {
  5926. #ifndef PASN_LEANANDMEAN
  5927.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  5928. #endif
  5929.   return *(H245_LogicalChannelNumber *)choice;
  5930. }
  5931.  
  5932.  
  5933. BOOL H245_FlowControlCommand_scope::CreateObject()
  5934. {
  5935.   switch (tag) {
  5936.     case e_logicalChannelNumber :
  5937.       choice = new H245_LogicalChannelNumber();
  5938.       return TRUE;
  5939.     case e_resourceID :
  5940.       choice = new PASN_Integer();
  5941.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  5942.       return TRUE;
  5943.     case e_wholeMultiplex :
  5944.       choice = new PASN_Null();
  5945.       return TRUE;
  5946.   }
  5947.  
  5948.   choice = NULL;
  5949.   return FALSE;
  5950. }
  5951.  
  5952.  
  5953. PObject * H245_FlowControlCommand_scope::Clone() const
  5954. {
  5955. #ifndef PASN_LEANANDMEAN
  5956.   PAssert(IsClass(H245_FlowControlCommand_scope::Class()), PInvalidCast);
  5957. #endif
  5958.   return new H245_FlowControlCommand_scope(*this);
  5959. }
  5960.  
  5961.  
  5962. //
  5963. // FlowControlCommand_restriction
  5964. //
  5965.  
  5966. H245_FlowControlCommand_restriction::H245_FlowControlCommand_restriction(unsigned tag, PASN_Object::TagClass tagClass)
  5967.   : PASN_Choice(tag, tagClass, 2, FALSE
  5968. #ifndef PASN_NOPRINTON
  5969.       , "maximumBitRate "
  5970.         "noRestriction "
  5971. #endif
  5972.     )
  5973. {
  5974. }
  5975.  
  5976.  
  5977. BOOL H245_FlowControlCommand_restriction::CreateObject()
  5978. {
  5979.   switch (tag) {
  5980.     case e_maximumBitRate :
  5981.       choice = new PASN_Integer();
  5982.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 16777215);
  5983.       return TRUE;
  5984.     case e_noRestriction :
  5985.       choice = new PASN_Null();
  5986.       return TRUE;
  5987.   }
  5988.  
  5989.   choice = NULL;
  5990.   return FALSE;
  5991. }
  5992.  
  5993.  
  5994. PObject * H245_FlowControlCommand_restriction::Clone() const
  5995. {
  5996. #ifndef PASN_LEANANDMEAN
  5997.   PAssert(IsClass(H245_FlowControlCommand_restriction::Class()), PInvalidCast);
  5998. #endif
  5999.   return new H245_FlowControlCommand_restriction(*this);
  6000. }
  6001.  
  6002.  
  6003. //
  6004. // EndSessionCommand_gstnOptions
  6005. //
  6006.  
  6007. H245_EndSessionCommand_gstnOptions::H245_EndSessionCommand_gstnOptions(unsigned tag, PASN_Object::TagClass tagClass)
  6008.   : PASN_Choice(tag, tagClass, 5, TRUE
  6009. #ifndef PASN_NOPRINTON
  6010.       , "telephonyMode "
  6011.         "v8bis "
  6012.         "v34DSVD "
  6013.         "v34DuplexFAX "
  6014.         "v34H324 "
  6015. #endif
  6016.     )
  6017. {
  6018. }
  6019.  
  6020.  
  6021. BOOL H245_EndSessionCommand_gstnOptions::CreateObject()
  6022. {
  6023.   choice = (tag <= e_v34H324) ? new PASN_Null() : NULL;
  6024.   return choice != NULL;
  6025. }
  6026.  
  6027.  
  6028. PObject * H245_EndSessionCommand_gstnOptions::Clone() const
  6029. {
  6030. #ifndef PASN_LEANANDMEAN
  6031.   PAssert(IsClass(H245_EndSessionCommand_gstnOptions::Class()), PInvalidCast);
  6032. #endif
  6033.   return new H245_EndSessionCommand_gstnOptions(*this);
  6034. }
  6035.  
  6036.  
  6037. //
  6038. // EndSessionCommand_isdnOptions
  6039. //
  6040.  
  6041. H245_EndSessionCommand_isdnOptions::H245_EndSessionCommand_isdnOptions(unsigned tag, PASN_Object::TagClass tagClass)
  6042.   : PASN_Choice(tag, tagClass, 3, TRUE
  6043. #ifndef PASN_NOPRINTON
  6044.       , "telephonyMode "
  6045.         "v140 "
  6046.         "terminalOnHold "
  6047. #endif
  6048.     )
  6049. {
  6050. }
  6051.  
  6052.  
  6053. BOOL H245_EndSessionCommand_isdnOptions::CreateObject()
  6054. {
  6055.   choice = (tag <= e_terminalOnHold) ? new PASN_Null() : NULL;
  6056.   return choice != NULL;
  6057. }
  6058.  
  6059.  
  6060. PObject * H245_EndSessionCommand_isdnOptions::Clone() const
  6061. {
  6062. #ifndef PASN_LEANANDMEAN
  6063.   PAssert(IsClass(H245_EndSessionCommand_isdnOptions::Class()), PInvalidCast);
  6064. #endif
  6065.   return new H245_EndSessionCommand_isdnOptions(*this);
  6066. }
  6067.  
  6068.  
  6069. //
  6070. // MiscellaneousCommand_type
  6071. //
  6072.  
  6073. H245_MiscellaneousCommand_type::H245_MiscellaneousCommand_type(unsigned tag, PASN_Object::TagClass tagClass)
  6074.   : PASN_Choice(tag, tagClass, 10, TRUE
  6075. #ifndef PASN_NOPRINTON
  6076.       , "equaliseDelay "
  6077.         "zeroDelay "
  6078.         "multipointModeCommand "
  6079.         "cancelMultipointModeCommand "
  6080.         "videoFreezePicture "
  6081.         "videoFastUpdatePicture "
  6082.         "videoFastUpdateGOB "
  6083.         "videoTemporalSpatialTradeOff "
  6084.         "videoSendSyncEveryGOB "
  6085.         "videoSendSyncEveryGOBCancel "
  6086.         "videoFastUpdateMB "
  6087.         "maxH223MUXPDUsize "
  6088.         "encryptionUpdate "
  6089.         "encryptionUpdateRequest "
  6090.         "switchReceiveMediaOff "
  6091.         "switchReceiveMediaOn "
  6092.         "progressiveRefinementStart "
  6093.         "progressiveRefinementAbortOne "
  6094.         "progressiveRefinementAbortContinuous "
  6095.         "videoBadMBs "
  6096.         "lostPicture "
  6097.         "lostPartialPicture "
  6098.         "recoveryReferencePicture "
  6099. #endif
  6100.     )
  6101. {
  6102. }
  6103.  
  6104.  
  6105. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6106. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_videoFastUpdateGOB &() const
  6107. #else
  6108. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_videoFastUpdateGOB &()
  6109. {
  6110. #ifndef PASN_LEANANDMEAN
  6111.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_videoFastUpdateGOB::Class()), PInvalidCast);
  6112. #endif
  6113.   return *(H245_MiscellaneousCommand_type_videoFastUpdateGOB *)choice;
  6114. }
  6115.  
  6116.  
  6117. H245_MiscellaneousCommand_type::operator const H245_MiscellaneousCommand_type_videoFastUpdateGOB &() const
  6118. #endif
  6119. {
  6120. #ifndef PASN_LEANANDMEAN
  6121.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_videoFastUpdateGOB::Class()), PInvalidCast);
  6122. #endif
  6123.   return *(H245_MiscellaneousCommand_type_videoFastUpdateGOB *)choice;
  6124. }
  6125.  
  6126.  
  6127. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6128. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_videoFastUpdateMB &() const
  6129. #else
  6130. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_videoFastUpdateMB &()
  6131. {
  6132. #ifndef PASN_LEANANDMEAN
  6133.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_videoFastUpdateMB::Class()), PInvalidCast);
  6134. #endif
  6135.   return *(H245_MiscellaneousCommand_type_videoFastUpdateMB *)choice;
  6136. }
  6137.  
  6138.  
  6139. H245_MiscellaneousCommand_type::operator const H245_MiscellaneousCommand_type_videoFastUpdateMB &() const
  6140. #endif
  6141. {
  6142. #ifndef PASN_LEANANDMEAN
  6143.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_videoFastUpdateMB::Class()), PInvalidCast);
  6144. #endif
  6145.   return *(H245_MiscellaneousCommand_type_videoFastUpdateMB *)choice;
  6146. }
  6147.  
  6148.  
  6149. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6150. H245_MiscellaneousCommand_type::operator H245_EncryptionSync &() const
  6151. #else
  6152. H245_MiscellaneousCommand_type::operator H245_EncryptionSync &()
  6153. {
  6154. #ifndef PASN_LEANANDMEAN
  6155.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionSync::Class()), PInvalidCast);
  6156. #endif
  6157.   return *(H245_EncryptionSync *)choice;
  6158. }
  6159.  
  6160.  
  6161. H245_MiscellaneousCommand_type::operator const H245_EncryptionSync &() const
  6162. #endif
  6163. {
  6164. #ifndef PASN_LEANANDMEAN
  6165.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionSync::Class()), PInvalidCast);
  6166. #endif
  6167.   return *(H245_EncryptionSync *)choice;
  6168. }
  6169.  
  6170.  
  6171. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6172. H245_MiscellaneousCommand_type::operator H245_EncryptionUpdateRequest &() const
  6173. #else
  6174. H245_MiscellaneousCommand_type::operator H245_EncryptionUpdateRequest &()
  6175. {
  6176. #ifndef PASN_LEANANDMEAN
  6177.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionUpdateRequest::Class()), PInvalidCast);
  6178. #endif
  6179.   return *(H245_EncryptionUpdateRequest *)choice;
  6180. }
  6181.  
  6182.  
  6183. H245_MiscellaneousCommand_type::operator const H245_EncryptionUpdateRequest &() const
  6184. #endif
  6185. {
  6186. #ifndef PASN_LEANANDMEAN
  6187.   PAssert(PAssertNULL(choice)->IsDescendant(H245_EncryptionUpdateRequest::Class()), PInvalidCast);
  6188. #endif
  6189.   return *(H245_EncryptionUpdateRequest *)choice;
  6190. }
  6191.  
  6192.  
  6193. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6194. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_progressiveRefinementStart &() const
  6195. #else
  6196. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_progressiveRefinementStart &()
  6197. {
  6198. #ifndef PASN_LEANANDMEAN
  6199.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_progressiveRefinementStart::Class()), PInvalidCast);
  6200. #endif
  6201.   return *(H245_MiscellaneousCommand_type_progressiveRefinementStart *)choice;
  6202. }
  6203.  
  6204.  
  6205. H245_MiscellaneousCommand_type::operator const H245_MiscellaneousCommand_type_progressiveRefinementStart &() const
  6206. #endif
  6207. {
  6208. #ifndef PASN_LEANANDMEAN
  6209.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_progressiveRefinementStart::Class()), PInvalidCast);
  6210. #endif
  6211.   return *(H245_MiscellaneousCommand_type_progressiveRefinementStart *)choice;
  6212. }
  6213.  
  6214.  
  6215. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6216. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_videoBadMBs &() const
  6217. #else
  6218. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_videoBadMBs &()
  6219. {
  6220. #ifndef PASN_LEANANDMEAN
  6221.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_videoBadMBs::Class()), PInvalidCast);
  6222. #endif
  6223.   return *(H245_MiscellaneousCommand_type_videoBadMBs *)choice;
  6224. }
  6225.  
  6226.  
  6227. H245_MiscellaneousCommand_type::operator const H245_MiscellaneousCommand_type_videoBadMBs &() const
  6228. #endif
  6229. {
  6230. #ifndef PASN_LEANANDMEAN
  6231.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_videoBadMBs::Class()), PInvalidCast);
  6232. #endif
  6233.   return *(H245_MiscellaneousCommand_type_videoBadMBs *)choice;
  6234. }
  6235.  
  6236.  
  6237. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6238. H245_MiscellaneousCommand_type::operator H245_ArrayOf_PictureReference &() const
  6239. #else
  6240. H245_MiscellaneousCommand_type::operator H245_ArrayOf_PictureReference &()
  6241. {
  6242. #ifndef PASN_LEANANDMEAN
  6243.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_PictureReference::Class()), PInvalidCast);
  6244. #endif
  6245.   return *(H245_ArrayOf_PictureReference *)choice;
  6246. }
  6247.  
  6248.  
  6249. H245_MiscellaneousCommand_type::operator const H245_ArrayOf_PictureReference &() const
  6250. #endif
  6251. {
  6252. #ifndef PASN_LEANANDMEAN
  6253.   PAssert(PAssertNULL(choice)->IsDescendant(H245_ArrayOf_PictureReference::Class()), PInvalidCast);
  6254. #endif
  6255.   return *(H245_ArrayOf_PictureReference *)choice;
  6256. }
  6257.  
  6258.  
  6259. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6260. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_lostPartialPicture &() const
  6261. #else
  6262. H245_MiscellaneousCommand_type::operator H245_MiscellaneousCommand_type_lostPartialPicture &()
  6263. {
  6264. #ifndef PASN_LEANANDMEAN
  6265.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_lostPartialPicture::Class()), PInvalidCast);
  6266. #endif
  6267.   return *(H245_MiscellaneousCommand_type_lostPartialPicture *)choice;
  6268. }
  6269.  
  6270.  
  6271. H245_MiscellaneousCommand_type::operator const H245_MiscellaneousCommand_type_lostPartialPicture &() const
  6272. #endif
  6273. {
  6274. #ifndef PASN_LEANANDMEAN
  6275.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousCommand_type_lostPartialPicture::Class()), PInvalidCast);
  6276. #endif
  6277.   return *(H245_MiscellaneousCommand_type_lostPartialPicture *)choice;
  6278. }
  6279.  
  6280.  
  6281. BOOL H245_MiscellaneousCommand_type::CreateObject()
  6282. {
  6283.   switch (tag) {
  6284.     case e_equaliseDelay :
  6285.     case e_zeroDelay :
  6286.     case e_multipointModeCommand :
  6287.     case e_cancelMultipointModeCommand :
  6288.     case e_videoFreezePicture :
  6289.     case e_videoFastUpdatePicture :
  6290.     case e_videoSendSyncEveryGOB :
  6291.     case e_videoSendSyncEveryGOBCancel :
  6292.     case e_switchReceiveMediaOff :
  6293.     case e_switchReceiveMediaOn :
  6294.     case e_progressiveRefinementAbortOne :
  6295.     case e_progressiveRefinementAbortContinuous :
  6296.       choice = new PASN_Null();
  6297.       return TRUE;
  6298.     case e_videoFastUpdateGOB :
  6299.       choice = new H245_MiscellaneousCommand_type_videoFastUpdateGOB();
  6300.       return TRUE;
  6301.     case e_videoTemporalSpatialTradeOff :
  6302.       choice = new PASN_Integer();
  6303.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 31);
  6304.       return TRUE;
  6305.     case e_videoFastUpdateMB :
  6306.       choice = new H245_MiscellaneousCommand_type_videoFastUpdateMB();
  6307.       return TRUE;
  6308.     case e_maxH223MUXPDUsize :
  6309.       choice = new PASN_Integer();
  6310.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  6311.       return TRUE;
  6312.     case e_encryptionUpdate :
  6313.       choice = new H245_EncryptionSync();
  6314.       return TRUE;
  6315.     case e_encryptionUpdateRequest :
  6316.       choice = new H245_EncryptionUpdateRequest();
  6317.       return TRUE;
  6318.     case e_progressiveRefinementStart :
  6319.       choice = new H245_MiscellaneousCommand_type_progressiveRefinementStart();
  6320.       return TRUE;
  6321.     case e_videoBadMBs :
  6322.       choice = new H245_MiscellaneousCommand_type_videoBadMBs();
  6323.       return TRUE;
  6324.     case e_lostPicture :
  6325.     case e_recoveryReferencePicture :
  6326.       choice = new H245_ArrayOf_PictureReference();
  6327.       return TRUE;
  6328.     case e_lostPartialPicture :
  6329.       choice = new H245_MiscellaneousCommand_type_lostPartialPicture();
  6330.       return TRUE;
  6331.   }
  6332.  
  6333.   choice = NULL;
  6334.   return FALSE;
  6335. }
  6336.  
  6337.  
  6338. PObject * H245_MiscellaneousCommand_type::Clone() const
  6339. {
  6340. #ifndef PASN_LEANANDMEAN
  6341.   PAssert(IsClass(H245_MiscellaneousCommand_type::Class()), PInvalidCast);
  6342. #endif
  6343.   return new H245_MiscellaneousCommand_type(*this);
  6344. }
  6345.  
  6346.  
  6347. //
  6348. // H223MultiplexReconfiguration_h223ModeChange
  6349. //
  6350.  
  6351. H245_H223MultiplexReconfiguration_h223ModeChange::H245_H223MultiplexReconfiguration_h223ModeChange(unsigned tag, PASN_Object::TagClass tagClass)
  6352.   : PASN_Choice(tag, tagClass, 4, TRUE
  6353. #ifndef PASN_NOPRINTON
  6354.       , "toLevel0 "
  6355.         "toLevel1 "
  6356.         "toLevel2 "
  6357.         "toLevel2withOptionalHeader "
  6358. #endif
  6359.     )
  6360. {
  6361. }
  6362.  
  6363.  
  6364. BOOL H245_H223MultiplexReconfiguration_h223ModeChange::CreateObject()
  6365. {
  6366.   choice = (tag <= e_toLevel2withOptionalHeader) ? new PASN_Null() : NULL;
  6367.   return choice != NULL;
  6368. }
  6369.  
  6370.  
  6371. PObject * H245_H223MultiplexReconfiguration_h223ModeChange::Clone() const
  6372. {
  6373. #ifndef PASN_LEANANDMEAN
  6374.   PAssert(IsClass(H245_H223MultiplexReconfiguration_h223ModeChange::Class()), PInvalidCast);
  6375. #endif
  6376.   return new H245_H223MultiplexReconfiguration_h223ModeChange(*this);
  6377. }
  6378.  
  6379.  
  6380. //
  6381. // H223MultiplexReconfiguration_h223AnnexADoubleFlag
  6382. //
  6383.  
  6384. H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag::H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag(unsigned tag, PASN_Object::TagClass tagClass)
  6385.   : PASN_Choice(tag, tagClass, 2, TRUE
  6386. #ifndef PASN_NOPRINTON
  6387.       , "start "
  6388.         "stop "
  6389. #endif
  6390.     )
  6391. {
  6392. }
  6393.  
  6394.  
  6395. BOOL H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag::CreateObject()
  6396. {
  6397.   choice = (tag <= e_stop) ? new PASN_Null() : NULL;
  6398.   return choice != NULL;
  6399. }
  6400.  
  6401.  
  6402. PObject * H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag::Clone() const
  6403. {
  6404. #ifndef PASN_LEANANDMEAN
  6405.   PAssert(IsClass(H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag::Class()), PInvalidCast);
  6406. #endif
  6407.   return new H245_H223MultiplexReconfiguration_h223AnnexADoubleFlag(*this);
  6408. }
  6409.  
  6410.  
  6411. //
  6412. // NewATMVCCommand_aal
  6413. //
  6414.  
  6415. H245_NewATMVCCommand_aal::H245_NewATMVCCommand_aal(unsigned tag, PASN_Object::TagClass tagClass)
  6416.   : PASN_Choice(tag, tagClass, 2, TRUE
  6417. #ifndef PASN_NOPRINTON
  6418.       , "aal1 "
  6419.         "aal5 "
  6420. #endif
  6421.     )
  6422. {
  6423. }
  6424.  
  6425.  
  6426. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6427. H245_NewATMVCCommand_aal::operator H245_NewATMVCCommand_aal_aal1 &() const
  6428. #else
  6429. H245_NewATMVCCommand_aal::operator H245_NewATMVCCommand_aal_aal1 &()
  6430. {
  6431. #ifndef PASN_LEANANDMEAN
  6432.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCCommand_aal_aal1::Class()), PInvalidCast);
  6433. #endif
  6434.   return *(H245_NewATMVCCommand_aal_aal1 *)choice;
  6435. }
  6436.  
  6437.  
  6438. H245_NewATMVCCommand_aal::operator const H245_NewATMVCCommand_aal_aal1 &() const
  6439. #endif
  6440. {
  6441. #ifndef PASN_LEANANDMEAN
  6442.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCCommand_aal_aal1::Class()), PInvalidCast);
  6443. #endif
  6444.   return *(H245_NewATMVCCommand_aal_aal1 *)choice;
  6445. }
  6446.  
  6447.  
  6448. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6449. H245_NewATMVCCommand_aal::operator H245_NewATMVCCommand_aal_aal5 &() const
  6450. #else
  6451. H245_NewATMVCCommand_aal::operator H245_NewATMVCCommand_aal_aal5 &()
  6452. {
  6453. #ifndef PASN_LEANANDMEAN
  6454.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCCommand_aal_aal5::Class()), PInvalidCast);
  6455. #endif
  6456.   return *(H245_NewATMVCCommand_aal_aal5 *)choice;
  6457. }
  6458.  
  6459.  
  6460. H245_NewATMVCCommand_aal::operator const H245_NewATMVCCommand_aal_aal5 &() const
  6461. #endif
  6462. {
  6463. #ifndef PASN_LEANANDMEAN
  6464.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCCommand_aal_aal5::Class()), PInvalidCast);
  6465. #endif
  6466.   return *(H245_NewATMVCCommand_aal_aal5 *)choice;
  6467. }
  6468.  
  6469.  
  6470. BOOL H245_NewATMVCCommand_aal::CreateObject()
  6471. {
  6472.   switch (tag) {
  6473.     case e_aal1 :
  6474.       choice = new H245_NewATMVCCommand_aal_aal1();
  6475.       return TRUE;
  6476.     case e_aal5 :
  6477.       choice = new H245_NewATMVCCommand_aal_aal5();
  6478.       return TRUE;
  6479.   }
  6480.  
  6481.   choice = NULL;
  6482.   return FALSE;
  6483. }
  6484.  
  6485.  
  6486. PObject * H245_NewATMVCCommand_aal::Clone() const
  6487. {
  6488. #ifndef PASN_LEANANDMEAN
  6489.   PAssert(IsClass(H245_NewATMVCCommand_aal::Class()), PInvalidCast);
  6490. #endif
  6491.   return new H245_NewATMVCCommand_aal(*this);
  6492. }
  6493.  
  6494.  
  6495. //
  6496. // NewATMVCCommand_multiplex
  6497. //
  6498.  
  6499. H245_NewATMVCCommand_multiplex::H245_NewATMVCCommand_multiplex(unsigned tag, PASN_Object::TagClass tagClass)
  6500.   : PASN_Choice(tag, tagClass, 3, TRUE
  6501. #ifndef PASN_NOPRINTON
  6502.       , "noMultiplex "
  6503.         "transportStream "
  6504.         "programStream "
  6505. #endif
  6506.     )
  6507. {
  6508. }
  6509.  
  6510.  
  6511. BOOL H245_NewATMVCCommand_multiplex::CreateObject()
  6512. {
  6513.   choice = (tag <= e_programStream) ? new PASN_Null() : NULL;
  6514.   return choice != NULL;
  6515. }
  6516.  
  6517.  
  6518. PObject * H245_NewATMVCCommand_multiplex::Clone() const
  6519. {
  6520. #ifndef PASN_LEANANDMEAN
  6521.   PAssert(IsClass(H245_NewATMVCCommand_multiplex::Class()), PInvalidCast);
  6522. #endif
  6523.   return new H245_NewATMVCCommand_multiplex(*this);
  6524. }
  6525.  
  6526.  
  6527. //
  6528. // MobileMultilinkReconfigurationCommand_status
  6529. //
  6530.  
  6531. H245_MobileMultilinkReconfigurationCommand_status::H245_MobileMultilinkReconfigurationCommand_status(unsigned tag, PASN_Object::TagClass tagClass)
  6532.   : PASN_Choice(tag, tagClass, 2, TRUE
  6533. #ifndef PASN_NOPRINTON
  6534.       , "synchronized "
  6535.         "reconfiguration "
  6536. #endif
  6537.     )
  6538. {
  6539. }
  6540.  
  6541.  
  6542. BOOL H245_MobileMultilinkReconfigurationCommand_status::CreateObject()
  6543. {
  6544.   choice = (tag <= e_reconfiguration) ? new PASN_Null() : NULL;
  6545.   return choice != NULL;
  6546. }
  6547.  
  6548.  
  6549. PObject * H245_MobileMultilinkReconfigurationCommand_status::Clone() const
  6550. {
  6551. #ifndef PASN_LEANANDMEAN
  6552.   PAssert(IsClass(H245_MobileMultilinkReconfigurationCommand_status::Class()), PInvalidCast);
  6553. #endif
  6554.   return new H245_MobileMultilinkReconfigurationCommand_status(*this);
  6555. }
  6556.  
  6557.  
  6558. //
  6559. // FunctionNotSupported_cause
  6560. //
  6561.  
  6562. H245_FunctionNotSupported_cause::H245_FunctionNotSupported_cause(unsigned tag, PASN_Object::TagClass tagClass)
  6563.   : PASN_Choice(tag, tagClass, 3, TRUE
  6564. #ifndef PASN_NOPRINTON
  6565.       , "syntaxError "
  6566.         "semanticError "
  6567.         "unknownFunction "
  6568. #endif
  6569.     )
  6570. {
  6571. }
  6572.  
  6573.  
  6574. BOOL H245_FunctionNotSupported_cause::CreateObject()
  6575. {
  6576.   choice = (tag <= e_unknownFunction) ? new PASN_Null() : NULL;
  6577.   return choice != NULL;
  6578. }
  6579.  
  6580.  
  6581. PObject * H245_FunctionNotSupported_cause::Clone() const
  6582. {
  6583. #ifndef PASN_LEANANDMEAN
  6584.   PAssert(IsClass(H245_FunctionNotSupported_cause::Class()), PInvalidCast);
  6585. #endif
  6586.   return new H245_FunctionNotSupported_cause(*this);
  6587. }
  6588.  
  6589.  
  6590. //
  6591. // MiscellaneousIndication_type
  6592. //
  6593.  
  6594. H245_MiscellaneousIndication_type::H245_MiscellaneousIndication_type(unsigned tag, PASN_Object::TagClass tagClass)
  6595.   : PASN_Choice(tag, tagClass, 10, TRUE
  6596. #ifndef PASN_NOPRINTON
  6597.       , "logicalChannelActive "
  6598.         "logicalChannelInactive "
  6599.         "multipointConference "
  6600.         "cancelMultipointConference "
  6601.         "multipointZeroComm "
  6602.         "cancelMultipointZeroComm "
  6603.         "multipointSecondaryStatus "
  6604.         "cancelMultipointSecondaryStatus "
  6605.         "videoIndicateReadyToActivate "
  6606.         "videoTemporalSpatialTradeOff "
  6607.         "videoNotDecodedMBs "
  6608.         "transportCapability "
  6609. #endif
  6610.     )
  6611. {
  6612. }
  6613.  
  6614.  
  6615. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6616. H245_MiscellaneousIndication_type::operator H245_MiscellaneousIndication_type_videoNotDecodedMBs &() const
  6617. #else
  6618. H245_MiscellaneousIndication_type::operator H245_MiscellaneousIndication_type_videoNotDecodedMBs &()
  6619. {
  6620. #ifndef PASN_LEANANDMEAN
  6621.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousIndication_type_videoNotDecodedMBs::Class()), PInvalidCast);
  6622. #endif
  6623.   return *(H245_MiscellaneousIndication_type_videoNotDecodedMBs *)choice;
  6624. }
  6625.  
  6626.  
  6627. H245_MiscellaneousIndication_type::operator const H245_MiscellaneousIndication_type_videoNotDecodedMBs &() const
  6628. #endif
  6629. {
  6630. #ifndef PASN_LEANANDMEAN
  6631.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MiscellaneousIndication_type_videoNotDecodedMBs::Class()), PInvalidCast);
  6632. #endif
  6633.   return *(H245_MiscellaneousIndication_type_videoNotDecodedMBs *)choice;
  6634. }
  6635.  
  6636.  
  6637. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6638. H245_MiscellaneousIndication_type::operator H245_TransportCapability &() const
  6639. #else
  6640. H245_MiscellaneousIndication_type::operator H245_TransportCapability &()
  6641. {
  6642. #ifndef PASN_LEANANDMEAN
  6643.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TransportCapability::Class()), PInvalidCast);
  6644. #endif
  6645.   return *(H245_TransportCapability *)choice;
  6646. }
  6647.  
  6648.  
  6649. H245_MiscellaneousIndication_type::operator const H245_TransportCapability &() const
  6650. #endif
  6651. {
  6652. #ifndef PASN_LEANANDMEAN
  6653.   PAssert(PAssertNULL(choice)->IsDescendant(H245_TransportCapability::Class()), PInvalidCast);
  6654. #endif
  6655.   return *(H245_TransportCapability *)choice;
  6656. }
  6657.  
  6658.  
  6659. BOOL H245_MiscellaneousIndication_type::CreateObject()
  6660. {
  6661.   switch (tag) {
  6662.     case e_logicalChannelActive :
  6663.     case e_logicalChannelInactive :
  6664.     case e_multipointConference :
  6665.     case e_cancelMultipointConference :
  6666.     case e_multipointZeroComm :
  6667.     case e_cancelMultipointZeroComm :
  6668.     case e_multipointSecondaryStatus :
  6669.     case e_cancelMultipointSecondaryStatus :
  6670.     case e_videoIndicateReadyToActivate :
  6671.       choice = new PASN_Null();
  6672.       return TRUE;
  6673.     case e_videoTemporalSpatialTradeOff :
  6674.       choice = new PASN_Integer();
  6675.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 31);
  6676.       return TRUE;
  6677.     case e_videoNotDecodedMBs :
  6678.       choice = new H245_MiscellaneousIndication_type_videoNotDecodedMBs();
  6679.       return TRUE;
  6680.     case e_transportCapability :
  6681.       choice = new H245_TransportCapability();
  6682.       return TRUE;
  6683.   }
  6684.  
  6685.   choice = NULL;
  6686.   return FALSE;
  6687. }
  6688.  
  6689.  
  6690. PObject * H245_MiscellaneousIndication_type::Clone() const
  6691. {
  6692. #ifndef PASN_LEANANDMEAN
  6693.   PAssert(IsClass(H245_MiscellaneousIndication_type::Class()), PInvalidCast);
  6694. #endif
  6695.   return new H245_MiscellaneousIndication_type(*this);
  6696. }
  6697.  
  6698.  
  6699. //
  6700. // JitterIndication_scope
  6701. //
  6702.  
  6703. H245_JitterIndication_scope::H245_JitterIndication_scope(unsigned tag, PASN_Object::TagClass tagClass)
  6704.   : PASN_Choice(tag, tagClass, 3, FALSE
  6705. #ifndef PASN_NOPRINTON
  6706.       , "logicalChannelNumber "
  6707.         "resourceID "
  6708.         "wholeMultiplex "
  6709. #endif
  6710.     )
  6711. {
  6712. }
  6713.  
  6714.  
  6715. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6716. H245_JitterIndication_scope::operator H245_LogicalChannelNumber &() const
  6717. #else
  6718. H245_JitterIndication_scope::operator H245_LogicalChannelNumber &()
  6719. {
  6720. #ifndef PASN_LEANANDMEAN
  6721.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  6722. #endif
  6723.   return *(H245_LogicalChannelNumber *)choice;
  6724. }
  6725.  
  6726.  
  6727. H245_JitterIndication_scope::operator const H245_LogicalChannelNumber &() const
  6728. #endif
  6729. {
  6730. #ifndef PASN_LEANANDMEAN
  6731.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  6732. #endif
  6733.   return *(H245_LogicalChannelNumber *)choice;
  6734. }
  6735.  
  6736.  
  6737. BOOL H245_JitterIndication_scope::CreateObject()
  6738. {
  6739.   switch (tag) {
  6740.     case e_logicalChannelNumber :
  6741.       choice = new H245_LogicalChannelNumber();
  6742.       return TRUE;
  6743.     case e_resourceID :
  6744.       choice = new PASN_Integer();
  6745.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  6746.       return TRUE;
  6747.     case e_wholeMultiplex :
  6748.       choice = new PASN_Null();
  6749.       return TRUE;
  6750.   }
  6751.  
  6752.   choice = NULL;
  6753.   return FALSE;
  6754. }
  6755.  
  6756.  
  6757. PObject * H245_JitterIndication_scope::Clone() const
  6758. {
  6759. #ifndef PASN_LEANANDMEAN
  6760.   PAssert(IsClass(H245_JitterIndication_scope::Class()), PInvalidCast);
  6761. #endif
  6762.   return new H245_JitterIndication_scope(*this);
  6763. }
  6764.  
  6765.  
  6766. //
  6767. // NewATMVCIndication_aal
  6768. //
  6769.  
  6770. H245_NewATMVCIndication_aal::H245_NewATMVCIndication_aal(unsigned tag, PASN_Object::TagClass tagClass)
  6771.   : PASN_Choice(tag, tagClass, 2, TRUE
  6772. #ifndef PASN_NOPRINTON
  6773.       , "aal1 "
  6774.         "aal5 "
  6775. #endif
  6776.     )
  6777. {
  6778. }
  6779.  
  6780.  
  6781. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6782. H245_NewATMVCIndication_aal::operator H245_NewATMVCIndication_aal_aal1 &() const
  6783. #else
  6784. H245_NewATMVCIndication_aal::operator H245_NewATMVCIndication_aal_aal1 &()
  6785. {
  6786. #ifndef PASN_LEANANDMEAN
  6787.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCIndication_aal_aal1::Class()), PInvalidCast);
  6788. #endif
  6789.   return *(H245_NewATMVCIndication_aal_aal1 *)choice;
  6790. }
  6791.  
  6792.  
  6793. H245_NewATMVCIndication_aal::operator const H245_NewATMVCIndication_aal_aal1 &() const
  6794. #endif
  6795. {
  6796. #ifndef PASN_LEANANDMEAN
  6797.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCIndication_aal_aal1::Class()), PInvalidCast);
  6798. #endif
  6799.   return *(H245_NewATMVCIndication_aal_aal1 *)choice;
  6800. }
  6801.  
  6802.  
  6803. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6804. H245_NewATMVCIndication_aal::operator H245_NewATMVCIndication_aal_aal5 &() const
  6805. #else
  6806. H245_NewATMVCIndication_aal::operator H245_NewATMVCIndication_aal_aal5 &()
  6807. {
  6808. #ifndef PASN_LEANANDMEAN
  6809.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCIndication_aal_aal5::Class()), PInvalidCast);
  6810. #endif
  6811.   return *(H245_NewATMVCIndication_aal_aal5 *)choice;
  6812. }
  6813.  
  6814.  
  6815. H245_NewATMVCIndication_aal::operator const H245_NewATMVCIndication_aal_aal5 &() const
  6816. #endif
  6817. {
  6818. #ifndef PASN_LEANANDMEAN
  6819.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NewATMVCIndication_aal_aal5::Class()), PInvalidCast);
  6820. #endif
  6821.   return *(H245_NewATMVCIndication_aal_aal5 *)choice;
  6822. }
  6823.  
  6824.  
  6825. BOOL H245_NewATMVCIndication_aal::CreateObject()
  6826. {
  6827.   switch (tag) {
  6828.     case e_aal1 :
  6829.       choice = new H245_NewATMVCIndication_aal_aal1();
  6830.       return TRUE;
  6831.     case e_aal5 :
  6832.       choice = new H245_NewATMVCIndication_aal_aal5();
  6833.       return TRUE;
  6834.   }
  6835.  
  6836.   choice = NULL;
  6837.   return FALSE;
  6838. }
  6839.  
  6840.  
  6841. PObject * H245_NewATMVCIndication_aal::Clone() const
  6842. {
  6843. #ifndef PASN_LEANANDMEAN
  6844.   PAssert(IsClass(H245_NewATMVCIndication_aal::Class()), PInvalidCast);
  6845. #endif
  6846.   return new H245_NewATMVCIndication_aal(*this);
  6847. }
  6848.  
  6849.  
  6850. //
  6851. // NewATMVCIndication_multiplex
  6852. //
  6853.  
  6854. H245_NewATMVCIndication_multiplex::H245_NewATMVCIndication_multiplex(unsigned tag, PASN_Object::TagClass tagClass)
  6855.   : PASN_Choice(tag, tagClass, 3, TRUE
  6856. #ifndef PASN_NOPRINTON
  6857.       , "noMultiplex "
  6858.         "transportStream "
  6859.         "programStream "
  6860. #endif
  6861.     )
  6862. {
  6863. }
  6864.  
  6865.  
  6866. BOOL H245_NewATMVCIndication_multiplex::CreateObject()
  6867. {
  6868.   choice = (tag <= e_programStream) ? new PASN_Null() : NULL;
  6869.   return choice != NULL;
  6870. }
  6871.  
  6872.  
  6873. PObject * H245_NewATMVCIndication_multiplex::Clone() const
  6874. {
  6875. #ifndef PASN_LEANANDMEAN
  6876.   PAssert(IsClass(H245_NewATMVCIndication_multiplex::Class()), PInvalidCast);
  6877. #endif
  6878.   return new H245_NewATMVCIndication_multiplex(*this);
  6879. }
  6880.  
  6881.  
  6882. //
  6883. // UserInputIndication_userInputSupportIndication
  6884. //
  6885.  
  6886. H245_UserInputIndication_userInputSupportIndication::H245_UserInputIndication_userInputSupportIndication(unsigned tag, PASN_Object::TagClass tagClass)
  6887.   : PASN_Choice(tag, tagClass, 4, TRUE
  6888. #ifndef PASN_NOPRINTON
  6889.       , "nonStandard "
  6890.         "basicString "
  6891.         "iA5String "
  6892.         "generalString "
  6893. #endif
  6894.     )
  6895. {
  6896. }
  6897.  
  6898.  
  6899. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6900. H245_UserInputIndication_userInputSupportIndication::operator H245_NonStandardParameter &() const
  6901. #else
  6902. H245_UserInputIndication_userInputSupportIndication::operator H245_NonStandardParameter &()
  6903. {
  6904. #ifndef PASN_LEANANDMEAN
  6905.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6906. #endif
  6907.   return *(H245_NonStandardParameter *)choice;
  6908. }
  6909.  
  6910.  
  6911. H245_UserInputIndication_userInputSupportIndication::operator const H245_NonStandardParameter &() const
  6912. #endif
  6913. {
  6914. #ifndef PASN_LEANANDMEAN
  6915.   PAssert(PAssertNULL(choice)->IsDescendant(H245_NonStandardParameter::Class()), PInvalidCast);
  6916. #endif
  6917.   return *(H245_NonStandardParameter *)choice;
  6918. }
  6919.  
  6920.  
  6921. BOOL H245_UserInputIndication_userInputSupportIndication::CreateObject()
  6922. {
  6923.   switch (tag) {
  6924.     case e_nonStandard :
  6925.       choice = new H245_NonStandardParameter();
  6926.       return TRUE;
  6927.     case e_basicString :
  6928.     case e_iA5String :
  6929.     case e_generalString :
  6930.       choice = new PASN_Null();
  6931.       return TRUE;
  6932.   }
  6933.  
  6934.   choice = NULL;
  6935.   return FALSE;
  6936. }
  6937.  
  6938.  
  6939. PObject * H245_UserInputIndication_userInputSupportIndication::Clone() const
  6940. {
  6941. #ifndef PASN_LEANANDMEAN
  6942.   PAssert(IsClass(H245_UserInputIndication_userInputSupportIndication::Class()), PInvalidCast);
  6943. #endif
  6944.   return new H245_UserInputIndication_userInputSupportIndication(*this);
  6945. }
  6946.  
  6947.  
  6948. //
  6949. // UserInputIndication_extendedAlphanumeric
  6950. //
  6951.  
  6952. H245_UserInputIndication_extendedAlphanumeric::H245_UserInputIndication_extendedAlphanumeric(unsigned tag, PASN_Object::TagClass tagClass)
  6953.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  6954. {
  6955. }
  6956.  
  6957.  
  6958. #ifndef PASN_NOPRINTON
  6959. void H245_UserInputIndication_extendedAlphanumeric::PrintOn(ostream & strm) const
  6960. {
  6961.   int indent = strm.precision() + 2;
  6962.   strm << "{\n";
  6963.   strm << setw(indent+15) << "alphanumeric = " << setprecision(indent) << m_alphanumeric << '\n';
  6964.   if (HasOptionalField(e_rtpPayloadIndication))
  6965.     strm << setw(indent+23) << "rtpPayloadIndication = " << setprecision(indent) << m_rtpPayloadIndication << '\n';
  6966.   strm << setw(indent-1) << "}";
  6967. }
  6968. #endif
  6969.  
  6970.  
  6971. PObject::Comparison H245_UserInputIndication_extendedAlphanumeric::Compare(const PObject & obj) const
  6972. {
  6973. #ifndef PASN_LEANANDMEAN
  6974.   PAssert(IsDescendant(H245_UserInputIndication_extendedAlphanumeric::Class()), PInvalidCast);
  6975. #endif
  6976.   const H245_UserInputIndication_extendedAlphanumeric & other = (const H245_UserInputIndication_extendedAlphanumeric &)obj;
  6977.  
  6978.   Comparison result;
  6979.  
  6980.   if ((result = m_alphanumeric.Compare(other.m_alphanumeric)) != EqualTo)
  6981.     return result;
  6982.   if ((result = m_rtpPayloadIndication.Compare(other.m_rtpPayloadIndication)) != EqualTo)
  6983.     return result;
  6984.  
  6985.   return PASN_Sequence::Compare(other);
  6986. }
  6987.  
  6988.  
  6989. PINDEX H245_UserInputIndication_extendedAlphanumeric::GetDataLength() const
  6990. {
  6991.   PINDEX length = 0;
  6992.   length += m_alphanumeric.GetObjectLength();
  6993.   if (HasOptionalField(e_rtpPayloadIndication))
  6994.     length += m_rtpPayloadIndication.GetObjectLength();
  6995.   return length;
  6996. }
  6997.  
  6998.  
  6999. BOOL H245_UserInputIndication_extendedAlphanumeric::Decode(PASN_Stream & strm)
  7000. {
  7001.   if (!PreambleDecode(strm))
  7002.     return FALSE;
  7003.  
  7004.   if (!m_alphanumeric.Decode(strm))
  7005.     return FALSE;
  7006.   if (HasOptionalField(e_rtpPayloadIndication) && !m_rtpPayloadIndication.Decode(strm))
  7007.     return FALSE;
  7008.  
  7009.   return UnknownExtensionsDecode(strm);
  7010. }
  7011.  
  7012.  
  7013. void H245_UserInputIndication_extendedAlphanumeric::Encode(PASN_Stream & strm) const
  7014. {
  7015.   PreambleEncode(strm);
  7016.  
  7017.   m_alphanumeric.Encode(strm);
  7018.   if (HasOptionalField(e_rtpPayloadIndication))
  7019.     m_rtpPayloadIndication.Encode(strm);
  7020.  
  7021.   UnknownExtensionsEncode(strm);
  7022. }
  7023.  
  7024.  
  7025. PObject * H245_UserInputIndication_extendedAlphanumeric::Clone() const
  7026. {
  7027. #ifndef PASN_LEANANDMEAN
  7028.   PAssert(IsClass(H245_UserInputIndication_extendedAlphanumeric::Class()), PInvalidCast);
  7029. #endif
  7030.   return new H245_UserInputIndication_extendedAlphanumeric(*this);
  7031. }
  7032.  
  7033.  
  7034. //
  7035. // FlowControlIndication_scope
  7036. //
  7037.  
  7038. H245_FlowControlIndication_scope::H245_FlowControlIndication_scope(unsigned tag, PASN_Object::TagClass tagClass)
  7039.   : PASN_Choice(tag, tagClass, 3, FALSE
  7040. #ifndef PASN_NOPRINTON
  7041.       , "logicalChannelNumber "
  7042.         "resourceID "
  7043.         "wholeMultiplex "
  7044. #endif
  7045.     )
  7046. {
  7047. }
  7048.  
  7049.  
  7050. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7051. H245_FlowControlIndication_scope::operator H245_LogicalChannelNumber &() const
  7052. #else
  7053. H245_FlowControlIndication_scope::operator H245_LogicalChannelNumber &()
  7054. {
  7055. #ifndef PASN_LEANANDMEAN
  7056.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  7057. #endif
  7058.   return *(H245_LogicalChannelNumber *)choice;
  7059. }
  7060.  
  7061.  
  7062. H245_FlowControlIndication_scope::operator const H245_LogicalChannelNumber &() const
  7063. #endif
  7064. {
  7065. #ifndef PASN_LEANANDMEAN
  7066.   PAssert(PAssertNULL(choice)->IsDescendant(H245_LogicalChannelNumber::Class()), PInvalidCast);
  7067. #endif
  7068.   return *(H245_LogicalChannelNumber *)choice;
  7069. }
  7070.  
  7071.  
  7072. BOOL H245_FlowControlIndication_scope::CreateObject()
  7073. {
  7074.   switch (tag) {
  7075.     case e_logicalChannelNumber :
  7076.       choice = new H245_LogicalChannelNumber();
  7077.       return TRUE;
  7078.     case e_resourceID :
  7079.       choice = new PASN_Integer();
  7080.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  7081.       return TRUE;
  7082.     case e_wholeMultiplex :
  7083.       choice = new PASN_Null();
  7084.       return TRUE;
  7085.   }
  7086.  
  7087.   choice = NULL;
  7088.   return FALSE;
  7089. }
  7090.  
  7091.  
  7092. PObject * H245_FlowControlIndication_scope::Clone() const
  7093. {
  7094. #ifndef PASN_LEANANDMEAN
  7095.   PAssert(IsClass(H245_FlowControlIndication_scope::Class()), PInvalidCast);
  7096. #endif
  7097.   return new H245_FlowControlIndication_scope(*this);
  7098. }
  7099.  
  7100.  
  7101. //
  7102. // FlowControlIndication_restriction
  7103. //
  7104.  
  7105. H245_FlowControlIndication_restriction::H245_FlowControlIndication_restriction(unsigned tag, PASN_Object::TagClass tagClass)
  7106.   : PASN_Choice(tag, tagClass, 2, FALSE
  7107. #ifndef PASN_NOPRINTON
  7108.       , "maximumBitRate "
  7109.         "noRestriction "
  7110. #endif
  7111.     )
  7112. {
  7113. }
  7114.  
  7115.  
  7116. BOOL H245_FlowControlIndication_restriction::CreateObject()
  7117. {
  7118.   switch (tag) {
  7119.     case e_maximumBitRate :
  7120.       choice = new PASN_Integer();
  7121.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 16777215);
  7122.       return TRUE;
  7123.     case e_noRestriction :
  7124.       choice = new PASN_Null();
  7125.       return TRUE;
  7126.   }
  7127.  
  7128.   choice = NULL;
  7129.   return FALSE;
  7130. }
  7131.  
  7132.  
  7133. PObject * H245_FlowControlIndication_restriction::Clone() const
  7134. {
  7135. #ifndef PASN_LEANANDMEAN
  7136.   PAssert(IsClass(H245_FlowControlIndication_restriction::Class()), PInvalidCast);
  7137. #endif
  7138.   return new H245_FlowControlIndication_restriction(*this);
  7139. }
  7140.  
  7141.  
  7142. //
  7143. // TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded
  7144. //
  7145.  
  7146. H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(unsigned tag, PASN_Object::TagClass tagClass)
  7147.   : PASN_Choice(tag, tagClass, 2, FALSE
  7148. #ifndef PASN_NOPRINTON
  7149.       , "highestEntryNumberProcessed "
  7150.         "noneProcessed "
  7151. #endif
  7152.     )
  7153. {
  7154. }
  7155.  
  7156.  
  7157. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7158. H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::operator H245_CapabilityTableEntryNumber &() const
  7159. #else
  7160. H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::operator H245_CapabilityTableEntryNumber &()
  7161. {
  7162. #ifndef PASN_LEANANDMEAN
  7163.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CapabilityTableEntryNumber::Class()), PInvalidCast);
  7164. #endif
  7165.   return *(H245_CapabilityTableEntryNumber *)choice;
  7166. }
  7167.  
  7168.  
  7169. H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::operator const H245_CapabilityTableEntryNumber &() const
  7170. #endif
  7171. {
  7172. #ifndef PASN_LEANANDMEAN
  7173.   PAssert(PAssertNULL(choice)->IsDescendant(H245_CapabilityTableEntryNumber::Class()), PInvalidCast);
  7174. #endif
  7175.   return *(H245_CapabilityTableEntryNumber *)choice;
  7176. }
  7177.  
  7178.  
  7179. BOOL H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::CreateObject()
  7180. {
  7181.   switch (tag) {
  7182.     case e_highestEntryNumberProcessed :
  7183.       choice = new H245_CapabilityTableEntryNumber();
  7184.       return TRUE;
  7185.     case e_noneProcessed :
  7186.       choice = new PASN_Null();
  7187.       return TRUE;
  7188.   }
  7189.  
  7190.   choice = NULL;
  7191.   return FALSE;
  7192. }
  7193.  
  7194.  
  7195. PObject * H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::Clone() const
  7196. {
  7197. #ifndef PASN_LEANANDMEAN
  7198.   PAssert(IsClass(H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded::Class()), PInvalidCast);
  7199. #endif
  7200.   return new H245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(*this);
  7201. }
  7202.  
  7203.  
  7204. //
  7205. // VCCapability_availableBitRates_type
  7206. //
  7207.  
  7208. H245_VCCapability_availableBitRates_type::H245_VCCapability_availableBitRates_type(unsigned tag, PASN_Object::TagClass tagClass)
  7209.   : PASN_Choice(tag, tagClass, 2, FALSE
  7210. #ifndef PASN_NOPRINTON
  7211.       , "singleBitRate "
  7212.         "rangeOfBitRates "
  7213. #endif
  7214.     )
  7215. {
  7216. }
  7217.  
  7218.  
  7219. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7220. H245_VCCapability_availableBitRates_type::operator H245_VCCapability_availableBitRates_type_rangeOfBitRates &() const
  7221. #else
  7222. H245_VCCapability_availableBitRates_type::operator H245_VCCapability_availableBitRates_type_rangeOfBitRates &()
  7223. {
  7224. #ifndef PASN_LEANANDMEAN
  7225.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VCCapability_availableBitRates_type_rangeOfBitRates::Class()), PInvalidCast);
  7226. #endif
  7227.   return *(H245_VCCapability_availableBitRates_type_rangeOfBitRates *)choice;
  7228. }
  7229.  
  7230.  
  7231. H245_VCCapability_availableBitRates_type::operator const H245_VCCapability_availableBitRates_type_rangeOfBitRates &() const
  7232. #endif
  7233. {
  7234. #ifndef PASN_LEANANDMEAN
  7235.   PAssert(PAssertNULL(choice)->IsDescendant(H245_VCCapability_availableBitRates_type_rangeOfBitRates::Class()), PInvalidCast);
  7236. #endif
  7237.   return *(H245_VCCapability_availableBitRates_type_rangeOfBitRates *)choice;
  7238. }
  7239.  
  7240.  
  7241. BOOL H245_VCCapability_availableBitRates_type::CreateObject()
  7242. {
  7243.   switch (tag) {
  7244.     case e_singleBitRate :
  7245.       choice = new PASN_Integer();
  7246.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  7247.       return TRUE;
  7248.     case e_rangeOfBitRates :
  7249.       choice = new H245_VCCapability_availableBitRates_type_rangeOfBitRates();
  7250.       return TRUE;
  7251.   }
  7252.  
  7253.   choice = NULL;
  7254.   return FALSE;
  7255. }
  7256.  
  7257.  
  7258. PObject * H245_VCCapability_availableBitRates_type::Clone() const
  7259. {
  7260. #ifndef PASN_LEANANDMEAN
  7261.   PAssert(IsClass(H245_VCCapability_availableBitRates_type::Class()), PInvalidCast);
  7262. #endif
  7263.   return new H245_VCCapability_availableBitRates_type(*this);
  7264. }
  7265.  
  7266.  
  7267. //
  7268. // ArrayOf_Q2931Address
  7269. //
  7270.  
  7271. H245_ArrayOf_Q2931Address::H245_ArrayOf_Q2931Address(unsigned tag, PASN_Object::TagClass tagClass)
  7272.   : PASN_Array(tag, tagClass)
  7273. {
  7274. }
  7275.  
  7276.  
  7277. PASN_Object * H245_ArrayOf_Q2931Address::CreateObject() const
  7278. {
  7279.   return new H245_Q2931Address;
  7280. }
  7281.  
  7282.  
  7283. H245_Q2931Address & H245_ArrayOf_Q2931Address::operator[](PINDEX i) const
  7284. {
  7285.   return (H245_Q2931Address &)array[i];
  7286. }
  7287.  
  7288.  
  7289. PObject * H245_ArrayOf_Q2931Address::Clone() const
  7290. {
  7291. #ifndef PASN_LEANANDMEAN
  7292.   PAssert(IsClass(H245_ArrayOf_Q2931Address::Class()), PInvalidCast);
  7293. #endif
  7294.   return new H245_ArrayOf_Q2931Address(*this);
  7295. }
  7296.  
  7297.  
  7298. //
  7299. // H223Capability_h223MultiplexTableCapability_enhanced
  7300. //
  7301.  
  7302. H245_H223Capability_h223MultiplexTableCapability_enhanced::H245_H223Capability_h223MultiplexTableCapability_enhanced(unsigned tag, PASN_Object::TagClass tagClass)
  7303.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7304. {
  7305.   m_maximumNestingDepth.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
  7306.   m_maximumElementListSize.SetConstraints(PASN_Object::FixedConstraint, 2, 255);
  7307.   m_maximumSubElementListSize.SetConstraints(PASN_Object::FixedConstraint, 2, 255);
  7308. }
  7309.  
  7310.  
  7311. #ifndef PASN_NOPRINTON
  7312. void H245_H223Capability_h223MultiplexTableCapability_enhanced::PrintOn(ostream & strm) const
  7313. {
  7314.   int indent = strm.precision() + 2;
  7315.   strm << "{\n";
  7316.   strm << setw(indent+22) << "maximumNestingDepth = " << setprecision(indent) << m_maximumNestingDepth << '\n';
  7317.   strm << setw(indent+25) << "maximumElementListSize = " << setprecision(indent) << m_maximumElementListSize << '\n';
  7318.   strm << setw(indent+28) << "maximumSubElementListSize = " << setprecision(indent) << m_maximumSubElementListSize << '\n';
  7319.   strm << setw(indent-1) << "}";
  7320. }
  7321. #endif
  7322.  
  7323.  
  7324. PObject::Comparison H245_H223Capability_h223MultiplexTableCapability_enhanced::Compare(const PObject & obj) const
  7325. {
  7326. #ifndef PASN_LEANANDMEAN
  7327.   PAssert(IsDescendant(H245_H223Capability_h223MultiplexTableCapability_enhanced::Class()), PInvalidCast);
  7328. #endif
  7329.   const H245_H223Capability_h223MultiplexTableCapability_enhanced & other = (const H245_H223Capability_h223MultiplexTableCapability_enhanced &)obj;
  7330.  
  7331.   Comparison result;
  7332.  
  7333.   if ((result = m_maximumNestingDepth.Compare(other.m_maximumNestingDepth)) != EqualTo)
  7334.     return result;
  7335.   if ((result = m_maximumElementListSize.Compare(other.m_maximumElementListSize)) != EqualTo)
  7336.     return result;
  7337.   if ((result = m_maximumSubElementListSize.Compare(other.m_maximumSubElementListSize)) != EqualTo)
  7338.     return result;
  7339.  
  7340.   return PASN_Sequence::Compare(other);
  7341. }
  7342.  
  7343.  
  7344. PINDEX H245_H223Capability_h223MultiplexTableCapability_enhanced::GetDataLength() const
  7345. {
  7346.   PINDEX length = 0;
  7347.   length += m_maximumNestingDepth.GetObjectLength();
  7348.   length += m_maximumElementListSize.GetObjectLength();
  7349.   length += m_maximumSubElementListSize.GetObjectLength();
  7350.   return length;
  7351. }
  7352.  
  7353.  
  7354. BOOL H245_H223Capability_h223MultiplexTableCapability_enhanced::Decode(PASN_Stream & strm)
  7355. {
  7356.   if (!PreambleDecode(strm))
  7357.     return FALSE;
  7358.  
  7359.   if (!m_maximumNestingDepth.Decode(strm))
  7360.     return FALSE;
  7361.   if (!m_maximumElementListSize.Decode(strm))
  7362.     return FALSE;
  7363.   if (!m_maximumSubElementListSize.Decode(strm))
  7364.     return FALSE;
  7365.  
  7366.   return UnknownExtensionsDecode(strm);
  7367. }
  7368.  
  7369.  
  7370. void H245_H223Capability_h223MultiplexTableCapability_enhanced::Encode(PASN_Stream & strm) const
  7371. {
  7372.   PreambleEncode(strm);
  7373.  
  7374.   m_maximumNestingDepth.Encode(strm);
  7375.   m_maximumElementListSize.Encode(strm);
  7376.   m_maximumSubElementListSize.Encode(strm);
  7377.  
  7378.   UnknownExtensionsEncode(strm);
  7379. }
  7380.  
  7381.  
  7382. PObject * H245_H223Capability_h223MultiplexTableCapability_enhanced::Clone() const
  7383. {
  7384. #ifndef PASN_LEANANDMEAN
  7385.   PAssert(IsClass(H245_H223Capability_h223MultiplexTableCapability_enhanced::Class()), PInvalidCast);
  7386. #endif
  7387.   return new H245_H223Capability_h223MultiplexTableCapability_enhanced(*this);
  7388. }
  7389.  
  7390.  
  7391. //
  7392. // ArrayOf_RTPH263VideoRedundancyFrameMapping
  7393. //
  7394.  
  7395. H245_ArrayOf_RTPH263VideoRedundancyFrameMapping::H245_ArrayOf_RTPH263VideoRedundancyFrameMapping(unsigned tag, PASN_Object::TagClass tagClass)
  7396.   : PASN_Array(tag, tagClass)
  7397. {
  7398. }
  7399.  
  7400.  
  7401. PASN_Object * H245_ArrayOf_RTPH263VideoRedundancyFrameMapping::CreateObject() const
  7402. {
  7403.   return new H245_RTPH263VideoRedundancyFrameMapping;
  7404. }
  7405.  
  7406.  
  7407. H245_RTPH263VideoRedundancyFrameMapping & H245_ArrayOf_RTPH263VideoRedundancyFrameMapping::operator[](PINDEX i) const
  7408. {
  7409.   return (H245_RTPH263VideoRedundancyFrameMapping &)array[i];
  7410. }
  7411.  
  7412.  
  7413. PObject * H245_ArrayOf_RTPH263VideoRedundancyFrameMapping::Clone() const
  7414. {
  7415. #ifndef PASN_LEANANDMEAN
  7416.   PAssert(IsClass(H245_ArrayOf_RTPH263VideoRedundancyFrameMapping::Class()), PInvalidCast);
  7417. #endif
  7418.   return new H245_ArrayOf_RTPH263VideoRedundancyFrameMapping(*this);
  7419. }
  7420.  
  7421.  
  7422. //
  7423. // RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters
  7424. //
  7425.  
  7426. H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters(unsigned tag, PASN_Object::TagClass tagClass)
  7427.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7428. {
  7429.   m_mpuHorizMBs.SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  7430.   m_mpuVertMBs.SetConstraints(PASN_Object::FixedConstraint, 1, 72);
  7431.   m_mpuTotalNumber.SetConstraints(PASN_Object::FixedConstraint, 1, 65536);
  7432. }
  7433.  
  7434.  
  7435. #ifndef PASN_NOPRINTON
  7436. void H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::PrintOn(ostream & strm) const
  7437. {
  7438.   int indent = strm.precision() + 2;
  7439.   strm << "{\n";
  7440.   strm << setw(indent+14) << "mpuHorizMBs = " << setprecision(indent) << m_mpuHorizMBs << '\n';
  7441.   strm << setw(indent+13) << "mpuVertMBs = " << setprecision(indent) << m_mpuVertMBs << '\n';
  7442.   strm << setw(indent+17) << "mpuTotalNumber = " << setprecision(indent) << m_mpuTotalNumber << '\n';
  7443.   strm << setw(indent-1) << "}";
  7444. }
  7445. #endif
  7446.  
  7447.  
  7448. PObject::Comparison H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::Compare(const PObject & obj) const
  7449. {
  7450. #ifndef PASN_LEANANDMEAN
  7451.   PAssert(IsDescendant(H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::Class()), PInvalidCast);
  7452. #endif
  7453.   const H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters & other = (const H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters &)obj;
  7454.  
  7455.   Comparison result;
  7456.  
  7457.   if ((result = m_mpuHorizMBs.Compare(other.m_mpuHorizMBs)) != EqualTo)
  7458.     return result;
  7459.   if ((result = m_mpuVertMBs.Compare(other.m_mpuVertMBs)) != EqualTo)
  7460.     return result;
  7461.   if ((result = m_mpuTotalNumber.Compare(other.m_mpuTotalNumber)) != EqualTo)
  7462.     return result;
  7463.  
  7464.   return PASN_Sequence::Compare(other);
  7465. }
  7466.  
  7467.  
  7468. PINDEX H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::GetDataLength() const
  7469. {
  7470.   PINDEX length = 0;
  7471.   length += m_mpuHorizMBs.GetObjectLength();
  7472.   length += m_mpuVertMBs.GetObjectLength();
  7473.   length += m_mpuTotalNumber.GetObjectLength();
  7474.   return length;
  7475. }
  7476.  
  7477.  
  7478. BOOL H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::Decode(PASN_Stream & strm)
  7479. {
  7480.   if (!PreambleDecode(strm))
  7481.     return FALSE;
  7482.  
  7483.   if (!m_mpuHorizMBs.Decode(strm))
  7484.     return FALSE;
  7485.   if (!m_mpuVertMBs.Decode(strm))
  7486.     return FALSE;
  7487.   if (!m_mpuTotalNumber.Decode(strm))
  7488.     return FALSE;
  7489.  
  7490.   return UnknownExtensionsDecode(strm);
  7491. }
  7492.  
  7493.  
  7494. void H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::Encode(PASN_Stream & strm) const
  7495. {
  7496.   PreambleEncode(strm);
  7497.  
  7498.   m_mpuHorizMBs.Encode(strm);
  7499.   m_mpuVertMBs.Encode(strm);
  7500.   m_mpuTotalNumber.Encode(strm);
  7501.  
  7502.   UnknownExtensionsEncode(strm);
  7503. }
  7504.  
  7505.  
  7506. PObject * H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::Clone() const
  7507. {
  7508. #ifndef PASN_LEANANDMEAN
  7509.   PAssert(IsClass(H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters::Class()), PInvalidCast);
  7510. #endif
  7511.   return new H245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters(*this);
  7512. }
  7513.  
  7514.  
  7515. //
  7516. // CustomPictureFormat_mPI_customPCF
  7517. //
  7518.  
  7519. H245_CustomPictureFormat_mPI_customPCF::H245_CustomPictureFormat_mPI_customPCF(unsigned tag, PASN_Object::TagClass tagClass)
  7520.   : PASN_Array(tag, tagClass)
  7521. {
  7522.   SetConstraints(PASN_Object::FixedConstraint, 1, 16);
  7523. }
  7524.  
  7525.  
  7526. PASN_Object * H245_CustomPictureFormat_mPI_customPCF::CreateObject() const
  7527. {
  7528.   return new H245_CustomPictureFormat_mPI_customPCF_subtype;
  7529. }
  7530.  
  7531.  
  7532. H245_CustomPictureFormat_mPI_customPCF_subtype & H245_CustomPictureFormat_mPI_customPCF::operator[](PINDEX i) const
  7533. {
  7534.   return (H245_CustomPictureFormat_mPI_customPCF_subtype &)array[i];
  7535. }
  7536.  
  7537.  
  7538. PObject * H245_CustomPictureFormat_mPI_customPCF::Clone() const
  7539. {
  7540. #ifndef PASN_LEANANDMEAN
  7541.   PAssert(IsClass(H245_CustomPictureFormat_mPI_customPCF::Class()), PInvalidCast);
  7542. #endif
  7543.   return new H245_CustomPictureFormat_mPI_customPCF(*this);
  7544. }
  7545.  
  7546.  
  7547. //
  7548. // CustomPictureFormat_pixelAspectInformation_pixelAspectCode
  7549. //
  7550.  
  7551. H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode::H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(unsigned tag, PASN_Object::TagClass tagClass)
  7552.   : PASN_Array(tag, tagClass)
  7553. {
  7554.   SetConstraints(PASN_Object::FixedConstraint, 1, 14);
  7555. }
  7556.  
  7557.  
  7558. PASN_Object * H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode::CreateObject() const
  7559. {
  7560.   PASN_Integer * obj = new PASN_Integer;
  7561.   obj->SetConstraints(PASN_Object::FixedConstraint, 1, 14);
  7562.   return obj;
  7563. }
  7564.  
  7565.  
  7566. PASN_Integer & H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode::operator[](PINDEX i) const
  7567. {
  7568.   return (PASN_Integer &)array[i];
  7569. }
  7570.  
  7571.  
  7572. PObject * H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode::Clone() const
  7573. {
  7574. #ifndef PASN_LEANANDMEAN
  7575.   PAssert(IsClass(H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode::Class()), PInvalidCast);
  7576. #endif
  7577.   return new H245_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(*this);
  7578. }
  7579.  
  7580.  
  7581. //
  7582. // CustomPictureFormat_pixelAspectInformation_extendedPAR
  7583. //
  7584.  
  7585. H245_CustomPictureFormat_pixelAspectInformation_extendedPAR::H245_CustomPictureFormat_pixelAspectInformation_extendedPAR(unsigned tag, PASN_Object::TagClass tagClass)
  7586.   : PASN_Array(tag, tagClass)
  7587. {
  7588.   SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  7589. }
  7590.  
  7591.  
  7592. PASN_Object * H245_CustomPictureFormat_pixelAspectInformation_extendedPAR::CreateObject() const
  7593. {
  7594.   return new H245_CustomPictureFormat_pixelAspectInformation_extendedPAR_subtype;
  7595. }
  7596.  
  7597.  
  7598. H245_CustomPictureFormat_pixelAspectInformation_extendedPAR_subtype & H245_CustomPictureFormat_pixelAspectInformation_extendedPAR::operator[](PINDEX i) const
  7599. {
  7600.   return (H245_CustomPictureFormat_pixelAspectInformation_extendedPAR_subtype &)array[i];
  7601. }
  7602.  
  7603.  
  7604. PObject * H245_CustomPictureFormat_pixelAspectInformation_extendedPAR::Clone() const
  7605. {
  7606. #ifndef PASN_LEANANDMEAN
  7607.   PAssert(IsClass(H245_CustomPictureFormat_pixelAspectInformation_extendedPAR::Class()), PInvalidCast);
  7608. #endif
  7609.   return new H245_CustomPictureFormat_pixelAspectInformation_extendedPAR(*this);
  7610. }
  7611.  
  7612.  
  7613. //
  7614. // DataApplicationCapability_application_t84
  7615. //
  7616.  
  7617. H245_DataApplicationCapability_application_t84::H245_DataApplicationCapability_application_t84(unsigned tag, PASN_Object::TagClass tagClass)
  7618.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  7619. {
  7620. }
  7621.  
  7622.  
  7623. #ifndef PASN_NOPRINTON
  7624. void H245_DataApplicationCapability_application_t84::PrintOn(ostream & strm) const
  7625. {
  7626.   int indent = strm.precision() + 2;
  7627.   strm << "{\n";
  7628.   strm << setw(indent+14) << "t84Protocol = " << setprecision(indent) << m_t84Protocol << '\n';
  7629.   strm << setw(indent+13) << "t84Profile = " << setprecision(indent) << m_t84Profile << '\n';
  7630.   strm << setw(indent-1) << "}";
  7631. }
  7632. #endif
  7633.  
  7634.  
  7635. PObject::Comparison H245_DataApplicationCapability_application_t84::Compare(const PObject & obj) const
  7636. {
  7637. #ifndef PASN_LEANANDMEAN
  7638.   PAssert(IsDescendant(H245_DataApplicationCapability_application_t84::Class()), PInvalidCast);
  7639. #endif
  7640.   const H245_DataApplicationCapability_application_t84 & other = (const H245_DataApplicationCapability_application_t84 &)obj;
  7641.  
  7642.   Comparison result;
  7643.  
  7644.   if ((result = m_t84Protocol.Compare(other.m_t84Protocol)) != EqualTo)
  7645.     return result;
  7646.   if ((result = m_t84Profile.Compare(other.m_t84Profile)) != EqualTo)
  7647.     return result;
  7648.  
  7649.   return PASN_Sequence::Compare(other);
  7650. }
  7651.  
  7652.  
  7653. PINDEX H245_DataApplicationCapability_application_t84::GetDataLength() const
  7654. {
  7655.   PINDEX length = 0;
  7656.   length += m_t84Protocol.GetObjectLength();
  7657.   length += m_t84Profile.GetObjectLength();
  7658.   return length;
  7659. }
  7660.  
  7661.  
  7662. BOOL H245_DataApplicationCapability_application_t84::Decode(PASN_Stream & strm)
  7663. {
  7664.   if (!PreambleDecode(strm))
  7665.     return FALSE;
  7666.  
  7667.   if (!m_t84Protocol.Decode(strm))
  7668.     return FALSE;
  7669.   if (!m_t84Profile.Decode(strm))
  7670.     return FALSE;
  7671.  
  7672.   return UnknownExtensionsDecode(strm);
  7673. }
  7674.  
  7675.  
  7676. void H245_DataApplicationCapability_application_t84::Encode(PASN_Stream & strm) const
  7677. {
  7678.   PreambleEncode(strm);
  7679.  
  7680.   m_t84Protocol.Encode(strm);
  7681.   m_t84Profile.Encode(strm);
  7682.  
  7683.   UnknownExtensionsEncode(strm);
  7684. }
  7685.  
  7686.  
  7687. PObject * H245_DataApplicationCapability_application_t84::Clone() const
  7688. {
  7689. #ifndef PASN_LEANANDMEAN
  7690.   PAssert(IsClass(H245_DataApplicationCapability_application_t84::Class()), PInvalidCast);
  7691. #endif
  7692.   return new H245_DataApplicationCapability_application_t84(*this);
  7693. }
  7694.  
  7695.  
  7696. //
  7697. // DataApplicationCapability_application_nlpid
  7698. //
  7699.  
  7700. H245_DataApplicationCapability_application_nlpid::H245_DataApplicationCapability_application_nlpid(unsigned tag, PASN_Object::TagClass tagClass)
  7701.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  7702. {
  7703. }
  7704.  
  7705.  
  7706. #ifndef PASN_NOPRINTON
  7707. void H245_DataApplicationCapability_application_nlpid::PrintOn(ostream & strm) const
  7708. {
  7709.   int indent = strm.precision() + 2;
  7710.   strm << "{\n";
  7711.   strm << setw(indent+16) << "nlpidProtocol = " << setprecision(indent) << m_nlpidProtocol << '\n';
  7712.   strm << setw(indent+12) << "nlpidData = " << setprecision(indent) << m_nlpidData << '\n';
  7713.   strm << setw(indent-1) << "}";
  7714. }
  7715. #endif
  7716.  
  7717.  
  7718. PObject::Comparison H245_DataApplicationCapability_application_nlpid::Compare(const PObject & obj) const
  7719. {
  7720. #ifndef PASN_LEANANDMEAN
  7721.   PAssert(IsDescendant(H245_DataApplicationCapability_application_nlpid::Class()), PInvalidCast);
  7722. #endif
  7723.   const H245_DataApplicationCapability_application_nlpid & other = (const H245_DataApplicationCapability_application_nlpid &)obj;
  7724.  
  7725.   Comparison result;
  7726.  
  7727.   if ((result = m_nlpidProtocol.Compare(other.m_nlpidProtocol)) != EqualTo)
  7728.     return result;
  7729.   if ((result = m_nlpidData.Compare(other.m_nlpidData)) != EqualTo)
  7730.     return result;
  7731.  
  7732.   return PASN_Sequence::Compare(other);
  7733. }
  7734.  
  7735.  
  7736. PINDEX H245_DataApplicationCapability_application_nlpid::GetDataLength() const
  7737. {
  7738.   PINDEX length = 0;
  7739.   length += m_nlpidProtocol.GetObjectLength();
  7740.   length += m_nlpidData.GetObjectLength();
  7741.   return length;
  7742. }
  7743.  
  7744.  
  7745. BOOL H245_DataApplicationCapability_application_nlpid::Decode(PASN_Stream & strm)
  7746. {
  7747.   if (!PreambleDecode(strm))
  7748.     return FALSE;
  7749.  
  7750.   if (!m_nlpidProtocol.Decode(strm))
  7751.     return FALSE;
  7752.   if (!m_nlpidData.Decode(strm))
  7753.     return FALSE;
  7754.  
  7755.   return UnknownExtensionsDecode(strm);
  7756. }
  7757.  
  7758.  
  7759. void H245_DataApplicationCapability_application_nlpid::Encode(PASN_Stream & strm) const
  7760. {
  7761.   PreambleEncode(strm);
  7762.  
  7763.   m_nlpidProtocol.Encode(strm);
  7764.   m_nlpidData.Encode(strm);
  7765.  
  7766.   UnknownExtensionsEncode(strm);
  7767. }
  7768.  
  7769.  
  7770. PObject * H245_DataApplicationCapability_application_nlpid::Clone() const
  7771. {
  7772. #ifndef PASN_LEANANDMEAN
  7773.   PAssert(IsClass(H245_DataApplicationCapability_application_nlpid::Class()), PInvalidCast);
  7774. #endif
  7775.   return new H245_DataApplicationCapability_application_nlpid(*this);
  7776. }
  7777.  
  7778.  
  7779. //
  7780. // OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters
  7781. //
  7782.  
  7783. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(unsigned tag, PASN_Object::TagClass tagClass)
  7784.   : PASN_Choice(tag, tagClass, 3, TRUE
  7785. #ifndef PASN_NOPRINTON
  7786.       , "h222LogicalChannelParameters "
  7787.         "h223LogicalChannelParameters "
  7788.         "v76LogicalChannelParameters "
  7789.         "h2250LogicalChannelParameters "
  7790.         "none "
  7791. #endif
  7792.     )
  7793. {
  7794. }
  7795.  
  7796.  
  7797. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7798. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_H222LogicalChannelParameters &() const
  7799. #else
  7800. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_H222LogicalChannelParameters &()
  7801. {
  7802. #ifndef PASN_LEANANDMEAN
  7803.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222LogicalChannelParameters::Class()), PInvalidCast);
  7804. #endif
  7805.   return *(H245_H222LogicalChannelParameters *)choice;
  7806. }
  7807.  
  7808.  
  7809. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator const H245_H222LogicalChannelParameters &() const
  7810. #endif
  7811. {
  7812. #ifndef PASN_LEANANDMEAN
  7813.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222LogicalChannelParameters::Class()), PInvalidCast);
  7814. #endif
  7815.   return *(H245_H222LogicalChannelParameters *)choice;
  7816. }
  7817.  
  7818.  
  7819. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7820. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_H223LogicalChannelParameters &() const
  7821. #else
  7822. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_H223LogicalChannelParameters &()
  7823. {
  7824. #ifndef PASN_LEANANDMEAN
  7825.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223LogicalChannelParameters::Class()), PInvalidCast);
  7826. #endif
  7827.   return *(H245_H223LogicalChannelParameters *)choice;
  7828. }
  7829.  
  7830.  
  7831. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator const H245_H223LogicalChannelParameters &() const
  7832. #endif
  7833. {
  7834. #ifndef PASN_LEANANDMEAN
  7835.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223LogicalChannelParameters::Class()), PInvalidCast);
  7836. #endif
  7837.   return *(H245_H223LogicalChannelParameters *)choice;
  7838. }
  7839.  
  7840.  
  7841. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7842. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_V76LogicalChannelParameters &() const
  7843. #else
  7844. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_V76LogicalChannelParameters &()
  7845. {
  7846. #ifndef PASN_LEANANDMEAN
  7847.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76LogicalChannelParameters::Class()), PInvalidCast);
  7848. #endif
  7849.   return *(H245_V76LogicalChannelParameters *)choice;
  7850. }
  7851.  
  7852.  
  7853. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator const H245_V76LogicalChannelParameters &() const
  7854. #endif
  7855. {
  7856. #ifndef PASN_LEANANDMEAN
  7857.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76LogicalChannelParameters::Class()), PInvalidCast);
  7858. #endif
  7859.   return *(H245_V76LogicalChannelParameters *)choice;
  7860. }
  7861.  
  7862.  
  7863. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7864. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_H2250LogicalChannelParameters &() const
  7865. #else
  7866. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator H245_H2250LogicalChannelParameters &()
  7867. {
  7868. #ifndef PASN_LEANANDMEAN
  7869.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelParameters::Class()), PInvalidCast);
  7870. #endif
  7871.   return *(H245_H2250LogicalChannelParameters *)choice;
  7872. }
  7873.  
  7874.  
  7875. H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::operator const H245_H2250LogicalChannelParameters &() const
  7876. #endif
  7877. {
  7878. #ifndef PASN_LEANANDMEAN
  7879.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelParameters::Class()), PInvalidCast);
  7880. #endif
  7881.   return *(H245_H2250LogicalChannelParameters *)choice;
  7882. }
  7883.  
  7884.  
  7885. BOOL H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::CreateObject()
  7886. {
  7887.   switch (tag) {
  7888.     case e_h222LogicalChannelParameters :
  7889.       choice = new H245_H222LogicalChannelParameters();
  7890.       return TRUE;
  7891.     case e_h223LogicalChannelParameters :
  7892.       choice = new H245_H223LogicalChannelParameters();
  7893.       return TRUE;
  7894.     case e_v76LogicalChannelParameters :
  7895.       choice = new H245_V76LogicalChannelParameters();
  7896.       return TRUE;
  7897.     case e_h2250LogicalChannelParameters :
  7898.       choice = new H245_H2250LogicalChannelParameters();
  7899.       return TRUE;
  7900.     case e_none :
  7901.       choice = new PASN_Null();
  7902.       return TRUE;
  7903.   }
  7904.  
  7905.   choice = NULL;
  7906.   return FALSE;
  7907. }
  7908.  
  7909.  
  7910. PObject * H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::Clone() const
  7911. {
  7912. #ifndef PASN_LEANANDMEAN
  7913.   PAssert(IsClass(H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters::Class()), PInvalidCast);
  7914. #endif
  7915.   return new H245_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(*this);
  7916. }
  7917.  
  7918.  
  7919. //
  7920. // OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
  7921. //
  7922.  
  7923. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(unsigned tag, PASN_Object::TagClass tagClass)
  7924.   : PASN_Choice(tag, tagClass, 2, TRUE
  7925. #ifndef PASN_NOPRINTON
  7926.       , "h223LogicalChannelParameters "
  7927.         "v76LogicalChannelParameters "
  7928.         "h2250LogicalChannelParameters "
  7929. #endif
  7930.     )
  7931. {
  7932. }
  7933.  
  7934.  
  7935. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7936. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator H245_H223LogicalChannelParameters &() const
  7937. #else
  7938. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator H245_H223LogicalChannelParameters &()
  7939. {
  7940. #ifndef PASN_LEANANDMEAN
  7941.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223LogicalChannelParameters::Class()), PInvalidCast);
  7942. #endif
  7943.   return *(H245_H223LogicalChannelParameters *)choice;
  7944. }
  7945.  
  7946.  
  7947. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator const H245_H223LogicalChannelParameters &() const
  7948. #endif
  7949. {
  7950. #ifndef PASN_LEANANDMEAN
  7951.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H223LogicalChannelParameters::Class()), PInvalidCast);
  7952. #endif
  7953.   return *(H245_H223LogicalChannelParameters *)choice;
  7954. }
  7955.  
  7956.  
  7957. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7958. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator H245_V76LogicalChannelParameters &() const
  7959. #else
  7960. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator H245_V76LogicalChannelParameters &()
  7961. {
  7962. #ifndef PASN_LEANANDMEAN
  7963.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76LogicalChannelParameters::Class()), PInvalidCast);
  7964. #endif
  7965.   return *(H245_V76LogicalChannelParameters *)choice;
  7966. }
  7967.  
  7968.  
  7969. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator const H245_V76LogicalChannelParameters &() const
  7970. #endif
  7971. {
  7972. #ifndef PASN_LEANANDMEAN
  7973.   PAssert(PAssertNULL(choice)->IsDescendant(H245_V76LogicalChannelParameters::Class()), PInvalidCast);
  7974. #endif
  7975.   return *(H245_V76LogicalChannelParameters *)choice;
  7976. }
  7977.  
  7978.  
  7979. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7980. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator H245_H2250LogicalChannelParameters &() const
  7981. #else
  7982. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator H245_H2250LogicalChannelParameters &()
  7983. {
  7984. #ifndef PASN_LEANANDMEAN
  7985.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelParameters::Class()), PInvalidCast);
  7986. #endif
  7987.   return *(H245_H2250LogicalChannelParameters *)choice;
  7988. }
  7989.  
  7990.  
  7991. H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::operator const H245_H2250LogicalChannelParameters &() const
  7992. #endif
  7993. {
  7994. #ifndef PASN_LEANANDMEAN
  7995.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelParameters::Class()), PInvalidCast);
  7996. #endif
  7997.   return *(H245_H2250LogicalChannelParameters *)choice;
  7998. }
  7999.  
  8000.  
  8001. BOOL H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::CreateObject()
  8002. {
  8003.   switch (tag) {
  8004.     case e_h223LogicalChannelParameters :
  8005.       choice = new H245_H223LogicalChannelParameters();
  8006.       return TRUE;
  8007.     case e_v76LogicalChannelParameters :
  8008.       choice = new H245_V76LogicalChannelParameters();
  8009.       return TRUE;
  8010.     case e_h2250LogicalChannelParameters :
  8011.       choice = new H245_H2250LogicalChannelParameters();
  8012.       return TRUE;
  8013.   }
  8014.  
  8015.   choice = NULL;
  8016.   return FALSE;
  8017. }
  8018.  
  8019.  
  8020. PObject * H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::Clone() const
  8021. {
  8022. #ifndef PASN_LEANANDMEAN
  8023.   PAssert(IsClass(H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters::Class()), PInvalidCast);
  8024. #endif
  8025.   return new H245_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(*this);
  8026. }
  8027.  
  8028.  
  8029. //
  8030. // H223LogicalChannelParameters_adaptationLayerType_al3
  8031. //
  8032.  
  8033. H245_H223LogicalChannelParameters_adaptationLayerType_al3::H245_H223LogicalChannelParameters_adaptationLayerType_al3(unsigned tag, PASN_Object::TagClass tagClass)
  8034.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  8035. {
  8036.   m_controlFieldOctets.SetConstraints(PASN_Object::FixedConstraint, 0, 2);
  8037.   m_sendBufferSize.SetConstraints(PASN_Object::FixedConstraint, 0, 16777215);
  8038. }
  8039.  
  8040.  
  8041. #ifndef PASN_NOPRINTON
  8042. void H245_H223LogicalChannelParameters_adaptationLayerType_al3::PrintOn(ostream & strm) const
  8043. {
  8044.   int indent = strm.precision() + 2;
  8045.   strm << "{\n";
  8046.   strm << setw(indent+21) << "controlFieldOctets = " << setprecision(indent) << m_controlFieldOctets << '\n';
  8047.   strm << setw(indent+17) << "sendBufferSize = " << setprecision(indent) << m_sendBufferSize << '\n';
  8048.   strm << setw(indent-1) << "}";
  8049. }
  8050. #endif
  8051.  
  8052.  
  8053. PObject::Comparison H245_H223LogicalChannelParameters_adaptationLayerType_al3::Compare(const PObject & obj) const
  8054. {
  8055. #ifndef PASN_LEANANDMEAN
  8056.   PAssert(IsDescendant(H245_H223LogicalChannelParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  8057. #endif
  8058.   const H245_H223LogicalChannelParameters_adaptationLayerType_al3 & other = (const H245_H223LogicalChannelParameters_adaptationLayerType_al3 &)obj;
  8059.  
  8060.   Comparison result;
  8061.  
  8062.   if ((result = m_controlFieldOctets.Compare(other.m_controlFieldOctets)) != EqualTo)
  8063.     return result;
  8064.   if ((result = m_sendBufferSize.Compare(other.m_sendBufferSize)) != EqualTo)
  8065.     return result;
  8066.  
  8067.   return PASN_Sequence::Compare(other);
  8068. }
  8069.  
  8070.  
  8071. PINDEX H245_H223LogicalChannelParameters_adaptationLayerType_al3::GetDataLength() const
  8072. {
  8073.   PINDEX length = 0;
  8074.   length += m_controlFieldOctets.GetObjectLength();
  8075.   length += m_sendBufferSize.GetObjectLength();
  8076.   return length;
  8077. }
  8078.  
  8079.  
  8080. BOOL H245_H223LogicalChannelParameters_adaptationLayerType_al3::Decode(PASN_Stream & strm)
  8081. {
  8082.   if (!PreambleDecode(strm))
  8083.     return FALSE;
  8084.  
  8085.   if (!m_controlFieldOctets.Decode(strm))
  8086.     return FALSE;
  8087.   if (!m_sendBufferSize.Decode(strm))
  8088.     return FALSE;
  8089.  
  8090.   return UnknownExtensionsDecode(strm);
  8091. }
  8092.  
  8093.  
  8094. void H245_H223LogicalChannelParameters_adaptationLayerType_al3::Encode(PASN_Stream & strm) const
  8095. {
  8096.   PreambleEncode(strm);
  8097.  
  8098.   m_controlFieldOctets.Encode(strm);
  8099.   m_sendBufferSize.Encode(strm);
  8100.  
  8101.   UnknownExtensionsEncode(strm);
  8102. }
  8103.  
  8104.  
  8105. PObject * H245_H223LogicalChannelParameters_adaptationLayerType_al3::Clone() const
  8106. {
  8107. #ifndef PASN_LEANANDMEAN
  8108.   PAssert(IsClass(H245_H223LogicalChannelParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  8109. #endif
  8110.   return new H245_H223LogicalChannelParameters_adaptationLayerType_al3(*this);
  8111. }
  8112.  
  8113.  
  8114. //
  8115. // UnicastAddress_iPSourceRouteAddress_routing
  8116. //
  8117.  
  8118. H245_UnicastAddress_iPSourceRouteAddress_routing::H245_UnicastAddress_iPSourceRouteAddress_routing(unsigned tag, PASN_Object::TagClass tagClass)
  8119.   : PASN_Choice(tag, tagClass, 2, FALSE
  8120. #ifndef PASN_NOPRINTON
  8121.       , "strict "
  8122.         "loose "
  8123. #endif
  8124.     )
  8125. {
  8126. }
  8127.  
  8128.  
  8129. BOOL H245_UnicastAddress_iPSourceRouteAddress_routing::CreateObject()
  8130. {
  8131.   choice = (tag <= e_loose) ? new PASN_Null() : NULL;
  8132.   return choice != NULL;
  8133. }
  8134.  
  8135.  
  8136. PObject * H245_UnicastAddress_iPSourceRouteAddress_routing::Clone() const
  8137. {
  8138. #ifndef PASN_LEANANDMEAN
  8139.   PAssert(IsClass(H245_UnicastAddress_iPSourceRouteAddress_routing::Class()), PInvalidCast);
  8140. #endif
  8141.   return new H245_UnicastAddress_iPSourceRouteAddress_routing(*this);
  8142. }
  8143.  
  8144.  
  8145. //
  8146. // UnicastAddress_iPSourceRouteAddress_route
  8147. //
  8148.  
  8149. H245_UnicastAddress_iPSourceRouteAddress_route::H245_UnicastAddress_iPSourceRouteAddress_route(unsigned tag, PASN_Object::TagClass tagClass)
  8150.   : PASN_Array(tag, tagClass)
  8151. {
  8152. }
  8153.  
  8154.  
  8155. PASN_Object * H245_UnicastAddress_iPSourceRouteAddress_route::CreateObject() const
  8156. {
  8157.   PASN_OctetString * obj = new PASN_OctetString;
  8158.   obj->SetConstraints(PASN_Object::FixedConstraint, 4);
  8159.   return obj;
  8160. }
  8161.  
  8162.  
  8163. PASN_OctetString & H245_UnicastAddress_iPSourceRouteAddress_route::operator[](PINDEX i) const
  8164. {
  8165.   return (PASN_OctetString &)array[i];
  8166. }
  8167.  
  8168.  
  8169. PObject * H245_UnicastAddress_iPSourceRouteAddress_route::Clone() const
  8170. {
  8171. #ifndef PASN_LEANANDMEAN
  8172.   PAssert(IsClass(H245_UnicastAddress_iPSourceRouteAddress_route::Class()), PInvalidCast);
  8173. #endif
  8174.   return new H245_UnicastAddress_iPSourceRouteAddress_route(*this);
  8175. }
  8176.  
  8177.  
  8178. //
  8179. // OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
  8180. //
  8181.  
  8182. H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(unsigned tag, PASN_Object::TagClass tagClass)
  8183.   : PASN_Choice(tag, tagClass, 1, TRUE
  8184. #ifndef PASN_NOPRINTON
  8185.       , "h222LogicalChannelParameters "
  8186.         "h2250LogicalChannelParameters "
  8187. #endif
  8188.     )
  8189. {
  8190. }
  8191.  
  8192.  
  8193. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8194. H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::operator H245_H222LogicalChannelParameters &() const
  8195. #else
  8196. H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::operator H245_H222LogicalChannelParameters &()
  8197. {
  8198. #ifndef PASN_LEANANDMEAN
  8199.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222LogicalChannelParameters::Class()), PInvalidCast);
  8200. #endif
  8201.   return *(H245_H222LogicalChannelParameters *)choice;
  8202. }
  8203.  
  8204.  
  8205. H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::operator const H245_H222LogicalChannelParameters &() const
  8206. #endif
  8207. {
  8208. #ifndef PASN_LEANANDMEAN
  8209.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H222LogicalChannelParameters::Class()), PInvalidCast);
  8210. #endif
  8211.   return *(H245_H222LogicalChannelParameters *)choice;
  8212. }
  8213.  
  8214.  
  8215. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8216. H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::operator H245_H2250LogicalChannelParameters &() const
  8217. #else
  8218. H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::operator H245_H2250LogicalChannelParameters &()
  8219. {
  8220. #ifndef PASN_LEANANDMEAN
  8221.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelParameters::Class()), PInvalidCast);
  8222. #endif
  8223.   return *(H245_H2250LogicalChannelParameters *)choice;
  8224. }
  8225.  
  8226.  
  8227. H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::operator const H245_H2250LogicalChannelParameters &() const
  8228. #endif
  8229. {
  8230. #ifndef PASN_LEANANDMEAN
  8231.   PAssert(PAssertNULL(choice)->IsDescendant(H245_H2250LogicalChannelParameters::Class()), PInvalidCast);
  8232. #endif
  8233.   return *(H245_H2250LogicalChannelParameters *)choice;
  8234. }
  8235.  
  8236.  
  8237. BOOL H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::CreateObject()
  8238. {
  8239.   switch (tag) {
  8240.     case e_h222LogicalChannelParameters :
  8241.       choice = new H245_H222LogicalChannelParameters();
  8242.       return TRUE;
  8243.     case e_h2250LogicalChannelParameters :
  8244.       choice = new H245_H2250LogicalChannelParameters();
  8245.       return TRUE;
  8246.   }
  8247.  
  8248.   choice = NULL;
  8249.   return FALSE;
  8250. }
  8251.  
  8252.  
  8253. PObject * H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::Clone() const
  8254. {
  8255. #ifndef PASN_LEANANDMEAN
  8256.   PAssert(IsClass(H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters::Class()), PInvalidCast);
  8257. #endif
  8258.   return new H245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(*this);
  8259. }
  8260.  
  8261.  
  8262. //
  8263. // H223ModeParameters_adaptationLayerType_al3
  8264. //
  8265.  
  8266. H245_H223ModeParameters_adaptationLayerType_al3::H245_H223ModeParameters_adaptationLayerType_al3(unsigned tag, PASN_Object::TagClass tagClass)
  8267.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  8268. {
  8269.   m_controlFieldOctets.SetConstraints(PASN_Object::FixedConstraint, 0, 2);
  8270.   m_sendBufferSize.SetConstraints(PASN_Object::FixedConstraint, 0, 16777215);
  8271. }
  8272.  
  8273.  
  8274. #ifndef PASN_NOPRINTON
  8275. void H245_H223ModeParameters_adaptationLayerType_al3::PrintOn(ostream & strm) const
  8276. {
  8277.   int indent = strm.precision() + 2;
  8278.   strm << "{\n";
  8279.   strm << setw(indent+21) << "controlFieldOctets = " << setprecision(indent) << m_controlFieldOctets << '\n';
  8280.   strm << setw(indent+17) << "sendBufferSize = " << setprecision(indent) << m_sendBufferSize << '\n';
  8281.   strm << setw(indent-1) << "}";
  8282. }
  8283. #endif
  8284.  
  8285.  
  8286. PObject::Comparison H245_H223ModeParameters_adaptationLayerType_al3::Compare(const PObject & obj) const
  8287. {
  8288. #ifndef PASN_LEANANDMEAN
  8289.   PAssert(IsDescendant(H245_H223ModeParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  8290. #endif
  8291.   const H245_H223ModeParameters_adaptationLayerType_al3 & other = (const H245_H223ModeParameters_adaptationLayerType_al3 &)obj;
  8292.  
  8293.   Comparison result;
  8294.  
  8295.   if ((result = m_controlFieldOctets.Compare(other.m_controlFieldOctets)) != EqualTo)
  8296.     return result;
  8297.   if ((result = m_sendBufferSize.Compare(other.m_sendBufferSize)) != EqualTo)
  8298.     return result;
  8299.  
  8300.   return PASN_Sequence::Compare(other);
  8301. }
  8302.  
  8303.  
  8304. PINDEX H245_H223ModeParameters_adaptationLayerType_al3::GetDataLength() const
  8305. {
  8306.   PINDEX length = 0;
  8307.   length += m_controlFieldOctets.GetObjectLength();
  8308.   length += m_sendBufferSize.GetObjectLength();
  8309.   return length;
  8310. }
  8311.  
  8312.  
  8313. BOOL H245_H223ModeParameters_adaptationLayerType_al3::Decode(PASN_Stream & strm)
  8314. {
  8315.   if (!PreambleDecode(strm))
  8316.     return FALSE;
  8317.  
  8318.   if (!m_controlFieldOctets.Decode(strm))
  8319.     return FALSE;
  8320.   if (!m_sendBufferSize.Decode(strm))
  8321.     return FALSE;
  8322.  
  8323.   return UnknownExtensionsDecode(strm);
  8324. }
  8325.  
  8326.  
  8327. void H245_H223ModeParameters_adaptationLayerType_al3::Encode(PASN_Stream & strm) const
  8328. {
  8329.   PreambleEncode(strm);
  8330.  
  8331.   m_controlFieldOctets.Encode(strm);
  8332.   m_sendBufferSize.Encode(strm);
  8333.  
  8334.   UnknownExtensionsEncode(strm);
  8335. }
  8336.  
  8337.  
  8338. PObject * H245_H223ModeParameters_adaptationLayerType_al3::Clone() const
  8339. {
  8340. #ifndef PASN_LEANANDMEAN
  8341.   PAssert(IsClass(H245_H223ModeParameters_adaptationLayerType_al3::Class()), PInvalidCast);
  8342. #endif
  8343.   return new H245_H223ModeParameters_adaptationLayerType_al3(*this);
  8344. }
  8345.  
  8346.  
  8347. //
  8348. // DataMode_application_nlpid
  8349. //
  8350.  
  8351. H245_DataMode_application_nlpid::H245_DataMode_application_nlpid(unsigned tag, PASN_Object::TagClass tagClass)
  8352.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  8353. {
  8354. }
  8355.  
  8356.  
  8357. #ifndef PASN_NOPRINTON
  8358. void H245_DataMode_application_nlpid::PrintOn(ostream & strm) const
  8359. {
  8360.   int indent = strm.precision() + 2;
  8361.   strm << "{\n";
  8362.   strm << setw(indent+16) << "nlpidProtocol = " << setprecision(indent) << m_nlpidProtocol << '\n';
  8363.   strm << setw(indent+12) << "nlpidData = " << setprecision(indent) << m_nlpidData << '\n';
  8364.   strm << setw(indent-1) << "}";
  8365. }
  8366. #endif
  8367.  
  8368.  
  8369. PObject::Comparison H245_DataMode_application_nlpid::Compare(const PObject & obj) const
  8370. {
  8371. #ifndef PASN_LEANANDMEAN
  8372.   PAssert(IsDescendant(H245_DataMode_application_nlpid::Class()), PInvalidCast);
  8373. #endif
  8374.   const H245_DataMode_application_nlpid & other = (const H245_DataMode_application_nlpid &)obj;
  8375.  
  8376.   Comparison result;
  8377.  
  8378.   if ((result = m_nlpidProtocol.Compare(other.m_nlpidProtocol)) != EqualTo)
  8379.     return result;
  8380.   if ((result = m_nlpidData.Compare(other.m_nlpidData)) != EqualTo)
  8381.     return result;
  8382.  
  8383.   return PASN_Sequence::Compare(other);
  8384. }
  8385.  
  8386.  
  8387. PINDEX H245_DataMode_application_nlpid::GetDataLength() const
  8388. {
  8389.   PINDEX length = 0;
  8390.   length += m_nlpidProtocol.GetObjectLength();
  8391.   length += m_nlpidData.GetObjectLength();
  8392.   return length;
  8393. }
  8394.  
  8395.  
  8396. BOOL H245_DataMode_application_nlpid::Decode(PASN_Stream & strm)
  8397. {
  8398.   if (!PreambleDecode(strm))
  8399.     return FALSE;
  8400.  
  8401.   if (!m_nlpidProtocol.Decode(strm))
  8402.     return FALSE;
  8403.   if (!m_nlpidData.Decode(strm))
  8404.     return FALSE;
  8405.  
  8406.   return UnknownExtensionsDecode(strm);
  8407. }
  8408.  
  8409.  
  8410. void H245_DataMode_application_nlpid::Encode(PASN_Stream & strm) const
  8411. {
  8412.   PreambleEncode(strm);
  8413.  
  8414.   m_nlpidProtocol.Encode(strm);
  8415.   m_nlpidData.Encode(strm);
  8416.  
  8417.   UnknownExtensionsEncode(strm);
  8418. }
  8419.  
  8420.  
  8421. PObject * H245_DataMode_application_nlpid::Clone() const
  8422. {
  8423. #ifndef PASN_LEANANDMEAN
  8424.   PAssert(IsClass(H245_DataMode_application_nlpid::Class()), PInvalidCast);
  8425. #endif
  8426.   return new H245_DataMode_application_nlpid(*this);
  8427. }
  8428.  
  8429.  
  8430. //
  8431. // MultilinkRequest_maximumHeaderInterval_requestType
  8432. //
  8433.  
  8434. H245_MultilinkRequest_maximumHeaderInterval_requestType::H245_MultilinkRequest_maximumHeaderInterval_requestType(unsigned tag, PASN_Object::TagClass tagClass)
  8435.   : PASN_Choice(tag, tagClass, 2, TRUE
  8436. #ifndef PASN_NOPRINTON
  8437.       , "currentIntervalInformation "
  8438.         "requestedInterval "
  8439. #endif
  8440.     )
  8441. {
  8442. }
  8443.  
  8444.  
  8445. BOOL H245_MultilinkRequest_maximumHeaderInterval_requestType::CreateObject()
  8446. {
  8447.   switch (tag) {
  8448.     case e_currentIntervalInformation :
  8449.       choice = new PASN_Null();
  8450.       return TRUE;
  8451.     case e_requestedInterval :
  8452.       choice = new PASN_Integer();
  8453.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  8454.       return TRUE;
  8455.   }
  8456.  
  8457.   choice = NULL;
  8458.   return FALSE;
  8459. }
  8460.  
  8461.  
  8462. PObject * H245_MultilinkRequest_maximumHeaderInterval_requestType::Clone() const
  8463. {
  8464. #ifndef PASN_LEANANDMEAN
  8465.   PAssert(IsClass(H245_MultilinkRequest_maximumHeaderInterval_requestType::Class()), PInvalidCast);
  8466. #endif
  8467.   return new H245_MultilinkRequest_maximumHeaderInterval_requestType(*this);
  8468. }
  8469.  
  8470.  
  8471. //
  8472. // MultilinkResponse_addConnection_responseCode
  8473. //
  8474.  
  8475. H245_MultilinkResponse_addConnection_responseCode::H245_MultilinkResponse_addConnection_responseCode(unsigned tag, PASN_Object::TagClass tagClass)
  8476.   : PASN_Choice(tag, tagClass, 2, TRUE
  8477. #ifndef PASN_NOPRINTON
  8478.       , "accepted "
  8479.         "rejected "
  8480. #endif
  8481.     )
  8482. {
  8483. }
  8484.  
  8485.  
  8486. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  8487. H245_MultilinkResponse_addConnection_responseCode::operator H245_MultilinkResponse_addConnection_responseCode_rejected &() const
  8488. #else
  8489. H245_MultilinkResponse_addConnection_responseCode::operator H245_MultilinkResponse_addConnection_responseCode_rejected &()
  8490. {
  8491. #ifndef PASN_LEANANDMEAN
  8492.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_addConnection_responseCode_rejected::Class()), PInvalidCast);
  8493. #endif
  8494.   return *(H245_MultilinkResponse_addConnection_responseCode_rejected *)choice;
  8495. }
  8496.  
  8497.  
  8498. H245_MultilinkResponse_addConnection_responseCode::operator const H245_MultilinkResponse_addConnection_responseCode_rejected &() const
  8499. #endif
  8500. {
  8501. #ifndef PASN_LEANANDMEAN
  8502.   PAssert(PAssertNULL(choice)->IsDescendant(H245_MultilinkResponse_addConnection_responseCode_rejected::Class()), PInvalidCast);
  8503. #endif
  8504.   return *(H245_MultilinkResponse_addConnection_responseCode_rejected *)choice;
  8505. }
  8506.  
  8507.  
  8508. BOOL H245_MultilinkResponse_addConnection_responseCode::CreateObject()
  8509. {
  8510.   switch (tag) {
  8511.     case e_accepted :
  8512.       choice = new PASN_Null();
  8513.       return TRUE;
  8514.     case e_rejected :
  8515.       choice = new H245_MultilinkResponse_addConnection_responseCode_rejected();
  8516.       return TRUE;
  8517.   }
  8518.  
  8519.   choice = NULL;
  8520.   return FALSE;
  8521. }
  8522.  
  8523.  
  8524. PObject * H245_MultilinkResponse_addConnection_responseCode::Clone() const
  8525. {
  8526. #ifndef PASN_LEANANDMEAN
  8527.   PAssert(IsClass(H245_MultilinkResponse_addConnection_responseCode::Class()), PInvalidCast);
  8528. #endif
  8529.   return new H245_MultilinkResponse_addConnection_responseCode(*this);
  8530. }
  8531.  
  8532.  
  8533. //
  8534. // ArrayOf_CapabilityDescriptorNumber
  8535. //
  8536.  
  8537. H245_ArrayOf_CapabilityDescriptorNumber::H245_ArrayOf_CapabilityDescriptorNumber(unsigned tag, PASN_Object::TagClass tagClass)
  8538.   : PASN_Array(tag, tagClass)
  8539. {
  8540. }
  8541.  
  8542.  
  8543. PASN_Object * H245_ArrayOf_CapabilityDescriptorNumber::CreateObject() const
  8544. {
  8545.   return new H245_CapabilityDescriptorNumber;
  8546. }
  8547.  
  8548.  
  8549. H245_CapabilityDescriptorNumber & H245_ArrayOf_CapabilityDescriptorNumber::operator[](PINDEX i) const
  8550. {
  8551.   return (H245_CapabilityDescriptorNumber &)array[i];
  8552. }
  8553.  
  8554.  
  8555. PObject * H245_ArrayOf_CapabilityDescriptorNumber::Clone() const
  8556. {
  8557. #ifndef PASN_LEANANDMEAN
  8558.   PAssert(IsClass(H245_ArrayOf_CapabilityDescriptorNumber::Class()), PInvalidCast);
  8559. #endif
  8560.   return new H245_ArrayOf_CapabilityDescriptorNumber(*this);
  8561. }
  8562.  
  8563.  
  8564. //
  8565. // MiscellaneousCommand_type_videoFastUpdateGOB
  8566. //
  8567.  
  8568. H245_MiscellaneousCommand_type_videoFastUpdateGOB::H245_MiscellaneousCommand_type_videoFastUpdateGOB(unsigned tag, PASN_Object::TagClass tagClass)
  8569.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  8570. {
  8571.   m_firstGOB.SetConstraints(PASN_Object::FixedConstraint, 0, 17);
  8572.   m_numberOfGOBs.SetConstraints(PASN_Object::FixedConstraint, 1, 18);
  8573. }
  8574.  
  8575.  
  8576. #ifndef PASN_NOPRINTON
  8577. void H245_MiscellaneousCommand_type_videoFastUpdateGOB::PrintOn(ostream & strm) const
  8578. {
  8579.   int indent = strm.precision() + 2;
  8580.   strm << "{\n";
  8581.   strm << setw(indent+11) << "firstGOB = " << setprecision(indent) << m_firstGOB << '\n';
  8582.   strm << setw(indent+15) << "numberOfGOBs = " << setprecision(indent) << m_numberOfGOBs << '\n';
  8583.   strm << setw(indent-1) << "}";
  8584. }
  8585. #endif
  8586.  
  8587.  
  8588. PObject::Comparison H245_MiscellaneousCommand_type_videoFastUpdateGOB::Compare(const PObject & obj) const
  8589. {
  8590. #ifndef PASN_LEANANDMEAN
  8591.   PAssert(IsDescendant(H245_MiscellaneousCommand_type_videoFastUpdateGOB::Class()), PInvalidCast);
  8592. #endif
  8593.   const H245_MiscellaneousCommand_type_videoFastUpdateGOB & other = (const H245_MiscellaneousCommand_type_videoFastUpdateGOB &)obj;
  8594.  
  8595.   Comparison result;
  8596.  
  8597.   if ((result = m_firstGOB.Compare(other.m_firstGOB)) != EqualTo)
  8598.     return result;
  8599.   if ((result = m_numberOfGOBs.Compare(other.m_numberOfGOBs)) != EqualTo)
  8600.     return result;
  8601.  
  8602.   return PASN_Sequence::Compare(other);
  8603. }
  8604.  
  8605.  
  8606. PINDEX H245_MiscellaneousCommand_type_videoFastUpdateGOB::GetDataLength() const
  8607. {
  8608.   PINDEX length = 0;
  8609.   length += m_firstGOB.GetObjectLength();
  8610.   length += m_numberOfGOBs.GetObjectLength();
  8611.   return length;
  8612. }
  8613.  
  8614.  
  8615. BOOL H245_MiscellaneousCommand_type_videoFastUpdateGOB::Decode(PASN_Stream & strm)
  8616. {
  8617.   if (!PreambleDecode(strm))
  8618.     return FALSE;
  8619.  
  8620.   if (!m_firstGOB.Decode(strm))
  8621.     return FALSE;
  8622.   if (!m_numberOfGOBs.Decode(strm))
  8623.     return FALSE;
  8624.  
  8625.   return UnknownExtensionsDecode(strm);
  8626. }
  8627.  
  8628.  
  8629. void H245_MiscellaneousCommand_type_videoFastUpdateGOB::Encode(PASN_Stream & strm) const
  8630. {
  8631.   PreambleEncode(strm);
  8632.  
  8633.   m_firstGOB.Encode(strm);
  8634.   m_numberOfGOBs.Encode(strm);
  8635.  
  8636.   UnknownExtensionsEncode(strm);
  8637. }
  8638.  
  8639.  
  8640. PObject * H245_MiscellaneousCommand_type_videoFastUpdateGOB::Clone() const
  8641. {
  8642. #ifndef PASN_LEANANDMEAN
  8643.   PAssert(IsClass(H245_MiscellaneousCommand_type_videoFastUpdateGOB::Class()), PInvalidCast);
  8644. #endif
  8645.   return new H245_MiscellaneousCommand_type_videoFastUpdateGOB(*this);
  8646. }
  8647.  
  8648.  
  8649. //
  8650. // MiscellaneousCommand_type_videoFastUpdateMB
  8651. //
  8652.  
  8653. H245_MiscellaneousCommand_type_videoFastUpdateMB::H245_MiscellaneousCommand_type_videoFastUpdateMB(unsigned tag, PASN_Object::TagClass tagClass)
  8654.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  8655. {
  8656.   m_firstGOB.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  8657.   m_firstMB.SetConstraints(PASN_Object::FixedConstraint, 1, 8192);
  8658.   m_numberOfMBs.SetConstraints(PASN_Object::FixedConstraint, 1, 8192);
  8659. }
  8660.  
  8661.  
  8662. #ifndef PASN_NOPRINTON
  8663. void H245_MiscellaneousCommand_type_videoFastUpdateMB::PrintOn(ostream & strm) const
  8664. {
  8665.   int indent = strm.precision() + 2;
  8666.   strm << "{\n";
  8667.   if (HasOptionalField(e_firstGOB))
  8668.     strm << setw(indent+11) << "firstGOB = " << setprecision(indent) << m_firstGOB << '\n';
  8669.   if (HasOptionalField(e_firstMB))
  8670.     strm << setw(indent+10) << "firstMB = " << setprecision(indent) << m_firstMB << '\n';
  8671.   strm << setw(indent+14) << "numberOfMBs = " << setprecision(indent) << m_numberOfMBs << '\n';
  8672.   strm << setw(indent-1) << "}";
  8673. }
  8674. #endif
  8675.  
  8676.  
  8677. PObject::Comparison H245_MiscellaneousCommand_type_videoFastUpdateMB::Compare(const PObject & obj) const
  8678. {
  8679. #ifndef PASN_LEANANDMEAN
  8680.   PAssert(IsDescendant(H245_MiscellaneousCommand_type_videoFastUpdateMB::Class()), PInvalidCast);
  8681. #endif
  8682.   const H245_MiscellaneousCommand_type_videoFastUpdateMB & other = (const H245_MiscellaneousCommand_type_videoFastUpdateMB &)obj;
  8683.  
  8684.   Comparison result;
  8685.  
  8686.   if ((result = m_firstGOB.Compare(other.m_firstGOB)) != EqualTo)
  8687.     return result;
  8688.   if ((result = m_firstMB.Compare(other.m_firstMB)) != EqualTo)
  8689.     return result;
  8690.   if ((result = m_numberOfMBs.Compare(other.m_numberOfMBs)) != EqualTo)
  8691.     return result;
  8692.  
  8693.   return PASN_Sequence::Compare(other);
  8694. }
  8695.  
  8696.  
  8697. PINDEX H245_MiscellaneousCommand_type_videoFastUpdateMB::GetDataLength() const
  8698. {
  8699.   PINDEX length = 0;
  8700.   if (HasOptionalField(e_firstGOB))
  8701.     length += m_firstGOB.GetObjectLength();
  8702.   if (HasOptionalField(e_firstMB))
  8703.     length += m_firstMB.GetObjectLength();
  8704.   length += m_numberOfMBs.GetObjectLength();
  8705.   return length;
  8706. }
  8707.  
  8708.  
  8709. BOOL H245_MiscellaneousCommand_type_videoFastUpdateMB::Decode(PASN_Stream & strm)
  8710. {
  8711.   if (!PreambleDecode(strm))
  8712.     return FALSE;
  8713.  
  8714.   if (HasOptionalField(e_firstGOB) && !m_firstGOB.Decode(strm))
  8715.     return FALSE;
  8716.   if (HasOptionalField(e_firstMB) && !m_firstMB.Decode(strm))
  8717.     return FALSE;
  8718.   if (!m_numberOfMBs.Decode(strm))
  8719.     return FALSE;
  8720.  
  8721.   return UnknownExtensionsDecode(strm);
  8722. }
  8723.  
  8724.  
  8725. void H245_MiscellaneousCommand_type_videoFastUpdateMB::Encode(PASN_Stream & strm) const
  8726. {
  8727.   PreambleEncode(strm);
  8728.  
  8729.   if (HasOptionalField(e_firstGOB))
  8730.     m_firstGOB.Encode(strm);
  8731.   if (HasOptionalField(e_firstMB))
  8732.     m_firstMB.Encode(strm);
  8733.   m_numberOfMBs.Encode(strm);
  8734.  
  8735.   UnknownExtensionsEncode(strm);
  8736. }
  8737.  
  8738.  
  8739. PObject * H245_MiscellaneousCommand_type_videoFastUpdateMB::Clone() const
  8740. {
  8741. #ifndef PASN_LEANANDMEAN
  8742.   PAssert(IsClass(H245_MiscellaneousCommand_type_videoFastUpdateMB::Class()), PInvalidCast);
  8743. #endif
  8744.   return new H245_MiscellaneousCommand_type_videoFastUpdateMB(*this);
  8745. }
  8746.  
  8747.  
  8748. //
  8749. // MiscellaneousCommand_type_videoBadMBs
  8750. //
  8751.  
  8752. H245_MiscellaneousCommand_type_videoBadMBs::H245_MiscellaneousCommand_type_videoBadMBs(unsigned tag, PASN_Object::TagClass tagClass)
  8753.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8754. {
  8755.   m_firstMB.SetConstraints(PASN_Object::FixedConstraint, 1, 9216);
  8756.   m_numberOfMBs.SetConstraints(PASN_Object::FixedConstraint, 1, 9216);
  8757.   m_temporalReference.SetConstraints(PASN_Object::FixedConstraint, 0, 1023);
  8758. }
  8759.  
  8760.  
  8761. #ifndef PASN_NOPRINTON
  8762. void H245_MiscellaneousCommand_type_videoBadMBs::PrintOn(ostream & strm) const
  8763. {
  8764.   int indent = strm.precision() + 2;
  8765.   strm << "{\n";
  8766.   strm << setw(indent+10) << "firstMB = " << setprecision(indent) << m_firstMB << '\n';
  8767.   strm << setw(indent+14) << "numberOfMBs = " << setprecision(indent) << m_numberOfMBs << '\n';
  8768.   strm << setw(indent+20) << "temporalReference = " << setprecision(indent) << m_temporalReference << '\n';
  8769.   strm << setw(indent-1) << "}";
  8770. }
  8771. #endif
  8772.  
  8773.  
  8774. PObject::Comparison H245_MiscellaneousCommand_type_videoBadMBs::Compare(const PObject & obj) const
  8775. {
  8776. #ifndef PASN_LEANANDMEAN
  8777.   PAssert(IsDescendant(H245_MiscellaneousCommand_type_videoBadMBs::Class()), PInvalidCast);
  8778. #endif
  8779.   const H245_MiscellaneousCommand_type_videoBadMBs & other = (const H245_MiscellaneousCommand_type_videoBadMBs &)obj;
  8780.  
  8781.   Comparison result;
  8782.  
  8783.   if ((result = m_firstMB.Compare(other.m_firstMB)) != EqualTo)
  8784.     return result;
  8785.   if ((result = m_numberOfMBs.Compare(other.m_numberOfMBs)) != EqualTo)
  8786.     return result;
  8787.   if ((result = m_temporalReference.Compare(other.m_temporalReference)) != EqualTo)
  8788.     return result;
  8789.  
  8790.   return PASN_Sequence::Compare(other);
  8791. }
  8792.  
  8793.  
  8794. PINDEX H245_MiscellaneousCommand_type_videoBadMBs::GetDataLength() const
  8795. {
  8796.   PINDEX length = 0;
  8797.   length += m_firstMB.GetObjectLength();
  8798.   length += m_numberOfMBs.GetObjectLength();
  8799.   length += m_temporalReference.GetObjectLength();
  8800.   return length;
  8801. }
  8802.  
  8803.  
  8804. BOOL H245_MiscellaneousCommand_type_videoBadMBs::Decode(PASN_Stream & strm)
  8805. {
  8806.   if (!PreambleDecode(strm))
  8807.     return FALSE;
  8808.  
  8809.   if (!m_firstMB.Decode(strm))
  8810.     return FALSE;
  8811.   if (!m_numberOfMBs.Decode(strm))
  8812.     return FALSE;
  8813.   if (!m_temporalReference.Decode(strm))
  8814.     return FALSE;
  8815.  
  8816.   return UnknownExtensionsDecode(strm);
  8817. }
  8818.  
  8819.  
  8820. void H245_MiscellaneousCommand_type_videoBadMBs::Encode(PASN_Stream & strm) const
  8821. {
  8822.   PreambleEncode(strm);
  8823.  
  8824.   m_firstMB.Encode(strm);
  8825.   m_numberOfMBs.Encode(strm);
  8826.   m_temporalReference.Encode(strm);
  8827.  
  8828.   UnknownExtensionsEncode(strm);
  8829. }
  8830.  
  8831.  
  8832. PObject * H245_MiscellaneousCommand_type_videoBadMBs::Clone() const
  8833. {
  8834. #ifndef PASN_LEANANDMEAN
  8835.   PAssert(IsClass(H245_MiscellaneousCommand_type_videoBadMBs::Class()), PInvalidCast);
  8836. #endif
  8837.   return new H245_MiscellaneousCommand_type_videoBadMBs(*this);
  8838. }
  8839.  
  8840.  
  8841. //
  8842. // ArrayOf_PictureReference
  8843. //
  8844.  
  8845. H245_ArrayOf_PictureReference::H245_ArrayOf_PictureReference(unsigned tag, PASN_Object::TagClass tagClass)
  8846.   : PASN_Array(tag, tagClass)
  8847. {
  8848. }
  8849.  
  8850.  
  8851. PASN_Object * H245_ArrayOf_PictureReference::CreateObject() const
  8852. {
  8853.   return new H245_PictureReference;
  8854. }
  8855.  
  8856.  
  8857. H245_PictureReference & H245_ArrayOf_PictureReference::operator[](PINDEX i) const
  8858. {
  8859.   return (H245_PictureReference &)array[i];
  8860. }
  8861.  
  8862.  
  8863. PObject * H245_ArrayOf_PictureReference::Clone() const
  8864. {
  8865. #ifndef PASN_LEANANDMEAN
  8866.   PAssert(IsClass(H245_ArrayOf_PictureReference::Class()), PInvalidCast);
  8867. #endif
  8868.   return new H245_ArrayOf_PictureReference(*this);
  8869. }
  8870.  
  8871.  
  8872. //
  8873. // MiscellaneousCommand_type_lostPartialPicture
  8874. //
  8875.  
  8876. H245_MiscellaneousCommand_type_lostPartialPicture::H245_MiscellaneousCommand_type_lostPartialPicture(unsigned tag, PASN_Object::TagClass tagClass)
  8877.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8878. {
  8879.   m_firstMB.SetConstraints(PASN_Object::FixedConstraint, 1, 9216);
  8880.   m_numberOfMBs.SetConstraints(PASN_Object::FixedConstraint, 1, 9216);
  8881. }
  8882.  
  8883.  
  8884. #ifndef PASN_NOPRINTON
  8885. void H245_MiscellaneousCommand_type_lostPartialPicture::PrintOn(ostream & strm) const
  8886. {
  8887.   int indent = strm.precision() + 2;
  8888.   strm << "{\n";
  8889.   strm << setw(indent+19) << "pictureReference = " << setprecision(indent) << m_pictureReference << '\n';
  8890.   strm << setw(indent+10) << "firstMB = " << setprecision(indent) << m_firstMB << '\n';
  8891.   strm << setw(indent+14) << "numberOfMBs = " << setprecision(indent) << m_numberOfMBs << '\n';
  8892.   strm << setw(indent-1) << "}";
  8893. }
  8894. #endif
  8895.  
  8896.  
  8897. PObject::Comparison H245_MiscellaneousCommand_type_lostPartialPicture::Compare(const PObject & obj) const
  8898. {
  8899. #ifndef PASN_LEANANDMEAN
  8900.   PAssert(IsDescendant(H245_MiscellaneousCommand_type_lostPartialPicture::Class()), PInvalidCast);
  8901. #endif
  8902.   const H245_MiscellaneousCommand_type_lostPartialPicture & other = (const H245_MiscellaneousCommand_type_lostPartialPicture &)obj;
  8903.  
  8904.   Comparison result;
  8905.  
  8906.   if ((result = m_pictureReference.Compare(other.m_pictureReference)) != EqualTo)
  8907.     return result;
  8908.   if ((result = m_firstMB.Compare(other.m_firstMB)) != EqualTo)
  8909.     return result;
  8910.   if ((result = m_numberOfMBs.Compare(other.m_numberOfMBs)) != EqualTo)
  8911.     return result;
  8912.  
  8913.   return PASN_Sequence::Compare(other);
  8914. }
  8915.  
  8916.  
  8917. PINDEX H245_MiscellaneousCommand_type_lostPartialPicture::GetDataLength() const
  8918. {
  8919.   PINDEX length = 0;
  8920.   length += m_pictureReference.GetObjectLength();
  8921.   length += m_firstMB.GetObjectLength();
  8922.   length += m_numberOfMBs.GetObjectLength();
  8923.   return length;
  8924. }
  8925.  
  8926.  
  8927. BOOL H245_MiscellaneousCommand_type_lostPartialPicture::Decode(PASN_Stream & strm)
  8928. {
  8929.   if (!PreambleDecode(strm))
  8930.     return FALSE;
  8931.  
  8932.   if (!m_pictureReference.Decode(strm))
  8933.     return FALSE;
  8934.   if (!m_firstMB.Decode(strm))
  8935.     return FALSE;
  8936.   if (!m_numberOfMBs.Decode(strm))
  8937.     return FALSE;
  8938.  
  8939.   return UnknownExtensionsDecode(strm);
  8940. }
  8941.  
  8942.  
  8943. void H245_MiscellaneousCommand_type_lostPartialPicture::Encode(PASN_Stream & strm) const
  8944. {
  8945.   PreambleEncode(strm);
  8946.  
  8947.   m_pictureReference.Encode(strm);
  8948.   m_firstMB.Encode(strm);
  8949.   m_numberOfMBs.Encode(strm);
  8950.  
  8951.   UnknownExtensionsEncode(strm);
  8952. }
  8953.  
  8954.  
  8955. PObject * H245_MiscellaneousCommand_type_lostPartialPicture::Clone() const
  8956. {
  8957. #ifndef PASN_LEANANDMEAN
  8958.   PAssert(IsClass(H245_MiscellaneousCommand_type_lostPartialPicture::Class()), PInvalidCast);
  8959. #endif
  8960.   return new H245_MiscellaneousCommand_type_lostPartialPicture(*this);
  8961. }
  8962.  
  8963.  
  8964. //
  8965. // NewATMVCCommand_aal_aal5
  8966. //
  8967.  
  8968. H245_NewATMVCCommand_aal_aal5::H245_NewATMVCCommand_aal_aal5(unsigned tag, PASN_Object::TagClass tagClass)
  8969.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8970. {
  8971.   m_forwardMaximumSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  8972.   m_backwardMaximumSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  8973. }
  8974.  
  8975.  
  8976. #ifndef PASN_NOPRINTON
  8977. void H245_NewATMVCCommand_aal_aal5::PrintOn(ostream & strm) const
  8978. {
  8979.   int indent = strm.precision() + 2;
  8980.   strm << "{\n";
  8981.   strm << setw(indent+24) << "forwardMaximumSDUSize = " << setprecision(indent) << m_forwardMaximumSDUSize << '\n';
  8982.   strm << setw(indent+25) << "backwardMaximumSDUSize = " << setprecision(indent) << m_backwardMaximumSDUSize << '\n';
  8983.   strm << setw(indent-1) << "}";
  8984. }
  8985. #endif
  8986.  
  8987.  
  8988. PObject::Comparison H245_NewATMVCCommand_aal_aal5::Compare(const PObject & obj) const
  8989. {
  8990. #ifndef PASN_LEANANDMEAN
  8991.   PAssert(IsDescendant(H245_NewATMVCCommand_aal_aal5::Class()), PInvalidCast);
  8992. #endif
  8993.   const H245_NewATMVCCommand_aal_aal5 & other = (const H245_NewATMVCCommand_aal_aal5 &)obj;
  8994.  
  8995.   Comparison result;
  8996.  
  8997.   if ((result = m_forwardMaximumSDUSize.Compare(other.m_forwardMaximumSDUSize)) != EqualTo)
  8998.     return result;
  8999.   if ((result = m_backwardMaximumSDUSize.Compare(other.m_backwardMaximumSDUSize)) != EqualTo)
  9000.     return result;
  9001.  
  9002.   return PASN_Sequence::Compare(other);
  9003. }
  9004.  
  9005.  
  9006. PINDEX H245_NewATMVCCommand_aal_aal5::GetDataLength() const
  9007. {
  9008.   PINDEX length = 0;
  9009.   length += m_forwardMaximumSDUSize.GetObjectLength();
  9010.   length += m_backwardMaximumSDUSize.GetObjectLength();
  9011.   return length;
  9012. }
  9013.  
  9014.  
  9015. BOOL H245_NewATMVCCommand_aal_aal5::Decode(PASN_Stream & strm)
  9016. {
  9017.   if (!PreambleDecode(strm))
  9018.     return FALSE;
  9019.  
  9020.   if (!m_forwardMaximumSDUSize.Decode(strm))
  9021.     return FALSE;
  9022.   if (!m_backwardMaximumSDUSize.Decode(strm))
  9023.     return FALSE;
  9024.  
  9025.   return UnknownExtensionsDecode(strm);
  9026. }
  9027.  
  9028.  
  9029. void H245_NewATMVCCommand_aal_aal5::Encode(PASN_Stream & strm) const
  9030. {
  9031.   PreambleEncode(strm);
  9032.  
  9033.   m_forwardMaximumSDUSize.Encode(strm);
  9034.   m_backwardMaximumSDUSize.Encode(strm);
  9035.  
  9036.   UnknownExtensionsEncode(strm);
  9037. }
  9038.  
  9039.  
  9040. PObject * H245_NewATMVCCommand_aal_aal5::Clone() const
  9041. {
  9042. #ifndef PASN_LEANANDMEAN
  9043.   PAssert(IsClass(H245_NewATMVCCommand_aal_aal5::Class()), PInvalidCast);
  9044. #endif
  9045.   return new H245_NewATMVCCommand_aal_aal5(*this);
  9046. }
  9047.  
  9048.  
  9049. //
  9050. // NewATMVCCommand_reverseParameters_multiplex
  9051. //
  9052.  
  9053. H245_NewATMVCCommand_reverseParameters_multiplex::H245_NewATMVCCommand_reverseParameters_multiplex(unsigned tag, PASN_Object::TagClass tagClass)
  9054.   : PASN_Choice(tag, tagClass, 3, TRUE
  9055. #ifndef PASN_NOPRINTON
  9056.       , "noMultiplex "
  9057.         "transportStream "
  9058.         "programStream "
  9059. #endif
  9060.     )
  9061. {
  9062. }
  9063.  
  9064.  
  9065. BOOL H245_NewATMVCCommand_reverseParameters_multiplex::CreateObject()
  9066. {
  9067.   choice = (tag <= e_programStream) ? new PASN_Null() : NULL;
  9068.   return choice != NULL;
  9069. }
  9070.  
  9071.  
  9072. PObject * H245_NewATMVCCommand_reverseParameters_multiplex::Clone() const
  9073. {
  9074. #ifndef PASN_LEANANDMEAN
  9075.   PAssert(IsClass(H245_NewATMVCCommand_reverseParameters_multiplex::Class()), PInvalidCast);
  9076. #endif
  9077.   return new H245_NewATMVCCommand_reverseParameters_multiplex(*this);
  9078. }
  9079.  
  9080.  
  9081. //
  9082. // MiscellaneousIndication_type_videoNotDecodedMBs
  9083. //
  9084.  
  9085. H245_MiscellaneousIndication_type_videoNotDecodedMBs::H245_MiscellaneousIndication_type_videoNotDecodedMBs(unsigned tag, PASN_Object::TagClass tagClass)
  9086.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9087. {
  9088.   m_firstMB.SetConstraints(PASN_Object::FixedConstraint, 1, 8192);
  9089.   m_numberOfMBs.SetConstraints(PASN_Object::FixedConstraint, 1, 8192);
  9090.   m_temporalReference.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  9091. }
  9092.  
  9093.  
  9094. #ifndef PASN_NOPRINTON
  9095. void H245_MiscellaneousIndication_type_videoNotDecodedMBs::PrintOn(ostream & strm) const
  9096. {
  9097.   int indent = strm.precision() + 2;
  9098.   strm << "{\n";
  9099.   strm << setw(indent+10) << "firstMB = " << setprecision(indent) << m_firstMB << '\n';
  9100.   strm << setw(indent+14) << "numberOfMBs = " << setprecision(indent) << m_numberOfMBs << '\n';
  9101.   strm << setw(indent+20) << "temporalReference = " << setprecision(indent) << m_temporalReference << '\n';
  9102.   strm << setw(indent-1) << "}";
  9103. }
  9104. #endif
  9105.  
  9106.  
  9107. PObject::Comparison H245_MiscellaneousIndication_type_videoNotDecodedMBs::Compare(const PObject & obj) const
  9108. {
  9109. #ifndef PASN_LEANANDMEAN
  9110.   PAssert(IsDescendant(H245_MiscellaneousIndication_type_videoNotDecodedMBs::Class()), PInvalidCast);
  9111. #endif
  9112.   const H245_MiscellaneousIndication_type_videoNotDecodedMBs & other = (const H245_MiscellaneousIndication_type_videoNotDecodedMBs &)obj;
  9113.  
  9114.   Comparison result;
  9115.  
  9116.   if ((result = m_firstMB.Compare(other.m_firstMB)) != EqualTo)
  9117.     return result;
  9118.   if ((result = m_numberOfMBs.Compare(other.m_numberOfMBs)) != EqualTo)
  9119.     return result;
  9120.   if ((result = m_temporalReference.Compare(other.m_temporalReference)) != EqualTo)
  9121.     return result;
  9122.  
  9123.   return PASN_Sequence::Compare(other);
  9124. }
  9125.  
  9126.  
  9127. PINDEX H245_MiscellaneousIndication_type_videoNotDecodedMBs::GetDataLength() const
  9128. {
  9129.   PINDEX length = 0;
  9130.   length += m_firstMB.GetObjectLength();
  9131.   length += m_numberOfMBs.GetObjectLength();
  9132.   length += m_temporalReference.GetObjectLength();
  9133.   return length;
  9134. }
  9135.  
  9136.  
  9137. BOOL H245_MiscellaneousIndication_type_videoNotDecodedMBs::Decode(PASN_Stream & strm)
  9138. {
  9139.   if (!PreambleDecode(strm))
  9140.     return FALSE;
  9141.  
  9142.   if (!m_firstMB.Decode(strm))
  9143.     return FALSE;
  9144.   if (!m_numberOfMBs.Decode(strm))
  9145.     return FALSE;
  9146.   if (!m_temporalReference.Decode(strm))
  9147.     return FALSE;
  9148.  
  9149.   return UnknownExtensionsDecode(strm);
  9150. }
  9151.  
  9152.  
  9153. void H245_MiscellaneousIndication_type_videoNotDecodedMBs::Encode(PASN_Stream & strm) const
  9154. {
  9155.   PreambleEncode(strm);
  9156.  
  9157.   m_firstMB.Encode(strm);
  9158.   m_numberOfMBs.Encode(strm);
  9159.   m_temporalReference.Encode(strm);
  9160.  
  9161.   UnknownExtensionsEncode(strm);
  9162. }
  9163.  
  9164.  
  9165. PObject * H245_MiscellaneousIndication_type_videoNotDecodedMBs::Clone() const
  9166. {
  9167. #ifndef PASN_LEANANDMEAN
  9168.   PAssert(IsClass(H245_MiscellaneousIndication_type_videoNotDecodedMBs::Class()), PInvalidCast);
  9169. #endif
  9170.   return new H245_MiscellaneousIndication_type_videoNotDecodedMBs(*this);
  9171. }
  9172.  
  9173.  
  9174. //
  9175. // NewATMVCIndication_aal_aal5
  9176. //
  9177.  
  9178. H245_NewATMVCIndication_aal_aal5::H245_NewATMVCIndication_aal_aal5(unsigned tag, PASN_Object::TagClass tagClass)
  9179.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9180. {
  9181.   m_forwardMaximumSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  9182.   m_backwardMaximumSDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  9183. }
  9184.  
  9185.  
  9186. #ifndef PASN_NOPRINTON
  9187. void H245_NewATMVCIndication_aal_aal5::PrintOn(ostream & strm) const
  9188. {
  9189.   int indent = strm.precision() + 2;
  9190.   strm << "{\n";
  9191.   strm << setw(indent+24) << "forwardMaximumSDUSize = " << setprecision(indent) << m_forwardMaximumSDUSize << '\n';
  9192.   strm << setw(indent+25) << "backwardMaximumSDUSize = " << setprecision(indent) << m_backwardMaximumSDUSize << '\n';
  9193.   strm << setw(indent-1) << "}";
  9194. }
  9195. #endif
  9196.  
  9197.  
  9198. PObject::Comparison H245_NewATMVCIndication_aal_aal5::Compare(const PObject & obj) const
  9199. {
  9200. #ifndef PASN_LEANANDMEAN
  9201.   PAssert(IsDescendant(H245_NewATMVCIndication_aal_aal5::Class()), PInvalidCast);
  9202. #endif
  9203.   const H245_NewATMVCIndication_aal_aal5 & other = (const H245_NewATMVCIndication_aal_aal5 &)obj;
  9204.  
  9205.   Comparison result;
  9206.  
  9207.   if ((result = m_forwardMaximumSDUSize.Compare(other.m_forwardMaximumSDUSize)) != EqualTo)
  9208.     return result;
  9209.   if ((result = m_backwardMaximumSDUSize.Compare(other.m_backwardMaximumSDUSize)) != EqualTo)
  9210.     return result;
  9211.  
  9212.   return PASN_Sequence::Compare(other);
  9213. }
  9214.  
  9215.  
  9216. PINDEX H245_NewATMVCIndication_aal_aal5::GetDataLength() const
  9217. {
  9218.   PINDEX length = 0;
  9219.   length += m_forwardMaximumSDUSize.GetObjectLength();
  9220.   length += m_backwardMaximumSDUSize.GetObjectLength();
  9221.   return length;
  9222. }
  9223.  
  9224.  
  9225. BOOL H245_NewATMVCIndication_aal_aal5::Decode(PASN_Stream & strm)
  9226. {
  9227.   if (!PreambleDecode(strm))
  9228.     return FALSE;
  9229.  
  9230.   if (!m_forwardMaximumSDUSize.Decode(strm))
  9231.     return FALSE;
  9232.   if (!m_backwardMaximumSDUSize.Decode(strm))
  9233.     return FALSE;
  9234.  
  9235.   return UnknownExtensionsDecode(strm);
  9236. }
  9237.  
  9238.  
  9239. void H245_NewATMVCIndication_aal_aal5::Encode(PASN_Stream & strm) const
  9240. {
  9241.   PreambleEncode(strm);
  9242.  
  9243.   m_forwardMaximumSDUSize.Encode(strm);
  9244.   m_backwardMaximumSDUSize.Encode(strm);
  9245.  
  9246.   UnknownExtensionsEncode(strm);
  9247. }
  9248.  
  9249.  
  9250. PObject * H245_NewATMVCIndication_aal_aal5::Clone() const
  9251. {
  9252. #ifndef PASN_LEANANDMEAN
  9253.   PAssert(IsClass(H245_NewATMVCIndication_aal_aal5::Class()), PInvalidCast);
  9254. #endif
  9255.   return new H245_NewATMVCIndication_aal_aal5(*this);
  9256. }
  9257.  
  9258.  
  9259. //
  9260. // NewATMVCIndication_reverseParameters_multiplex
  9261. //
  9262.  
  9263. H245_NewATMVCIndication_reverseParameters_multiplex::H245_NewATMVCIndication_reverseParameters_multiplex(unsigned tag, PASN_Object::TagClass tagClass)
  9264.   : PASN_Choice(tag, tagClass, 3, TRUE
  9265. #ifndef PASN_NOPRINTON
  9266.       , "noMultiplex "
  9267.         "transportStream "
  9268.         "programStream "
  9269. #endif
  9270.     )
  9271. {
  9272. }
  9273.  
  9274.  
  9275. BOOL H245_NewATMVCIndication_reverseParameters_multiplex::CreateObject()
  9276. {
  9277.   choice = (tag <= e_programStream) ? new PASN_Null() : NULL;
  9278.   return choice != NULL;
  9279. }
  9280.  
  9281.  
  9282. PObject * H245_NewATMVCIndication_reverseParameters_multiplex::Clone() const
  9283. {
  9284. #ifndef PASN_LEANANDMEAN
  9285.   PAssert(IsClass(H245_NewATMVCIndication_reverseParameters_multiplex::Class()), PInvalidCast);
  9286. #endif
  9287.   return new H245_NewATMVCIndication_reverseParameters_multiplex(*this);
  9288. }
  9289.  
  9290.  
  9291. //
  9292. // UserInputIndication_signal_rtp
  9293. //
  9294.  
  9295. H245_UserInputIndication_signal_rtp::H245_UserInputIndication_signal_rtp(unsigned tag, PASN_Object::TagClass tagClass)
  9296.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  9297. {
  9298.   m_timestamp.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  9299.   m_expirationTime.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  9300. }
  9301.  
  9302.  
  9303. #ifndef PASN_NOPRINTON
  9304. void H245_UserInputIndication_signal_rtp::PrintOn(ostream & strm) const
  9305. {
  9306.   int indent = strm.precision() + 2;
  9307.   strm << "{\n";
  9308.   if (HasOptionalField(e_timestamp))
  9309.     strm << setw(indent+12) << "timestamp = " << setprecision(indent) << m_timestamp << '\n';
  9310.   if (HasOptionalField(e_expirationTime))
  9311.     strm << setw(indent+17) << "expirationTime = " << setprecision(indent) << m_expirationTime << '\n';
  9312.   strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
  9313.   strm << setw(indent-1) << "}";
  9314. }
  9315. #endif
  9316.  
  9317.  
  9318. PObject::Comparison H245_UserInputIndication_signal_rtp::Compare(const PObject & obj) const
  9319. {
  9320. #ifndef PASN_LEANANDMEAN
  9321.   PAssert(IsDescendant(H245_UserInputIndication_signal_rtp::Class()), PInvalidCast);
  9322. #endif
  9323.   const H245_UserInputIndication_signal_rtp & other = (const H245_UserInputIndication_signal_rtp &)obj;
  9324.  
  9325.   Comparison result;
  9326.  
  9327.   if ((result = m_timestamp.Compare(other.m_timestamp)) != EqualTo)
  9328.     return result;
  9329.   if ((result = m_expirationTime.Compare(other.m_expirationTime)) != EqualTo)
  9330.     return result;
  9331.   if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
  9332.     return result;
  9333.  
  9334.   return PASN_Sequence::Compare(other);
  9335. }
  9336.  
  9337.  
  9338. PINDEX H245_UserInputIndication_signal_rtp::GetDataLength() const
  9339. {
  9340.   PINDEX length = 0;
  9341.   if (HasOptionalField(e_timestamp))
  9342.     length += m_timestamp.GetObjectLength();
  9343.   if (HasOptionalField(e_expirationTime))
  9344.     length += m_expirationTime.GetObjectLength();
  9345.   length += m_logicalChannelNumber.GetObjectLength();
  9346.   return length;
  9347. }
  9348.  
  9349.  
  9350. BOOL H245_UserInputIndication_signal_rtp::Decode(PASN_Stream & strm)
  9351. {
  9352.   if (!PreambleDecode(strm))
  9353.     return FALSE;
  9354.  
  9355.   if (HasOptionalField(e_timestamp) && !m_timestamp.Decode(strm))
  9356.     return FALSE;
  9357.   if (HasOptionalField(e_expirationTime) && !m_expirationTime.Decode(strm))
  9358.     return FALSE;
  9359.   if (!m_logicalChannelNumber.Decode(strm))
  9360.     return FALSE;
  9361.  
  9362.   return UnknownExtensionsDecode(strm);
  9363. }
  9364.  
  9365.  
  9366. void H245_UserInputIndication_signal_rtp::Encode(PASN_Stream & strm) const
  9367. {
  9368.   PreambleEncode(strm);
  9369.  
  9370.   if (HasOptionalField(e_timestamp))
  9371.     m_timestamp.Encode(strm);
  9372.   if (HasOptionalField(e_expirationTime))
  9373.     m_expirationTime.Encode(strm);
  9374.   m_logicalChannelNumber.Encode(strm);
  9375.  
  9376.   UnknownExtensionsEncode(strm);
  9377. }
  9378.  
  9379.  
  9380. PObject * H245_UserInputIndication_signal_rtp::Clone() const
  9381. {
  9382. #ifndef PASN_LEANANDMEAN
  9383.   PAssert(IsClass(H245_UserInputIndication_signal_rtp::Class()), PInvalidCast);
  9384. #endif
  9385.   return new H245_UserInputIndication_signal_rtp(*this);
  9386. }
  9387.  
  9388.  
  9389. //
  9390. // UserInputIndication_signalUpdate_rtp
  9391. //
  9392.  
  9393. H245_UserInputIndication_signalUpdate_rtp::H245_UserInputIndication_signalUpdate_rtp(unsigned tag, PASN_Object::TagClass tagClass)
  9394.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9395. {
  9396. }
  9397.  
  9398.  
  9399. #ifndef PASN_NOPRINTON
  9400. void H245_UserInputIndication_signalUpdate_rtp::PrintOn(ostream & strm) const
  9401. {
  9402.   int indent = strm.precision() + 2;
  9403.   strm << "{\n";
  9404.   strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
  9405.   strm << setw(indent-1) << "}";
  9406. }
  9407. #endif
  9408.  
  9409.  
  9410. PObject::Comparison H245_UserInputIndication_signalUpdate_rtp::Compare(const PObject & obj) const
  9411. {
  9412. #ifndef PASN_LEANANDMEAN
  9413.   PAssert(IsDescendant(H245_UserInputIndication_signalUpdate_rtp::Class()), PInvalidCast);
  9414. #endif
  9415.   const H245_UserInputIndication_signalUpdate_rtp & other = (const H245_UserInputIndication_signalUpdate_rtp &)obj;
  9416.  
  9417.   Comparison result;
  9418.  
  9419.   if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
  9420.     return result;
  9421.  
  9422.   return PASN_Sequence::Compare(other);
  9423. }
  9424.  
  9425.  
  9426. PINDEX H245_UserInputIndication_signalUpdate_rtp::GetDataLength() const
  9427. {
  9428.   PINDEX length = 0;
  9429.   length += m_logicalChannelNumber.GetObjectLength();
  9430.   return length;
  9431. }
  9432.  
  9433.  
  9434. BOOL H245_UserInputIndication_signalUpdate_rtp::Decode(PASN_Stream & strm)
  9435. {
  9436.   if (!PreambleDecode(strm))
  9437.     return FALSE;
  9438.  
  9439.   if (!m_logicalChannelNumber.Decode(strm))
  9440.     return FALSE;
  9441.  
  9442.   return UnknownExtensionsDecode(strm);
  9443. }
  9444.  
  9445.  
  9446. void H245_UserInputIndication_signalUpdate_rtp::Encode(PASN_Stream & strm) const
  9447. {
  9448.   PreambleEncode(strm);
  9449.  
  9450.   m_logicalChannelNumber.Encode(strm);
  9451.  
  9452.   UnknownExtensionsEncode(strm);
  9453. }
  9454.  
  9455.  
  9456. PObject * H245_UserInputIndication_signalUpdate_rtp::Clone() const
  9457. {
  9458. #ifndef PASN_LEANANDMEAN
  9459.   PAssert(IsClass(H245_UserInputIndication_signalUpdate_rtp::Class()), PInvalidCast);
  9460. #endif
  9461.   return new H245_UserInputIndication_signalUpdate_rtp(*this);
  9462. }
  9463.  
  9464.  
  9465. #endif // if ! H323_DISABLE_H245
  9466.  
  9467.  
  9468. // End of h245_2.cxx
  9469.