中间件标准版5.1git,去除基础模块

m3glib.h 136KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993
  1. /*********************************************************************/
  2. /* EhangCom: API Head file
  3. *
  4. * FILE: m3glib.h
  5. *
  6. * DESCRIPTION: Header File for EhangCom Digital M3G Interface library
  7. *
  8. * Copyright (c) EhangCom Corp. All Rights Reserved
  9. *
  10. * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF EhangCom Corp.
  11. * The copyright notice above does not evidence any actual or
  12. * intended publication of such source code.
  13. */
  14. /*********************************************************************/
  15. #ifndef __M3GLIB_H__
  16. #define __M3GLIB_H__
  17. #include "IsxApi.h"
  18. #include "srllib.h"
  19. #include "ipmlib.h"
  20. #include "voclib.h"
  21. #include "siplib.h"
  22. #ifndef M3GDEV
  23. #define M3GDEV INT
  24. #endif
  25. /************************************************************************/
  26. //Define Media Port Format
  27. #ifndef EHANG_MEDIA_BEGIN_PORT
  28. #define EHANG_MEDIA_BEGIN_PORT 30000
  29. #define EHANG_MAKE_MEDIA_PORT(ch, i) EHANG_MEDIA_BEGIN_PORT+(ch*16)+i
  30. #endif
  31. /************************************************************************/
  32. //////////////////////////////////////////////////////////////////////////
  33. /*
  34. - Error codes returned by ATDV_LASTERR()
  35. */
  36. #define EM3G_NOERROR ISXEC_NOERROR
  37. #define EM3G_SYSTEM ISXEC_SYSTEM
  38. #define EM3G_BUSY ISXEC_BUSY
  39. #define EM3G_TIMEOUT ISXEC_TIMEOUT
  40. #define EM3G_BADTPT ISXEC_BADTPT
  41. #define EM3G_BADIOTT ISXEC_BADIOTT
  42. #define EM3G_BADPARM ISXEC_BADPARM
  43. #define EM3G_OPERTIMEOUT ISXEC_OPERTIMEOUT
  44. #define EM3G_INVALID_STATE ISXEC_INVALID_STATE
  45. #define EM3G_CHAN_TYPE_ERROR ISXEC_CHAN_TYPE_ERROR
  46. //////////////////////////////////////////////////////////////////////////
  47. /*
  48. - Define M3G Event Types
  49. */
  50. #ifndef M3GEV_BASE
  51. #define M3GEV_BASE 0x300
  52. #define M3GEV_BASE_END (M3GEV_BASE | 0xff)
  53. #define M3GEV_OPEN_CMPLT (M3GEV_BASE | 0x01)
  54. #define M3GEV_OPEN_FAIL (M3GEV_BASE | 0x02)
  55. #define M3GEV_SET_PARM_CMPLT (M3GEV_BASE | 0x03)
  56. #define M3GEV_SET_PARM_FAIL (M3GEV_BASE | 0x04)
  57. #define M3GEV_GET_PARM_CMPLT (M3GEV_BASE | 0x05)
  58. #define M3GEV_GET_PARM_FAIL (M3GEV_BASE | 0x06)
  59. #define M3GEV_START_MEDIA_CMPLT (M3GEV_BASE | 0x07)
  60. #define M3GEV_START_MEDIA_FAIL (M3GEV_BASE | 0x08)
  61. #define M3GEV_STOP_MEDIA_CMPLT (M3GEV_BASE | 0x09)
  62. #define M3GEV_STOP_MEDIA_FAIL (M3GEV_BASE | 0x0a)
  63. #define M3GEV_PLAY_BEGIN (M3GEV_BASE | 0x0b)
  64. #define M3GEV_PLAY_CMPLT (M3GEV_BASE | 0x0c)
  65. #define M3GEV_PLAY_FAIL (M3GEV_BASE | 0x0d)
  66. #define M3GEV_RECORD_BEGIN (M3GEV_BASE | 0x0e)
  67. #define M3GEV_RECORD_CMPLT (M3GEV_BASE | 0x0f)
  68. #define M3GEV_RECORD_FAIL (M3GEV_BASE | 0x10)
  69. #define M3GEV_PAUSE_CMPLT (M3GEV_BASE | 0x11)
  70. #define M3GEV_PAUSE_FAIL (M3GEV_BASE | 0x12)
  71. #define M3GEV_RESUME_CMPLT (M3GEV_BASE | 0x13)
  72. #define M3GEV_RESUME_FAIL (M3GEV_BASE | 0x14)
  73. #define M3GEV_GET_DIGITS_CMPLT (M3GEV_BASE | 0x15)
  74. #define M3GEV_GET_DIGITS_FAIL (M3GEV_BASE | 0x16)
  75. #define M3GEV_DIGITS_RECEIVED (M3GEV_BASE | 0x17)
  76. #define M3GEV_CST (M3GEV_BASE | 0x18)
  77. #define M3GEV_CST_EX (M3GEV_BASE | 0x1b)
  78. #define M3GEV_SEND_DIGITS_CMPLT (M3GEV_BASE | 0x19)
  79. #define M3GEV_SEND_DIGITS_FAIL (M3GEV_BASE | 0x1a)
  80. #define M3GEV_IPCONNECT_CMPLT (M3GEV_BASE | 0x1c)
  81. #define M3GEV_IPCONNECT_FAIL (M3GEV_BASE | 0x1d)
  82. #define M3GEV_IPDISCONNECT_CMPLT (M3GEV_BASE | 0x1e)
  83. #define M3GEV_IPDISCONNECT_FAIL (M3GEV_BASE | 0x1f)
  84. #define M3GEV_RECV_324M_VENDORID (M3GEV_BASE | 0x30)
  85. #define M3GEV_SEND_IFRAME_CMPLT (M3GEV_BASE | 0x31)
  86. #define M3GEV_SEND_IFRAME_FAIL (M3GEV_BASE | 0x32)
  87. #define M3GEV_ADJVOL_CMPLT (M3GEV_BASE | 0x33)
  88. #define M3GEV_ADJVOL_FAIL (M3GEV_BASE | 0x34)
  89. #define M3GEV_STOP_DIAL_CMPLT (M3GEV_BASE | 0x35)
  90. #define M3GEV_STOP_DIAL_FAIL (M3GEV_BASE | 0x36)
  91. #define M3GEV_START_H245_CMPLT (M3GEV_BASE | 0x50)
  92. #define M3GEV_START_H245_FAIL (M3GEV_BASE | 0x51)
  93. #define M3GEV_STOP_H245_CMPLT (M3GEV_BASE | 0x52)
  94. #define M3GEV_STOP_H245_FAIL (M3GEV_BASE | 0x53)
  95. #define M3GEV_GET_CALL_STATUS_CMPLT (M3GEV_BASE | 0x54)
  96. #define M3GEV_GET_CALL_STATUS_FAIL (M3GEV_BASE | 0x55)
  97. #define M3GEV_CALL_STATUS (M3GEV_BASE | 0x56)
  98. #define M3GEV_GET_MSDINFO_CMPLT (M3GEV_BASE | 0x57)
  99. #define M3GEV_GET_MSDINFO_FAIL (M3GEV_BASE | 0x58)
  100. #define M3GEV_MSDINFO_STATUS (M3GEV_BASE | 0x59)
  101. #define M3GEV_TCSINFO_STATUS (M3GEV_BASE | 0x5a)
  102. #define M3GEV_GET_TERM_CAPS_CMPLT (M3GEV_BASE | 0x5b)
  103. #define M3GEV_GET_TERM_CAPS_FAIL (M3GEV_BASE | 0x5c)
  104. #define M3GEV_LCINFO_STATUS (M3GEV_BASE | 0x5d)
  105. #define M3GEV_GET_LC_PARM_CMPLT (M3GEV_BASE | 0x5e)
  106. #define M3GEV_GET_LC_PARM_FAIL (M3GEV_BASE | 0x5f)
  107. #define M3GEV_SEND_H245_MISC_CMD_CMPLT (M3GEV_BASE | 0x60)
  108. #define M3GEV_SEND_H245_MISC_CMD_FAIL (M3GEV_BASE | 0x61)
  109. #define M3GEV_RECV_H245_MISC_CMD (M3GEV_BASE | 0x62)
  110. #define M3GEV_DOWNLOADFONT_CMPLT (M3GEV_BASE | 0x63)
  111. #define M3GEV_DOWNLOADFONT_FAIL (M3GEV_BASE | 0x64)
  112. #define M3GEV_CTRLTOOLBOX_CMPLT (M3GEV_BASE | 0x65)
  113. #define M3GEV_CTRLTOOLBOX_FAIL (M3GEV_BASE | 0x66)
  114. #define M3GEV_DOWNLOADLOGO_CMPLT (M3GEV_BASE | 0x67)
  115. #define M3GEV_DOWNLOADLOGO_FAIL (M3GEV_BASE | 0x68)
  116. #define M3GEV_SETLOGOPARM_CMPLT (M3GEV_BASE | 0x69)
  117. #define M3GEV_SETLOGOPARM_FAIL (M3GEV_BASE | 0x6a)
  118. #define M3GEV_STARTTEXTOVERLAY_CMPLT (M3GEV_BASE | 0x6b)
  119. #define M3GEV_STARTTEXTOVERLAY_FAIL (M3GEV_BASE | 0x6c)
  120. #define M3GEV_STOPTEXTOVERLAY_CMPLT (M3GEV_BASE | 0x6d)
  121. #define M3GEV_STOPTEXTOVERLAY_FAIL (M3GEV_BASE | 0x6e)
  122. #define M3GEV_SETTEXTOVERLAYPARM_CMPLT (M3GEV_BASE | 0x6f)
  123. #define M3GEV_SETTEXTOVERLAYPARM_FAIL (M3GEV_BASE | 0x70)
  124. #define M3GEV_GETTEXTOVERLAYPARM_CMPLT (M3GEV_BASE | 0x71)
  125. #define M3GEV_GETTEXTOVERLAYPARM_FAIL (M3GEV_BASE | 0x72)
  126. #define M3GEV_ESTVIDEOCONF_CMPLT (M3GEV_BASE | 0x73)
  127. #define M3GEV_ESTVIDEOCONF_FAIL (M3GEV_BASE | 0x74)
  128. #define M3GEV_DELVIDEOCONF_CMPLT (M3GEV_BASE | 0x75)
  129. #define M3GEV_DELVIDEOCONF_FAIL (M3GEV_BASE | 0x76)
  130. #define M3GEV_ADDTOVIDEOCONF_CMPLT (M3GEV_BASE | 0x77)
  131. #define M3GEV_ADDTOVIDEOCONF_FAIL (M3GEV_BASE | 0x78)
  132. #define M3GEV_REMFROMVIDEOCONF_CMPLT (M3GEV_BASE | 0x79)
  133. #define M3GEV_REMFROMVIDEOCONF_FAIL (M3GEV_BASE | 0x7a)
  134. #define M3GEV_SETVIDEOCONFCDE_CMPLT (M3GEV_BASE | 0x7b)
  135. #define M3GEV_SETVIDEOCONFCDE_FAIL (M3GEV_BASE | 0x7c)
  136. #define M3GEV_CREATEVIDEOCONFMIXER_CMPLT (M3GEV_BASE | 0x7d)
  137. #define M3GEV_CREATEVIDEOCONFMIXER_FAIL (M3GEV_BASE | 0x7e)
  138. #define M3GEV_SETVIDEOCONFMIXER_CMPLT (M3GEV_BASE | 0x7f)
  139. #define M3GEV_SETVIDEOCONFMIXER_FAIL (M3GEV_BASE | 0x80)
  140. #define M3GEV_DESTROYVIDEOCONFMIXER_CMPLT (M3GEV_BASE | 0x81)
  141. #define M3GEV_DESTROYVIDEOCONFMIXER_FAIL (M3GEV_BASE | 0x82)
  142. #define M3GEV_CTRLFOREGROUND_CMPLT (M3GEV_BASE | 0x83)
  143. #define M3GEV_CTRLFOREGROUND_FAIL (M3GEV_BASE | 0x84)
  144. #define M3GEV_CTRLBACKGROUND_CMPLT (M3GEV_BASE | 0x85)
  145. #define M3GEV_CTRLBACKGROUND_FAIL (M3GEV_BASE | 0x86)
  146. #define M3GEV_DRAWBOX_CMPLT (M3GEV_BASE | 0x87)
  147. #define M3GEV_DRAWBOX_FAIL (M3GEV_BASE | 0x88)
  148. #define M3GEV_ESTVOICECONF_CMPLT (M3GEV_BASE | 0x90)
  149. #define M3GEV_ESTVOICECONF_FAIL (M3GEV_BASE | 0x91)
  150. #define M3GEV_DELVOICECONF_CMPLT (M3GEV_BASE | 0x92)
  151. #define M3GEV_DELVOICECONF_FAIL (M3GEV_BASE | 0x93)
  152. #define M3GEV_ADDTOVOICECONF_CMPLT (M3GEV_BASE | 0x94)
  153. #define M3GEV_ADDTOVOICECONF_FAIL (M3GEV_BASE | 0x95)
  154. #define M3GEV_REMFROMVOICECONF_CMPLT (M3GEV_BASE | 0x96)
  155. #define M3GEV_REMFROMVOICECONF_FAIL (M3GEV_BASE | 0x97)
  156. #define M3GEV_SETVOICECONFCDE_CMPLT (M3GEV_BASE | 0x98)
  157. #define M3GEV_SETVOICECONFCDE_FAIL (M3GEV_BASE | 0x99)
  158. #endif
  159. /*
  160. - Action values for ag_SetEvtMsk() function
  161. */
  162. #define M3GACT_SETMSK 0 /* set all mask bits & clear all others */
  163. #define M3GACT_ADDMSK 1 /* set all mask bits & ignore all others */
  164. #define M3GACT_SUBMSK 2 /* clr all mask bits & ignore all others */
  165. /*
  166. - Message mask and event equates
  167. */
  168. #define M3GMM_DIGITS_RECEIVED 0x0001 /* Mask for channel digits received */
  169. #define M3GMM_CST 0x0002 /* Mask for CST received */
  170. /*
  171. - mode for ISX_m3g_PauseCh or ISX_m3g_ResumeCh
  172. */
  173. #define EV_RESUMEPLAY EV_BIT_03
  174. #define EV_RESUMEREC EV_BIT_04
  175. #define EV_PAUSEPLAY EV_BIT_05
  176. #define EV_PAUSEREC EV_BIT_06
  177. /*
  178. - eM3G_CHAN_TYPE constants defined the M3G channel types.
  179. */
  180. #ifndef MAX_M3G_CHAN_TYPE
  181. #define MAX_M3G_CHAN_TYPE 19
  182. typedef enum {
  183. M3G_CHAN_TYPE_VOICE = 4, /* The channel is a voice channel */
  184. M3G_CHAN_TYPE_VOICECONF = 7, /* The channel is a voice conferencing channel */
  185. M3G_CHAN_TYPE_VIDEO = 9, /* The channel is an video channel */
  186. M3G_CHAN_TYPE_VIDEOCONF = 17,/* The channel is an video conferencing channel */
  187. M3G_CHAN_TYPE_H324M = 18,/* The channel is an 3G-324M channel */
  188. M3G_CHAN_TYPE_AUDIO = 20,/* The channel is an Audio channel */
  189. }eM3G_CHAN_TYPE;
  190. #endif
  191. /*
  192. - eM3G_LC_NUMBER constants defined the H324M logical channel number.
  193. */
  194. #ifndef MAX_H324M_LC_NUM
  195. #define MAX_H324M_LC_NUM 4
  196. typedef enum {
  197. M3G_LC_VIDEO_OUTPUT = 0, /* video output logical channel */
  198. M3G_LC_VOICE_OUTPUT = 1, /* voice output logical channel */
  199. M3G_LC_VIDEO_INPUT = 2, /* video input logical channel */
  200. M3G_LC_VOICE_INPUT = 3, /* voice input logical channel */
  201. }eM3G_LC_NUMBER;
  202. #endif
  203. /*
  204. - eM3G_VOICE_MODE constants defined the mode of voice channel.
  205. */
  206. #ifndef MAX_M3G_VOICE_MODE
  207. #define MAX_M3G_VOICE_MODE 11
  208. typedef enum {
  209. M3G_VOICE_MODE_VOIP = 0, /* Voice channel mode: TDM<->IP conversion */
  210. M3G_VOICE_MODE_P2P = 1, /* Voice channel mode: voice transcoding */
  211. M3G_VOICE_MODE_FE_IP = 2, /* Front End IP - for conference */
  212. M3G_VOICE_MODE_FE_TDM = 3, /* Front End TDM - for conference */
  213. M3G_VOICE_MODE_RTC = 4, /* Run To Completion */
  214. M3G_VOICE_MODE_PTH223 = 5, /* Packet to H.223 channel */
  215. M3G_VOICE_MODE_RX_ONLY = 6, /* The TX path is disabled */
  216. M3G_VOICE_MODE_EVD_EVG = 7, /* Only EVent Detector and EVent Generator are enabled */
  217. M3G_VOICE_MODE_FE_IP_NO_VAD = 8, /* Front End IP without VAD - for 3\4 way conference */
  218. M3G_VOICE_MODE_FE_TDM_NO_VAD = 9, /* Front End TDM without VAD - for 3\4 way conference */
  219. M3G_VOICE_MODE_MOIP_RFC2833_ONLY = 10, /* The IP TX side send only RFC2833 packet (not voice) */
  220. MAX_M3G_VOICE_MODES
  221. }eM3G_VOICE_MODE;
  222. #endif
  223. /*
  224. - eM3G_VOICE_CODER constants defined the voice coder type.
  225. Note: Except that the packet duration of M3G_VOCODER_ILBC_30MS is 30ms, the others are 20ms.
  226. */
  227. #ifndef MAX_M3G_VOICE_CODER
  228. #define MAX_M3G_VOICE_CODER 61
  229. typedef enum {
  230. M3G_VOCODER_G711A = 0, /* G.711 A-law protocol */
  231. M3G_VOCODER_G711MU = 1, /* G.711 Mu-law protocol */
  232. M3G_VOCODER_G723_1H_30MS = 3, /* G.723.1 High rate protocol (6.3Kbit/s) */
  233. M3G_VOCODER_G723_1L_30MS = 4, /* G.723.1 Low rate protocol (5.3Kbit/s) */
  234. M3G_VOCODER_G726_40 = 6, /* G.726 protocol at 40Kbit/s */
  235. M3G_VOCODER_G726_32 = 7, /* G.726 protocol at 32Kbit/s */
  236. M3G_VOCODER_G726_24 = 8, /* G.726 protocol at 24Kbit/s */
  237. M3G_VOCODER_G726_16 = 9, /* G.726 protocol at 16Kbit/s */
  238. M3G_VOCODER_G729_AB = 16, /* G.729.Annex A + Annex B protocol */
  239. M3G_VOCODER_GSM_FR = 17, /* GSM Full Rate */
  240. M3G_VOCODER_GSM_EFR = 18, /* GSM Enhanced Full Rate */
  241. M3G_VOCODER_GSM_AMR475_BE = 19, /* GSM AMR 4.75Kbit/s Bandwidth Efficient packing */
  242. M3G_VOCODER_GSM_AMR515_BE = 20, /* GSM AMR 5.15Kbit/s Bandwidth Efficient packing */
  243. M3G_VOCODER_GSM_AMR59_BE = 21, /* GSM AMR 5.9Kbit/s Bandwidth Efficient packing */
  244. M3G_VOCODER_GSM_AMR67_BE = 22, /* GSM AMR 6.7Kbit/s Bandwidth Efficient packing */
  245. M3G_VOCODER_GSM_AMR74_BE = 23, /* GSM AMR 7.4Kbit/s Bandwidth Efficient packing */
  246. M3G_VOCODER_GSM_AMR795_BE = 24, /* GSM AMR 7.95Kbit/s Bandwidth Efficient packing */
  247. M3G_VOCODER_GSM_AMR102_BE = 25, /* GSM AMR 10.2Kbit/s Bandwidth Efficient packing */
  248. M3G_VOCODER_GSM_AMR122_BE = 26, /* GSM AMR 12.2Kbit/s Bandwidth Efficient packing */
  249. M3G_VOCODER_GSM_AMR475_OA = 27, /* GSM AMR 4.75Kbit/s Octet Aligned packing */
  250. M3G_VOCODER_GSM_AMR515_OA = 28, /* GSM AMR 5.15Kbit/s Octet Aligned packing */
  251. M3G_VOCODER_GSM_AMR59_OA = 29, /* GSM AMR 5.9Kbit/s Octet Aligned packing */
  252. M3G_VOCODER_GSM_AMR67_OA = 30, /* GSM AMR 6.7Kbit/s Octet Aligned packing */
  253. M3G_VOCODER_GSM_AMR74_OA = 31, /* GSM AMR 7.4Kbit/s Octet Aligned packing */
  254. M3G_VOCODER_GSM_AMR795_OA = 32, /* GSM AMR 7.95Kbit/s Octet Aligned packing */
  255. M3G_VOCODER_GSM_AMR102_OA = 33, /* GSM AMR 10.2Kbit/s Octet Aligned packing */
  256. M3G_VOCODER_GSM_AMR122_OA = 34, /* GSM AMR 12.2Kbit/s Octet Aligned packing */
  257. M3G_VOCODER_LINEAR = 35, /* Linear (16bit) samples */
  258. M3G_VOCODER_CLEAR = 36, /* Clear Mu/A-law channel */
  259. M3G_VOCODER_FULL_EVRC_HFF = 37, /* EVRC Full Rate (9.6Kbit/s) Header Free Format (A.K.A evrc0) */
  260. M3G_VOCODER_HALF_EVRC_HFF = 38, /* EVRC Half Rate (4.8Kbit/s) Header Free Format (A.K.A evrc0) */
  261. M3G_VOCODER_FULL_EVRC_BF = 39, /* EVRC Full Rate (9.6Kbit/s) Bundled Format */
  262. M3G_VOCODER_HALF_EVRC_BF = 40, /* EVRC Half Rate (4.8Kbit/s) Bundled Format */
  263. M3G_VOCODER_GSM_WB_AMR66_BE = 41, /* WB-AMR 6.6Kbit/s Bandwidth Efficient packing */
  264. M3G_VOCODER_GSM_WB_AMR885_BE = 42, /* WB-AMR 8.85Kbit/s Bandwidth Efficient packing */
  265. M3G_VOCODER_GSM_WB_AMR1265_BE = 43, /* WB-AMR 12.65Kbit/s Bandwidth Efficient packing */
  266. M3G_VOCODER_GSM_WB_AMR1425_BE = 44, /* WB-AMR 14.25Kbit/s Bandwidth Efficient packing */
  267. M3G_VOCODER_GSM_WB_AMR1585_BE = 45, /* WB-AMR 15.85Kbit/s Bandwidth Efficient packing */
  268. M3G_VOCODER_GSM_WB_AMR1825_BE = 46, /* WB-AMR 18.25Kbit/s Bandwidth Efficient packing */
  269. M3G_VOCODER_GSM_WB_AMR1985_BE = 47, /* WB-AMR 19.85Kbit/s Bandwidth Efficient packing */
  270. M3G_VOCODER_GSM_WB_AMR2305_BE = 48, /* WB-AMR 23.05Kbit/s Bandwidth Efficient packing */
  271. M3G_VOCODER_GSM_WB_AMR2385_BE = 49, /* WB-AMR 23.85Kbit/s Bandwidth Efficient packing */
  272. M3G_VOCODER_GSM_WB_AMR66_OA = 50, /* WB-AMR 6.6Kbit/s Octet Aligned packing */
  273. M3G_VOCODER_GSM_WB_AMR885_OA = 51, /* WB-AMR 8.85Kbit/s Octet Aligned packing */
  274. M3G_VOCODER_GSM_WB_AMR1265_OA = 52, /* WB-AMR 12.65Kbit/s Octet Aligned packing */
  275. M3G_VOCODER_GSM_WB_AMR1425_OA = 53, /* WB-AMR 14.25Kbit/s Octet Aligned packing */
  276. M3G_VOCODER_GSM_WB_AMR1585_OA = 54, /* WB-AMR 15.85Kbit/s Octet Aligned packing */
  277. M3G_VOCODER_GSM_WB_AMR1825_OA = 55, /* WB-AMR 18.25Kbit/s Octet Aligned packing */
  278. M3G_VOCODER_GSM_WB_AMR1985_OA = 56, /* WB-AMR 19.85Kbit/s Octet Aligned packing */
  279. M3G_VOCODER_GSM_WB_AMR2305_OA = 57, /* WB-AMR 23.05Kbit/s Octet Aligned packing */
  280. M3G_VOCODER_GSM_WB_AMR2385_OA = 58, /* WB-AMR 23.85Kbit/s Octet Aligned packing */
  281. M3G_VOCODER_ILBC_20MS = 59, /* iLBC 20ms frames (15.2Kbit/s) */
  282. M3G_VOCODER_ILBC_30MS = 60, /* iLBC 30ms frames (13.3Kbit/s) */
  283. }eM3G_VOICE_CODER;
  284. #ifndef _UNDEFINE_g_SipSdpRtpMapForM3gVoice
  285. static ISXSIP_IE_SDP_RTP_MAP g_SipSdpRtpMapForM3gVoice[]=
  286. {
  287. {8, 8000, "PCMA", "1"}, //0
  288. {0, 8000, "PCMU", "1"}, //1
  289. /*---------------------------------------------*/
  290. {100, 8000, "Unassigned", "1"}, //2
  291. /*---------------------------------------------*/
  292. {39, 8000, "G723-6.3K", "1"}, //3
  293. {4, 8000, "G723-5.3K", "1"}, //4
  294. /*---------------------------------------------*/
  295. {36, 8000, "Unassigned", "1"}, //5
  296. /*---------------------------------------------*/
  297. {38, 8000, "G726-40K", "1"}, //6
  298. {2, 8000, "G726-32K", "1"}, //7
  299. {36, 8000, "G726-24K", "1"}, //8
  300. {35, 8000, "G726-16K", "1"}, //9
  301. /*---------------------------------------------*/
  302. {140, 8000, "Unassigned", "1"}, //10
  303. {141, 8000, "Unassigned", "1"}, //11
  304. {142, 8000, "Unassigned", "1"}, //12
  305. {143, 8000, "Unassigned", "1"}, //13
  306. {144, 8000, "Unassigned", "1"}, //14
  307. {145, 8000, "Unassigned", "1"}, //15
  308. /*---------------------------------------------*/
  309. {18, 8000, "G729", "1"}, //16
  310. /*---------------------------------------------*/
  311. {3, 8000, "GSM-FR", "1"}, //17
  312. {40, 8000, "GSM-EFR", "1"}, //18
  313. {41, 8000, "GSM-AMR4.75K-BE", "1"}, //19
  314. {42, 8000, "GSM-AMR5.15K-BE", "1"}, //20
  315. {43, 8000, "GSM-AMR5.9K-BE", "1"}, //21
  316. {44, 8000, "GSM-AMR6.7K-BE", "1"}, //22
  317. {45, 8000, "GSM-AMR7.4K-BE", "1"}, //23
  318. {46, 8000, "GSM-AMR7.95K-BE", "1"}, //24
  319. {47, 8000, "GSM-AMR10.2K-BE", "1"}, //25
  320. {48, 8000, "GSM-AMR12.2K-BE", "1"}, //26
  321. {49, 8000, "GSM-AMR4.75K-OA", "1"}, //27
  322. {50, 8000, "GSM-AMR5.15K-OA", "1"}, //28
  323. {51, 8000, "GSM-AMR5.9K-OA", "1"}, //29
  324. {52, 8000, "GSM-AMR6.7K-OA", "1"}, //30
  325. {53, 8000, "GSM-AMR7.4K-OA", "1"}, //31
  326. {54, 8000, "GSM-AMR7.95K-OA", "1"}, //32
  327. {55, 8000, "GSM-AMR10.2K-OA", "1"}, //33
  328. {56, 8000, "GSM-AMR12.2K-OA", "1"}, //34
  329. /*---------------------------------------------*/
  330. {10, 44100, "Linear16bit", "1"}, //35
  331. {57, 8000, "ClearMuAlawCH", "1"}, //36
  332. /*---------------------------------------------*/
  333. {58, 8000, "EVRC9.6K-HFF", "1"}, //37
  334. {59, 8000, "EVRC4.8K-HFF", "1"}, //38
  335. {60, 8000, "EVRC9.6K-BF", "1"}, //39
  336. {61, 8000, "EVRC4.8K-BF", "1"}, //40
  337. /*---------------------------------------------*/
  338. {62, 8000, "WB-AMR6.6K-BE", "1"}, //41
  339. {63, 8000, "WB-AMR8.85K-BE", "1"}, //42
  340. {64, 8000, "WB-AMR12.65K-BE", "1"}, //43
  341. {65, 8000, "WB-AMR14.25K-BE", "1"}, //44
  342. {66, 8000, "WB-AMR15.85K-BE", "1"}, //45
  343. {67, 8000, "WB-AMR18.25K-BE", "1"}, //46
  344. {68, 8000, "WB-AMR19.85K-BE", "1"}, //47
  345. {69, 8000, "WB-AMR23.05K-BE", "1"}, //48
  346. {70, 8000, "WB-AMR23.85K-BE", "1"}, //49
  347. {71, 8000, "WB-AMR6.6K-OA", "1"}, //50
  348. {72, 8000, "WB-AMR8.85K-OA", "1"}, //51
  349. {73, 8000, "WB-AMR12.65K-OA", "1"}, //52
  350. {74, 8000, "WB-AMR14.25K-OA", "1"}, //53
  351. {75, 8000, "WB-AMR15.85K-OA", "1"}, //54
  352. {76, 8000, "WB-AMR18.25K-OA", "1"}, //55
  353. {77, 8000, "WB-AMR19.85K-OA", "1"}, //56
  354. {78, 8000, "WB-AMR23.05K-OA", "1"}, //57
  355. {79, 8000, "WB-AMR23.85K-OA", "1"}, //58
  356. /*---------------------------------------------*/
  357. {80, 8000, "iLBC-15.2K", "1"}, //59
  358. {98, 8000, "iLBC-13.3K", "1"} //60
  359. };
  360. #endif
  361. #endif
  362. /*
  363. - eM3G_VIDEO_RTP_PAYLOAD constants the encapsulation type of RTP compressed video data.
  364. */
  365. #ifndef MAX_M3G_VIDEO_RTP_PAYLOAD_ENCAP
  366. #define MAX_M3G_VIDEO_RTP_PAYLOAD_ENCAP 33
  367. typedef enum {
  368. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC2190 = 0, /* Video data is H.263 and RFC 2190 */
  369. M3G_VIDEO_RTP_PAYLOAD_ENCAP_NONE = 1, /* No additional encapuslation RFC is supported */
  370. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC2429 = 2, /* The compressed video data is H.263 (used for MPEG4). RFC 2429 and RFC4629 are both supported. */
  371. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC3984 = 3, /* The compressed video data is H.264 and RFC 3984 is supported. */
  372. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC2190_MODE_B_ONLY = 20, /* The compressed video data is H.263 and RFC 2190 mode B will be used. */
  373. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC2190_MODE_A_ONLY = 21, /* The compressed video data is H.263 and RFC 2190 mode A will be used. */
  374. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC3984_MODE_1 = 30, /* The compressed video data is H.264 and RFC 3984 mode 1 will be used. */
  375. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC3984_STAP_A_ONLY = 31, /* The compressed video data is H.264 and RFC 3984 STAP A will be used. */
  376. M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC3984_FU_A_ONLY = 32, /* The compressed video data is H.264 and RFC 3984 FU A will be used. */
  377. }eM3G_VIDEO_RTP_PAYLOAD_ENCAP;
  378. #endif
  379. /*
  380. - eM3G_VIDEO_CODER constants defined the video coding standard.
  381. */
  382. #ifndef MAX_M3G_VIDEO_CODER
  383. #define MAX_M3G_VIDEO_CODER 5
  384. typedef enum {
  385. M3G_VICODER_MPEG4 = 0, /* Mpeg4 video encoding standard */
  386. M3G_VICODER_H263 = 1, /* H.263 video encoding standard, use M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC2190 */
  387. M3G_VICODER_H264 = 2, /* H.264 video encoding standard */
  388. M3G_VICODER_WMV9 = 3, /* WMV video encoding standard */
  389. M3G_VICODER_H263_PLUS = 4, /* H.263+ video encoding standard, use M3G_VIDEO_RTP_PAYLOAD_ENCAP_RFC2429 */
  390. }eM3G_VIDEO_CODER;
  391. #ifndef _UNDEFINE_g_SipSdpRtpMapForM3gVideo
  392. static ISXSIP_IE_SDP_RTP_MAP g_SipSdpRtpMapForM3gVideo[]=
  393. {
  394. {110, 90000, "MPEG4", "1"}, //0
  395. {34, 90000, "H263", "1"}, //1: 34
  396. {123, 90000, "H264", "1"}, //2: 123 or 124
  397. {112, 90000, "WMV9", "1"}, //3
  398. {115, 90000, "H263+", "1"}, //4: 115
  399. };
  400. #endif
  401. #endif
  402. /*
  403. * M3G_VIDEO_ENCODER->ProfileLevel:篇撞儿抹議Profile才Level
  404. */
  405. #ifndef MAX_M3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL
  406. #define MAX_M3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL 52
  407. typedef enum {
  408. M3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL0 = 0, /* MPEG4 Video profile: simple profile, level 0 */
  409. M3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL1 = 1, /* MPEG4 Video profile: simple profile, level 1 */
  410. M3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL2 = 2, /* MPEG4 Video profile: simple profile, level 2 */
  411. M3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL3 = 3, /* MPEG4 Video profile: simple profile, level 3 */
  412. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL1B = 9, /* H.264 video profile: Baselineprofile, level 1B */
  413. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL10 = 10, /* H.264 video profile:Baseline profile, level 10*/
  414. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL11 = 11, /* H.264 video profile:Baseline profile, level 11 */
  415. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL12 = 12, /* H.264 video profile:Baseline profile, level 12 */
  416. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL13 = 13, /* H.264 video profile:Baseline profile, level 13 */
  417. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL20 = 20, /* H.264 video profile:Baseline profile, level 20 */
  418. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL21 = 21, /* H.264 video profile:Baseline profile, level 21 */
  419. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL22 = 22, /* H.264 video profile:Baseline profile, level 22 */
  420. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL30 = 30, /* H.264 video profile:Baseline profile, level 30 */
  421. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL31 = 31, /* H.264 video profile:Baseline profile, level 31 */
  422. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL32 = 32, /* H.264 video profile:Baseline profile, level 32 */
  423. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL40 = 40, /* H.264 video profile:Baseline profile, level 40 */
  424. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL41 = 41, /* H.264 video profile:Baseline profile, level 41 */
  425. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL42 = 42, /* H.264 video profile:Baseline profile, level 42 */
  426. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL50 = 50, /* H.264 video profile:Baseline profile, level 50 */
  427. M3G_VIDEO_H264_BASELINE_PROFILE_LEVEL51 = 51, /* H.264 video profile:Baseline profile, level 51 */
  428. }eM3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL;
  429. #endif
  430. /*
  431. - eM3G_H324_AUDIO_CODEC constants defined the supported audio coding type of H324M, and One terminal
  432. can simultaneously support 4 different audio codecs.
  433. */
  434. #ifndef MAX_M3G_H324_AUDIO_CODEC
  435. #define MAX_M3G_H324_AUDIO_CODEC 3
  436. typedef enum {
  437. M3G_H324_AUDIO_CODEC_NONE = 0, /* Defines no audio codec */
  438. M3G_H324_AUDIO_CODEC_AMR = 1, /* Defines AMR-NB audio codec */
  439. M3G_H324_AUDIO_CODEC_G723 = 2, /* Defines G.723.1 audio codec */
  440. }eM3G_H324_AUDIO_CODEC;
  441. #endif
  442. /*
  443. - eM3G_H324_VIDEO_CODEC constants defined the supported video coding type of H324M, and one terminal
  444. can simultaneously support 4 different video codecs.
  445. */
  446. #ifndef MAX_M3G_H324_VIDEO_CODEC
  447. #define MAX_M3G_H324_VIDEO_CODEC 3
  448. typedef enum {
  449. M3G_H324_VIDEO_CODEC_NONE = 0, /* Defines no video codec */
  450. M3G_H324_VIDEO_CODEC_MPEG4 = 1, /* Defines MPEG-4 video codec */
  451. M3G_H324_VIDEO_CODEC_H263 = 2, /* Defines H.263 video codec */
  452. }eM3G_H324_VIDEO_CODEC;
  453. #endif
  454. /*
  455. - eM3G_FILE_TYPE constants defined the supported file format of audio/video files.
  456. */
  457. #ifndef MAX_M3G_FILE_TYPE
  458. #define MAX_M3G_FILE_TYPE 8
  459. typedef enum {
  460. M3G_FILE_TYPE_BIN = 1, /* Binary file format */
  461. M3G_FILE_TYPE_WAV = 2, /* WAV file format */
  462. M3G_FILE_TYPE_3GP = 3, /* 3GP file format */
  463. M3G_FILE_TYPE_MP4 = 4, /* MPEG4 file format */
  464. M3G_FILE_TYPE_AVI = 5, /* AVI file */
  465. M3G_FILE_TYPE_ASF = 6, /* ASF file format */
  466. M3G_FILE_TYPE_3G2 = 7, /* 3G2 file format */
  467. M3G_FILE_TYPE_AMR = 200,/* AMR file format and CoderType must be AMR type */
  468. }eM3G_FILE_TYPE;
  469. #endif
  470. #ifndef MAX_M3G_WAV_BLOCK_SIZE
  471. #define MAX_M3G_WAV_BLOCK_SIZE 6
  472. typedef enum {
  473. M3G_WAV_BLOCK_SIZE_5MS =0,
  474. M3G_WAV_BLOCK_SIZE_10MS =1,
  475. M3G_WAV_BLOCK_SIZE_20MS =3,
  476. M3G_WAV_BLOCK_SIZE_30MS =5,
  477. }eM3G_WAV_BLOCK_SIZE;
  478. #endif
  479. /*
  480. - eM3G_SAMPLE_TYPE constants defined the media sample type of the non-WAV
  481. file type (eM3G_FILE_TYPE) , such as BIN/3GP/MP4/AVI/ASF/3G2 type.
  482. */
  483. #ifndef MAX_M3G_SAMPLE_TYPE
  484. #define MAX_M3G_SAMPLE_TYPE 30
  485. typedef enum {
  486. M3G_SAMPLE_TYPE_AAC = 1, /* AAC Audio codec - currently is not supported */
  487. M3G_SAMPLE_TYPE_AAC_PLUS = 2, /* AAC Plus Audio codec - currently is not supported */
  488. M3G_SAMPLE_TYPE_AMR_NB = 3, /* Narrow-band AMR voice codec */
  489. M3G_SAMPLE_TYPE_AMR_WB = 4, /* Wide-band AMR voice codec */
  490. M3G_SAMPLE_TYPE_G711_A_LAW = 5, /* G.711 a-law voice codec */
  491. M3G_SAMPLE_TYPE_G711_MU_LAW = 6, /* G.711 mu-law voice codec */
  492. M3G_SAMPLE_TYPE_G7231 = 7, /* G.723 voice codec */
  493. M3G_SAMPLE_TYPE_G726_16 = 8, /* G.726-16 voice codec */
  494. M3G_SAMPLE_TYPE_G728 = 9, /* G.728 voice codec - currently is not supported */
  495. M3G_SAMPLE_TYPE_G729A = 10, /* G.729A voice codec */
  496. M3G_SAMPLE_TYPE_GSM_FR = 11, /* GSM-FR voice codec */
  497. M3G_SAMPLE_TYPE_GSM_EFR = 12, /* GSM-EFR voice codec */
  498. M3G_SAMPLE_TYPE_GSM_HR = 13, /* GSM-HR voice codec - currently is not supported */
  499. M3G_SAMPLE_TYPE_MPEG1_L2 = 14, /* MPEG1-L2 audio codec - currently is not supported */
  500. M3G_SAMPLE_TYPE_PCM = 15, /* PCM - linear voice data */
  501. M3G_SAMPLE_TYPE_H263 = 16, /* H.263 Video codec */
  502. M3G_SAMPLE_TYPE_H264 = 17, /* H.264 Video codec */
  503. M3G_SAMPLE_TYPE_MPEG4 = 18, /* MPEG-4 Video codec */
  504. M3G_SAMPLE_TYPE_YUV = 19, /* MPEG-4 Video codec */
  505. M3G_SAMPLE_TYPE_WMA = 20, /* WMA audio codec */
  506. M3G_SAMPLE_TYPE_WMV9 = 21, /* WMV9 video codec */
  507. M3G_SAMPLE_TYPE_G726_24 = 22, /* G.726-24 voice codec */
  508. M3G_SAMPLE_TYPE_G726_32 = 23, /* G.726-32 voice codec */
  509. M3G_SAMPLE_TYPE_G726_40 = 24, /* G.726-40 voice codec */
  510. M3G_SAMPLE_TYPE_WMA7 = 25, /* WMA v.7 audio codec */
  511. M3G_SAMPLE_TYPE_WMA9 = 26, /* WMA v.9 audio codec */
  512. M3G_SAMPLE_TYPE_WMAL = 27, /* WMA Losseless audio codec */
  513. M3G_SAMPLE_TYPE_G729D = 28, /* G.729D voice codec */
  514. M3G_SAMPLE_TYPE_G729E = 29, /* G.729E voice codec */
  515. }eM3G_SAMPLE_TYPE;
  516. #endif
  517. /*
  518. - eM3G_FILE_TIMING_SOURCE_SAMPLE constants defined the source of the timestamp of the non-WAV
  519. file type (eM3G_FILE_TYPE) ,such as BIN/3GP/MP4/AVI/ASF/3G2 type.
  520. */
  521. #ifndef MAX_M3G_FILE_TIMING_SOURCE_SAMPLE
  522. #define MAX_M3G_FILE_TIMING_SOURCE_SAMPLE 2
  523. typedef enum {
  524. M3G_FILE_TIMING_SOURCE_SAMPLE_TIMESTAMPS = 0, /* timestamp from RTP */
  525. M3G_FILE_TIMING_SOURCE_SAMPLE_HEADERS = 1, /* timestamp from video head */
  526. }eM3G_FILE_TIMING_SOURCE_SAMPLE;
  527. #endif
  528. /*
  529. - eM3G_TCS_STATUS constants defined the status of TCS (Terminal Capability set) negotiation.
  530. */
  531. #ifndef MAX_M3G_TCS_STATUS
  532. #define MAX_M3G_TCS_STATUS 7
  533. typedef enum {
  534. M3G_TCS_STATUS_NONE = 0, /* TCS initial status */
  535. M3G_TCS_STATUS_REQUEST = 1, /* Receive TCS request */
  536. M3G_TCS_STATUS_STARTED = 2, /* Send TCS */
  537. M3G_TCS_STATUS_RESOLVED = 3, /* Send TCS, and receive TCS of the other side */
  538. M3G_TCS_STATUS_RESOLVED_FINISHED = 4, /* TCS is completed and successful */
  539. M3G_TCS_STATUS_ERROR = 5, /* TCS is rejected or timeout */
  540. M3G_TCS_STATUS_IDLE = 6, /* Idle status */
  541. }eM3G_TCS_STATUS;
  542. #endif
  543. /*
  544. - eM3G_MISC_ID constants defined the command ID of Misc command.
  545. */
  546. #ifndef MAX_M3G_MISC_ID
  547. #define MAX_M3G_MISC_ID 8
  548. typedef enum {
  549. M3G_MISC_ID_VIDEO_FAST_UPDATE_PICTURE = 0,
  550. M3G_MISC_ID_VIDEO_FAST_UPDATE_GOB = 1,
  551. M3G_MISC_ID_VIDEO_FAST_UPDATE_MB = 2,
  552. M3G_MISC_ID_VIDEO_SEND_SYNC_EVERY_GOB = 3,
  553. M3G_MISC_ID_VIDEO_SEND_SYNC_EVERY_GOB_CANCEL = 4,
  554. M3G_MISC_ID_VIDEO_FREEZE_PICTURE = 5,
  555. M3G_MISC_ID_VIDEO_TEMPORAL_SPATIAL_TRADEOFF = 6,
  556. M3G_MISC_ID_SKEW_INDICATION = 7,
  557. }eM3G_MISC_ID;
  558. #endif
  559. /*
  560. - eM3G_LC_STATUS constants defined the status of LC (logical channel) negotiation of H324M.
  561. */
  562. #ifndef MAX_M3G_LC_STATUS
  563. #define MAX_M3G_LC_STATUS 7
  564. typedef enum {
  565. M3G_LC_STATUS_CREATED = 0, /* LC intiated status */
  566. M3G_LC_STATUS_REQUEST = 1, /* Ready to send OLC request */
  567. M3G_LC_STATUS_STARTED = 2, /* Have sent OLC request */
  568. M3G_LC_STATUS_RESOLVED = 3, /* Receive OLC request of the other side */
  569. M3G_LC_STATUS_RESOLVED_FINISHED = 4, /* OLC is completed and successful */
  570. M3G_LC_STATUS_ERROR = 5, /* OLC is rejected or timeout */
  571. M3G_LC_STATUS_IDLE = 6, /* Idle status */
  572. }eM3G_LC_STATUS;
  573. #endif
  574. /*
  575. - eM3G_CP_STATUS constants defined the call progress status of H324M calls.
  576. */
  577. #ifndef MAX_M3G_CP_STATUS
  578. #define MAX_M3G_CP_STATUS 6
  579. typedef enum {
  580. M3G_CP_STATUS_IDLE = 0, /* Call is in idle status*/
  581. M3G_CP_STATUS_INITIALIZING = 1, /* Call is started*/
  582. M3G_CP_STATUS_ACTIVING = 2, /* Link is established */
  583. M3G_CP_STATUS_ACTIVED = 3, /* MSD and TCS are completed*/
  584. M3G_CP_STATUS_DEACTIVING = 4, /* Call is stopped*/
  585. M3G_CP_STATUS_CLEAN_UP = 5, /* Call is cleared*/
  586. }eM3G_CP_STATUS;
  587. #endif
  588. /*
  589. - eM3G_H223_LINK_STATUS constants defined the H223 link status of H324M calls.
  590. */
  591. #ifndef MAX_M3G_H223_LINK_STATUS
  592. #define MAX_M3G_H223_LINK_STATUS 5
  593. typedef enum {
  594. M3G_H223_LINK_STATUS_NONE = 0, /* Link initial status */
  595. M3G_H223_LINK_STATUS_SYNCHROZING = 1, /* Link is in synchronization */
  596. M3G_H223_LINK_STATUS_CONNECTED = 2, /* Link synchronization is successful */
  597. M3G_H223_LINK_STATUS_ERROR = 3, /* Link synchronization is unsuccessful*/
  598. M3G_H223_LINK_STATUS_IDLE = 4, /* Link idle status*/
  599. }eM3G_H223_LINK_STATUS;
  600. #endif
  601. /*
  602. - eM3G_MSD_STATUS constants defined the MSD status of MSD negotiation.
  603. */
  604. #ifndef MAX_M3G_MSD_STATUS
  605. #define MAX_M3G_MSD_STATUS 7
  606. typedef enum {
  607. M3G_MSD_STATUS_NONE = 0, /* MSD initial status */
  608. M3G_MSD_STATUS_REQUEST = 1, /* Receive MSD request*/
  609. M3G_MSD_STATUS_STARTED = 2, /* Send MSD*/
  610. M3G_MSD_STATUS_RESOLVED = 3, /* MSD Send MSD, and receive MSD of the other side */
  611. M3G_MSD_STATUS_RESOLVED_FINISHED = 4, /* MSD is completed and successful*/
  612. M3G_MSD_STATUS_ERROR = 5, /* MSD is rejected or timeout*/
  613. M3G_MSD_STATUS_IDLE = 6, /* Idle status*/
  614. }eM3G_MSD_STATUS;
  615. #endif
  616. /*
  617. - eM3G_BRD_CONN_STATUS constants defined the connection status between the M3G board from M3GC server.
  618. */
  619. #ifndef MAX_M3G_BRD_CONN_STATUS
  620. #define MAX_M3G_BRD_CONN_STATUS 4
  621. typedef enum {
  622. M3G_BRD_CONN_STATUS_DEACTIVE = 0, /* Deactive status*/
  623. M3G_BRD_CONN_STATUS_ACTIVE_DISCONNED = 1, /* Active status+Disconned status*/
  624. M3G_BRD_CONN_STATUS_ACTIVE_CONNECTED = 2, /* Active status+Connected status */
  625. M3G_BRD_CONN_STATUS_DELETING = 3 /* deleting status */
  626. }eM3G_BRD_CONN_STATUS;
  627. #endif
  628. /*
  629. - eM3G_DATA_DIR constants defined the data direction of playing/recording audio and video.
  630. */
  631. #ifndef MAX_M3G_DATA_DIR
  632. #define MAX_M3G_DATA_DIR 3
  633. typedef enum
  634. {
  635. M3G_DATA_DIR_AFTER_ENCODEC = 0x00, // After encoder
  636. M3G_DATA_DIR_BEFORE_DECODEC = 0x01, //Before decoder
  637. M3G_DATA_DIR_TOIP = M3G_DATA_DIR_AFTER_ENCODEC, //data to IP side, same as after encoder
  638. M3G_DATA_DIR_FROMIP = M3G_DATA_DIR_BEFORE_DECODEC, //data from IP side, same as before decoder
  639. M3G_DATA_DIR_TDM = M3G_DATA_DIR_TOIP, //Only for H324M channel
  640. M3G_DATA_DIR_IP = M3G_DATA_DIR_FROMIP //Compatible with the old version
  641. }eM3G_DATA_DIR;
  642. #endif
  643. /*
  644. - eM3G_VIDEO_TRANSPORT_TYPE constants defined the video transport type.
  645. */
  646. #ifndef MAX_M3G_VIDEO_TRANSPORT_TYPE
  647. #define MAX_M3G_VIDEO_TRANSPORT_TYPE 3
  648. typedef enum
  649. {
  650. M3G_VIDEO_TRANSPORT_TYPE_STREAMING = 0, /* Streaming files from host to dsp and vice versa
  651. through a reliable (proprietary) socket connection */
  652. M3G_VIDEO_TRANSPORT_TYPE_IP = 1, /* Ip packets through UDP socket connection */
  653. M3G_VIDEO_TRANSPORT_TYPE_H223 = 2 /* UDP packets from the H.223 channel */
  654. }eM3G_VIDEO_TRANSPORT_TYPE;
  655. #endif
  656. /*
  657. - eM3G_MEDIA_CHAN_OPMODE constants defined the operation type of media channel.
  658. */
  659. #ifndef MAX_M3G_MEDIA_CHAN_OPMODE
  660. #define MAX_M3G_MEDIA_CHAN_OPMODE 3
  661. typedef enum {
  662. M3G_MEDIA_CHAN_OPMODE_NONE = 0, //no operation
  663. M3G_MEDIA_CHAN_OPMODE_PASS_THROUGH = 1, //pass through mode
  664. M3G_MEDIA_CHAN_OPMODE_TRANSCODE = 2, //transcode mode
  665. }eM3G_MEDIA_CHAN_OPMODE;
  666. #endif
  667. //////////////////////////////////////////////////////////////////////////
  668. //struct
  669. #pragma pack(1)
  670. /************************************************************************/
  671. /* Voice type channel parameter */
  672. /************************************************************************/
  673. typedef struct tagM3G_VOICE_CODER{
  674. UCHAR ucValid; //the structure valid flag
  675. UCHAR ucVoCoder; //voice encoder type
  676. UCHAR ucPayloadType; //Payload type
  677. UCHAR ucCNG; //CNG of the decoder;
  678. UCHAR ucPLC; //PLC of the decoder;
  679. } M3G_VOICE_CODER;
  680. typedef struct tagM3G_VOICE_ATTR_CONFIG{
  681. M3G_VOICE_CODER VoEnCoder; //Encoder configuration
  682. M3G_VOICE_CODER VoDeCoder; //Decoder configuration
  683. VoiceConfig_PayloadSize PayloadSize; //Payload size
  684. VoiceConfig_SilenceSuppress SilenceSuppress; //Silence suppression
  685. VoiceConfig_EchoCancel EchoCancel; //Echo cancellation
  686. VoiceConfig_JitterBufferDelay MinJitterBuffer; //Minimum Jitter buffer delay
  687. VoiceConfig_JitterBufferDelay MaxJitterBuffer; //Maximum Jitter buffer delay
  688. VoiceConfig_AdaptationRate AdaptationRate; //Jitter buffer adaptation rate
  689. } M3G_VOICE_ATTR_CONFIG;
  690. typedef struct tagM3G_CHAN_TYPE_VOICE_PARAM{
  691. IpConfig_IP_addr SrcIpAddr; //source RTP IP address.
  692. IpConfig_UdpPort SrcRtpPort; //source RTP port.
  693. IpConfig_IP_addr DstIpAddr; //destination RTP IP address.
  694. IpConfig_UdpPort DstRtpPort; //destination RTP port.
  695. IpConfig_UdpPort SrcRTCPPort; //source RTCP port.
  696. IpConfig_UdpPort DstRTCPPort; //destination RTCP port.
  697. UCHAR ucConnMode; //Connection mode, Please refer to eCONN_MODE
  698. UCHAR ucVoiceMode; //Working mode of voice channel,Please refer to eM3G_VOICE_MODE
  699. M3G_VOICE_ATTR_CONFIG VoiceCfg; //Voice configuration
  700. DtmfConfig DtmfCfg; //DTMF configuration
  701. } M3G_CHAN_TYPE_VOICE_PARAM;
  702. /************************************************************************/
  703. /* Video type channel parameter */
  704. /************************************************************************/
  705. typedef struct tagM3G_VIDEO_RTP{
  706. UCHAR ucRtpPayloadType; //RTP payload type
  707. UINT ulRtpPayloadEncap; //Encapsulation type of RTP compressed video data, refer to eM3G_VIDEO_RTP_PAYLOAD_ENCAP
  708. USHORT usSrcUdpPort; //RTP source port number
  709. } M3G_VIDEO_RTP;
  710. typedef struct tagM3G_VIDEO_RTCP{
  711. UCHAR ucValid; //the structure valid flag
  712. USHORT usSrcUdpPort; //Source port number
  713. USHORT usDstUdpPort; //Destination port number
  714. CHAR DstIpAddr[EHANG_MAX_IP_LEN];//Destination IP address
  715. } M3G_VIDEO_RTCP;
  716. typedef struct tagM3G_VIDEO_INPUT{
  717. UCHAR ucValid; //the structure valid flag
  718. UCHAR ucIsEnable; //the video input module enable flag
  719. UCHAR ucTransportType;//Please refer to eM3G_VIDEO_TRANSPORT_TYPE
  720. M3G_VIDEO_RTP Rtp; //RTP attributes
  721. M3G_VIDEO_RTCP Rtcp; //RTCP attributes
  722. } M3G_VIDEO_INPUT;
  723. typedef struct tagM3G_VIDEO_DECODER{
  724. UCHAR ucValid; //the structure valid flag
  725. UCHAR ucIsEnable; //the decoder module enable flag
  726. UINT ulCodingStandard; //Coding standard, refer to eM3G_VIDEO_CODER
  727. UINT ulInputHeight; //Input height. range: 16~288, must be a multiple of 16.
  728. UINT ulInputWidth; //Input width. range: 16~352, must be a multiple of 16.
  729. UINT ulOutputHeight; //Output height (YUV). range: 48~576, must be a multiple of 16.
  730. UINT ulOutputWidth; //Output width (YUV). range: 48~720, must be a multiple of 16.
  731. UINT ulFramesPerSec; //FPS: frames per second. range: 4~30.
  732. UINT ulDeblocking_smoth; //Smoothness between blocks. range: 0~0x7FFF. 0 means that there is no such function.
  733. UINT ulDeblocking_strength; //Block boundary strength. range: 0~0x7FFF. 0 means that there is no such function.
  734. UINT ulReferFrames; //The maximum number of reference frames (reserved for H.264). range: 0~11.
  735. } M3G_VIDEO_DECODER;
  736. typedef struct tagM3G_VIDEO_ENCODER{
  737. UCHAR ucValid; //the structure valid flag
  738. UCHAR ucIsEnable; //the decoder module enable flag
  739. UINT ulCodingStandard; //Coding standard, refer to eM3G_VIDEO_CODER
  740. UINT ulProfileLevel; //Please refer to eM3G_VIDEO_MPEG4_SIMPLE_PROFILE_LEVEL
  741. UINT ulInputHeight; //Input height (YUV). range: 16~576.
  742. UINT ulInputWidth; //Input width (YUV). range: 16~720.
  743. UINT ulFramesPerSec; //FPS: frames per second. range: 4~30.
  744. UINT ulBitRate; /* Compressed Bit rate. The following must be met:
  745. If the output resolution is CIF or above, BitRate> = 8000 * FPS;
  746. otherwise, BitRate> = 2000 * FPS. (FPS: frames per second).*/
  747. UCHAR ucIsVariableBitRate; //Whether is the variable bit rate 0: no or 1: yes.
  748. UINT ulVbrQualityMin; //Quality minimum of VBR compression. range: 0~0x7FFF.
  749. UINT ulVbrQualityMax; //Quality maximum of VBR compression. range: 0~0x7FFF.
  750. UINT ulIFrameFrequency; //I frame frequency. Default value: 99.
  751. } M3G_VIDEO_ENCODER;
  752. typedef struct tagM3G_VIDEO_DEST_ITEM{
  753. CHAR DstIpAddr[EHANG_MAX_IP_LEN]; //RTP destination IP
  754. USHORT usDstUdpPort; //RTP destination UDP port
  755. CHAR DstRtcpIpAddr[EHANG_MAX_IP_LEN]; //If there is no RTCP, it will be NULL string.
  756. USHORT usDstRtcpUdpPort; //If there is no RTCP, it will be 0.
  757. } M3G_VIDEO_DEST_ITEM;
  758. #define MAX_VIDEO_DEST_ITEM 16
  759. typedef struct tagM3G_VIDEO_DEST{
  760. UCHAR ucDestNum; //At most 16 destinations can be 0.
  761. M3G_VIDEO_DEST_ITEM DestItem[MAX_VIDEO_DEST_ITEM];
  762. } M3G_VIDEO_DEST;
  763. typedef struct tagM3G_VIDEO_OUTPUT{
  764. UCHAR ucValid; //The structure valid flag
  765. UCHAR ucIsEnable; //The output module enable flag
  766. UCHAR ucTransportType;//Please refer to eM3G_VIDEO_TRANSPORT_TYPE
  767. M3G_VIDEO_RTP Rtp; //VIDEO output RTP attributes
  768. M3G_VIDEO_RTCP Rtcp; //output RTCP attributes
  769. M3G_VIDEO_DEST Dest; //output destinations
  770. } M3G_VIDEO_OUTPUT;
  771. typedef struct tagM3G_CHAN_TYPE_VIDEO_PARAM{
  772. M3G_VIDEO_INPUT VideoInput; // Input module attributes
  773. M3G_VIDEO_DECODER VideoDecoder; // Decode module attributes
  774. M3G_VIDEO_ENCODER VideoEncoder; // encode module attributes
  775. M3G_VIDEO_OUTPUT VideoOutput; // Output module attributes
  776. } M3G_CHAN_TYPE_VIDEO_PARAM;
  777. /************************************************************************/
  778. /* 3G-324M type channel parameter */
  779. /************************************************************************/
  780. typedef struct tagM3G_TERM_CAPS{
  781. UCHAR ucValid; //The structure valid flag
  782. UCHAR ucAudioCodes[4]; //Simultaneously supported audio encoding type, refer to eM3G_H324_AUDIO_CODEC
  783. UCHAR ucVideoCodes[4]; //Simultaneously supported video encoding type, refer to eM3G_H324_VIDEO_CODEC
  784. UCHAR ucDtmfSignal[2]; /*Simultaneously supported DTMF transport type, 0: no or 1: yes.
  785. ucDtmfSignal[0] indicates whether to support the string mode to send DTMF;
  786. ucDtmfSignal[1] indicates whether to support the single send.
  787. */
  788. } M3G_TERM_CAPS;
  789. typedef struct tagM3G_H223_PARAMS{
  790. UCHAR ucValid; //The structure valid flag
  791. UINT ulAl2WithSeqNumberAudio; //The audio with or without sequence number, 0: no or 1: yes.
  792. UINT ulAl2WitchSeqNumberVideo; //The video with or without sequence number, 0: no or 1: yes.
  793. UINT ulMaxPdu; //The maximum PDU length supported by the local terminal. Default value: 160.
  794. } M3G_H223_PARAMS;
  795. typedef struct tagM3G_MEDIA_CHAN{
  796. UCHAR ucValid; //The structure valid flag
  797. UCHAR ucRtpPayloadType; //RTP Payload type
  798. USHORT usSrcUdpPort; //Source UDP port
  799. USHORT usDstUdpPort; //Destination UDP port
  800. CHAR DstIpAddr[EHANG_MAX_IP_LEN]; //Destination IP address
  801. UINT ulCodec; /* Codec type of audio/video;
  802. if the media type is audio, refer to eM3G_H324_AUDIO_CODEC;
  803. if the media type is video, refer to eM3G_H324_VIDEO_CODEC.
  804. */
  805. UCHAR ucIsMuted; //mute flag, 0: no or 1: yes.
  806. } M3G_MEDIA_CHAN;
  807. typedef struct tagM3G_CHAN_TYPE_H324M_PARAM{
  808. UCHAR ucTermType; //Terminal type, range: 0~255
  809. M3G_TERM_CAPS LocalCaps; //Local TCS
  810. M3G_H223_PARAMS H223Params; //H.223 parameters
  811. M3G_MEDIA_CHAN MediaChan[MAX_H324M_LC_NUM];
  812. /*
  813. Please refer to M3G_MEDIA_CHAN for the valid value of media configuration of
  814. logic channels, in which:
  815. MediaChan[0] for the video output logical channel.
  816. MediaChan[1] for the audio output logical channel.
  817. MediaChan[2] for the video input logical channel.
  818. MediaChan[3] for the audio input logical channel.
  819. */
  820. } M3G_CHAN_TYPE_H324M_PARAM;
  821. /************************************************************************/
  822. /* Audio type channel parameter */
  823. /************************************************************************/
  824. /* ucRtpMode: RTP/RTCP mode Define */
  825. #ifndef MAX_M3G_AUDIO_RTP_MODE
  826. #define MAX_M3G_AUDIO_RTP_MODE 2
  827. typedef enum {
  828. M3G_AUDIO_RTP_MODE_END_SYSTEM = 0, /* RTP/RTCP Mode is endpoint Sytetem*/
  829. M3G_AUDIO_RTP_MODE_TRANSLATOR = 1, /* RTP/RTCP Mode is translate module,RTP param willbe translate */
  830. }eM3G_AUDIO_RTP_MODE;
  831. #endif
  832. typedef struct tagM3G_AUDIO_RTP{
  833. UCHAR ucPayloadType; /* payload Type */
  834. UCHAR ucRtpMode; /* RTP/RTCP mode, Reference eM3G_AUDIO_RTP_MODE*/
  835. USHORT usConjugatedChanNo; /* no used */
  836. UINT ulTsTicksPerSecond; /* The Frequency of the timestamp.The incoming timestamp frequency�Can not set to 0*/
  837. USHORT usSrcUdpPort; /* Local UDP Port */
  838. USHORT usDestUdpPort; /* Remote Port */
  839. CHAR szDestIPAddr[EHANG_MAX_IP_LEN]; /* Remote IP Address */
  840. } M3G_AUDIO_RTP;
  841. /* M3G_AUDIO_INPUT_JB.ucType: Jitter buffer types Define */
  842. #ifndef MAX_M3G_AUDIO_JB_TYPE
  843. #define MAX_M3G_AUDIO_JB_TYPE 3
  844. typedef enum {
  845. M3G_AUDIO_JB_TYPE_REORDER = 0, /* Reorder jitter buffer(Reordering JB) */
  846. M3G_AUDIO_JB_TYPE_ADAPTIVE = 1, /* Adaptive jitter buffer(Adaptive JB) */
  847. M3G_AUDIO_JB_TYPE_FIXED = 2, /* Fixed jitter buffer(Fixed JB) */
  848. }eM3G_AUDIO_JB_TYPE;
  849. #endif
  850. typedef struct tagM3G_AUDIO_INPUT_JB{
  851. UCHAR ucType; /*Jitter buffer type�Reference eM3G_AUDIO_JB_TYPE*/
  852. UINT ulSize;
  853. UINT ulAverageDelayInMS;
  854. UINT ulPacketLossTimeout;
  855. } M3G_AUDIO_INPUT_JB;
  856. /* M3G_AUDIO_RTCP.ucRtcpHandleType: RTCP statistics approach */
  857. #ifndef MAX_M3G_AUDIO_HANDLE
  858. #define MAX_M3G_AUDIO_HANDLE 4
  859. typedef enum {
  860. M3G_AUDIO_RTCP_HANDLE_DONT_SEND = 0,
  861. M3G_AUDIO_RTCP_HANDLE_SENT_TO_HOST_PERIOD = 1,
  862. M3G_AUDIO_RTCP_HANDLE_SEND_TO_NET_PERIOD = 2,
  863. M3G_AUDIO_RTCP_HANDLE_SEND_TO_BOTH_PERIOD = 3,
  864. }eM3G_AUDIO_RTCP_HANDLE;
  865. #endif
  866. typedef struct tagM3G_AUDIO_RTCP{
  867. UCHAR ucEnable; /* Input RTCP Module is activated sigs */
  868. UCHAR ucRecvRtcp; /* RTCP is a sign of receiving */
  869. UCHAR ucRtcpHandleType; /* RTCP statistics approach */
  870. UINT ulReportInterval; /* RTCP Report Perioad. unit :second */
  871. USHORT usSrcUdpPort; /* Local UDP Port */
  872. USHORT usDestUdpPort; /* Remote Port */
  873. CHAR szDestIPAddr[EHANG_MAX_IP_LEN]; /* Remote IP ADDRESS */
  874. } M3G_AUDIO_RTCP;
  875. /* RFC types DEFINE */
  876. #ifndef MAX_M3G_AUDIO_RFC_TYPE
  877. #define MAX_M3G_AUDIO_RFC_TYPE 2
  878. typedef enum {
  879. M3G_AUDIO_RFC_TYPE_NONE = 0, /* Does not follow the RFC Specification */
  880. M3G_AUDIO_RFC_TYPE_3016_AAC = 1, /* Follow the RFC Specification(Play/Record files Can not use this specification)*/
  881. }eM3G_AUDIO_RFC_TYPE;
  882. #endif
  883. /* TransPort TYPE:ucTransportType defint below:*/
  884. #ifndef MAX_M3G_AUDIO_TRANSPORT_TYPES
  885. #define MAX_M3G_AUDIO_TRANSPORT_TYPES 3
  886. typedef enum {
  887. M3G_AUDIO_TRANSPORT_TYPE_STREAMING = 0, /* Type of record/play files*/
  888. M3G_AUDIO_TRANSPORT_TYPE_IP = 1, /* IP packets through UDP socket connection */
  889. M3G_AUDIO_TRANSPORT_TYPE_H223 = 2, /* UDP packets from the H.223 channel */
  890. }eM3G_AUDIO_TRANSPORT_TYPE;
  891. #endif
  892. /* Sampling Rate Define */
  893. typedef enum {
  894. M3G_AUDIO_SAMPLING_RATE_96000 = 96000,
  895. M3G_AUDIO_SAMPLING_RATE_88200 = 88200,
  896. M3G_AUDIO_SAMPLING_RATE_64000 = 64000,
  897. M3G_AUDIO_SAMPLING_RATE_48000 = 48000,
  898. M3G_AUDIO_SAMPLING_RATE_44100 = 44100,
  899. M3G_AUDIO_SAMPLING_RATE_32000 = 32000,
  900. M3G_AUDIO_SAMPLING_RATE_24000 = 24000,
  901. M3G_AUDIO_SAMPLING_RATE_22050 = 22050,
  902. M3G_AUDIO_SAMPLING_RATE_16000 = 16000,
  903. M3G_AUDIO_SAMPLING_RATE_12000 = 12000,
  904. M3G_AUDIO_SAMPLING_RATE_11025 = 11025,
  905. M3G_AUDIO_SAMPLING_RATE_8000 = 8000,
  906. M3G_AUDIO_SAMPLING_RATE_NONE = 0
  907. }eM3G_AUDIO_SAMPLING_RATE;
  908. #ifndef MAX_M3G_AUDIO_CHANNEL_CONF
  909. #define MAX_M3G_AUDIO_CHANNEL_CONF 3
  910. typedef enum {
  911. M3G_AUDIO_CHANNEL_CONF_NONE = 0, /* not used .no Voice Channel*/
  912. M3G_AUDIO_CHANNEL_CONF_MONO = 1, /* Single Voice Channel�Mono (1 channel) */
  913. M3G_AUDIO_CHANNEL_CONF_STEREO = 2, /* Stereo Voice Channel�Stereo (2 channels) */
  914. }eM3G_AUDIO_CHANNEL_CONF;
  915. #endif
  916. /*Audio INPUT struct is below:*/
  917. typedef struct tagM3G_AUDIO_INPUT{
  918. UCHAR ucValid; /* sign of validity of the this struct */
  919. UCHAR ucEnable; /* sign of the AUDIO Channel INPUT is Enable. */
  920. UCHAR ucTransportType; /* Transport TYEP: IP/H223 , Reference eM3G_AUDIO_TRANSPORT_TYPE*/
  921. UCHAR ucRfcType; /* Rfc TYPE, Reference eM3G_AUDIO_RFC_TYPE */
  922. UCHAR ucTrackNum; /* AUDIO number of the Channels:Single or stereo ,Reference eM3G_AUDIO_CHANNEL_CONF */
  923. UINT ulSampleRate; /* Reference eM3G_AUDIO_SAMPLING_RATE */
  924. M3G_AUDIO_RTP RTP; /* RTP parameter */
  925. M3G_AUDIO_INPUT_JB JB; /* Jitter buffer Parameter */
  926. M3G_AUDIO_RTCP RTCP; /* RTCP Parameter */
  927. } M3G_AUDIO_INPUT;
  928. /* Codec type define */
  929. #ifndef MAX_M3G_AUDIO_CODEC_TYPE
  930. #define MAX_M3G_AUDIO_CODEC_TYPE 2
  931. typedef enum {
  932. M3G_AUDIO_CODEC_TYPE_L16 = 0,
  933. M3G_AUDIO_CODEC_TYPE_AAC = 1,
  934. }eM3G_AUDIO_CODEC_TYPE;
  935. #endif
  936. typedef struct tagM3G_AUDIO_DECODER{
  937. UCHAR ucValid; /* sign of the validity of the this struct */
  938. UCHAR ucEnable; /* sign of the Decoder Module is Enable */
  939. UCHAR ucCodecType; /* Reference eM3G_AUDIO_CODEC_TYPE */
  940. UCHAR ucTrackNum; /* Reference eM3G_AUDIO_CHANNEL_CONF */
  941. UINT ulSampleRate; /* Reference eM3G_AUDIO_SAMPLING_RATE */
  942. } M3G_AUDIO_DECODER;
  943. /* Audio re-sampling of the types defined in the computational complexity */
  944. #ifndef MAX_M3G_AUDIO_COMPLEXITY
  945. #define MAX_M3G_AUDIO_COMPLEXITY 3
  946. typedef enum {
  947. M3G_AUDIO_COMPLEXITY_LOW = 0,
  948. M3G_AUDIO_COMPLEXITY_MEDIUM = 1,
  949. M3G_AUDIO_COMPLEXITY_HIGH = 2,
  950. }eM3G_AUDIO_COMPLEXITY;
  951. #endif
  952. /* ToolBox Changing the sampling rate parameters */
  953. typedef struct tagM3G_AUDIO_TOOLBOX_RESAMPLE{
  954. UINT ulNewSampleRate; /* Reference eM3G_AUDIO_SAMPLING_RATE */
  955. UCHAR ucComplexity; /* Reference eM3G_AUDIO_COMPLEXITY */
  956. }M3G_AUDIO_TOOLBOX_RESAMPLE;
  957. /* Toolbox Changing the voice Channels Number parameters*/
  958. typedef struct tagM3G_AUDIO_TOOLBOX_TRACK_CONF{
  959. UCHAR ucNewTrackNum; /* Reference eM3G_AUDIO_CHANNEL_CONF */
  960. } M3G_AUDIO_TOOLBOX_TRACK_CONF;
  961. /* Toolbox type define */
  962. #ifndef MAX_M3G_AUDIO_TOOL_TYPE
  963. #define MAX_M3G_AUDIO_TOOL_TYPE 2
  964. typedef enum {
  965. M3G_AUDIO_TOOL_TYPE_RESAMPLING = 0, /* Resampling */
  966. M3G_AUDIO_TOOL_TYPE_TRACK_CONF = 1 /* Changing number of the channels */
  967. }eM3G_AUDIO_TOOL_TYPE;
  968. #endif
  969. /* Audio toolbox direction define */
  970. typedef enum {
  971. M3G_AUDIO_TOOL_DIRECTION_FROM_DECODER = 0,
  972. M3G_AUDIO_TOOL_DIRECTION_FROM_TOOLBOX_INPUT = 1,
  973. M3G_AUDIO_TOOL_DIRECTION_BOTH = 2
  974. }eM3G_AUDIO_TOOL_DIRECTION;
  975. /* ToolBox Convert the structure of items */
  976. typedef struct tagM3G_AUDIO_TOOLBOX_ITEM{
  977. UCHAR ucType; /* Reference :eM3G_AUDIO_TOOL_TYPE */
  978. UCHAR ucDirection; /* Reference :eM3G_AUDIO_TOOL_DIRECTION */
  979. UCHAR ucInTrackNum; /* Reference :eM3G_AUDIO_CHANNEL_CONF */
  980. UINT ulInSampleRate; /*Reference :eM3G_AUDIO_SAMPLING_RATE */
  981. union { /* Parameters associated with the type of operation */
  982. M3G_AUDIO_TOOLBOX_RESAMPLE Resample; /* Resampling */
  983. M3G_AUDIO_TOOLBOX_TRACK_CONF TrackConf; /* Changing number of the channles */
  984. } u;
  985. } M3G_AUDIO_TOOLBOX_ITEM;
  986. /* ToolBox structure define.ToolBox Currently doing two conversion�Resampling and change the number of channels�*/
  987. #define M3G_AUDIO_TOOLBOX_ITEM_NUM 8
  988. typedef struct tagM3G_AUDIO_TOOLBOX{
  989. UCHAR ucValid; /* sign of the validity of this structure*/
  990. UCHAR ucToolBoxNum; /* Toolbox number of Convert items.MAX 8 Items */
  991. M3G_AUDIO_TOOLBOX_ITEM Item[M3G_AUDIO_TOOLBOX_ITEM_NUM];
  992. } M3G_AUDIO_TOOLBOX;
  993. /* Encoding bit rate control type */
  994. #ifndef MAX_M3G_AUDIO_BITRATE_VARIABLE
  995. #define MAX_M3G_AUDIO_BITRATE_VARIABLE 3
  996. typedef enum {
  997. M3G_AUDIO_BITRATE_VARIABLE_CBR = 0, /* Constant bit rate */
  998. M3G_AUDIO_BITRATE_VARIABLE_VBR = 1, /* Variable bit rate */
  999. M3G_AUDIO_BITRATE_VARIABLE_ABR = 2 /* Average bit rate */
  1000. }eM3G_AUDIO_BITRATE_VARIABLE;
  1001. #endif
  1002. /* decode structure define:*/
  1003. typedef struct tagM3G_AUDIO_ENCODER{
  1004. UCHAR ucValid; /* sign of the validity of this structure*/
  1005. UCHAR ucEnable; /* sign of the Enable of the decode module*/
  1006. UCHAR ucCodecType; /* Reference eM3G_AUDIO_CODEC_TYPE */
  1007. UCHAR ucBitRateType; /* Reference eM3G_AUDIO_BITRATE_VARIABLE */
  1008. UINT ulBitRate; /* decoding bit rate */
  1009. UCHAR ucTrackNum; /* Reference eM3G_AUDIO_CHANNEL_CONF */
  1010. UINT ulSampleRate; /* Reference eM3G_AUDIO_SAMPLING_RATE */
  1011. } M3G_AUDIO_ENCODER;
  1012. /* Audio Channel output target defined */
  1013. typedef struct tagM3G_AUDIO_OUTPUT_DEST{
  1014. UCHAR ucTransportType; /* Reference:eM3G_AUDIO_TRANSPORT_TYPE */
  1015. UCHAR ucRfcType; /* Reference:eM3G_AUDIO_RFC_TYPE */
  1016. M3G_AUDIO_RTP RTP; /* RTP Parameters */
  1017. M3G_AUDIO_RTCP RTCP; /* RTCP Parameters */
  1018. } M3G_AUDIO_OUTPUT_DEST;
  1019. /*OUTPUT Strucrure Define:*/
  1020. #define MAX_M3G_AUDIO_OUTPUT_DEST_NUM 7
  1021. typedef struct tagM3G_AUDIO_OUTPUT{
  1022. UCHAR ucValid; /* sign of the validity this structure*/
  1023. UCHAR ucDestNum; /* Dest numbers�MAX 7 Dest */
  1024. M3G_AUDIO_OUTPUT_DEST Dest[MAX_M3G_AUDIO_OUTPUT_DEST_NUM]; /* Dest information,variable-length structure */
  1025. } M3G_AUDIO_OUTPUT;
  1026. /* Audio channels configure paramters is below:*/
  1027. typedef struct tagM3G_CHAN_TYPE_AUDIO_PARAM{
  1028. M3G_AUDIO_INPUT Input; /*input module parameters*/
  1029. M3G_AUDIO_DECODER Decoder; /*decoder module parameters*/
  1030. M3G_AUDIO_TOOLBOX ToolBox; /*ToolBox module parameters*/
  1031. M3G_AUDIO_ENCODER Encoder; /*Encoder module parameters*/
  1032. M3G_AUDIO_OUTPUT Output; /*output module parameters*/
  1033. }M3G_CHAN_TYPE_AUDIO_PARAM;
  1034. /*
  1035. * M3G channel parameters
  1036. */
  1037. typedef struct tagM3G_CHAN_PARAM {
  1038. UCHAR ucChanType; //M3G channels type�Rms reference eM3G_CHAN_TYPE
  1039. union {
  1040. M3G_CHAN_TYPE_VOICE_PARAM voice; //voice channel parameters
  1041. M3G_CHAN_TYPE_VIDEO_PARAM video; //video channel parameters
  1042. M3G_CHAN_TYPE_H324M_PARAM h324m; //H324M channel parameters
  1043. M3G_CHAN_TYPE_AUDIO_PARAM audio; //Audio channel parameters
  1044. };
  1045. }M3G_CHAN_PARAM, *PM3G_CHAN_PARAM;
  1046. /*
  1047. * Play video and audio expansion of information, only when playing audio and video need to use
  1048. */
  1049. typedef struct tagM3G_CHAN_EXINFO{
  1050. UCHAR ucValid; //0:Invalid; 1:uVoiceRelated; 2:uH324mRelated
  1051. union{
  1052. struct { //Only valid for voice channels
  1053. M3GDEV VideoDev; //Audio and video while playing video channel device handle
  1054. }uVoiceRelated;
  1055. struct { //only valid for H324M channel
  1056. UCHAR ucAudioMode; //0 no oper ; 1 pass through ;2 transcode,Reference eM3G_MEDIA_CHAN_OPMODE
  1057. M3GDEV AudioDev; //voice Transcode channel handle�only valid for ucAudioMode=2
  1058. UCHAR ucVideoMode; //0 no oper ; 1 pass through ;2 transcode,Reference eM3G_MEDIA_CHAN_OPMODE
  1059. M3GDEV VideoDev; //Video Transcode channel handle�only valid for ucVideoMode=2
  1060. }uH324mRelated;
  1061. };
  1062. }M3G_CHAN_EXINFO, *PM3G_CHAN_EXINFO;
  1063. /*
  1064. * while files type is M3G_FILE_TYPE_BIN�parameters structure is below:
  1065. */
  1066. typedef struct tagM3G_FILE_BIN_PARAMS{
  1067. UINT FragmentSize; /* Byte number of one packet while SURF encoder or decoder*/
  1068. } M3G_FILE_BIN_PARAMS, M3G_FILE_AMR_PARAMS;
  1069. /*
  1070. * while files type is M3G_FILE_TYPE_WAV�parameters structure is below:
  1071. */
  1072. typedef struct tagM3G_FILE_WAV_PARAMS{
  1073. UINT ulCoder; /* Reference eM3G_VOICE_CODER*/
  1074. UINT ulBlockSize; /* Length of the Data module ,Reference eM3G_WAV_BLOCK_SIZE */
  1075. } M3G_FILE_WAV_PARAMS;
  1076. /*
  1077. * While files type is not M3G_FILE_TYPE_WAV�parameters structure is below:
  1078. */
  1079. typedef struct tagM3G_FILE_AV_PLAY_TRACK_PARAM{
  1080. UCHAR ucSampleType; /* Reference :eM3G_SAMPLE_TYPE */
  1081. UCHAR ucTimeStampSource; /* Reference :eM3G_FILE_TIMING_SOURCE_SAMPLE */
  1082. USHORT usFPS; /* frame per second�1 ~ 30 */
  1083. } M3G_FILE_AV_PLAY_TRACK_PARAM;
  1084. #define MAX_TRACK_NUM 2
  1085. typedef struct tagM3G_FILE_AV_PLAY_PARAMS{
  1086. UCHAR ucTrackNum; /* Track the number of media files,value range is 0~1 */
  1087. M3G_FILE_AV_PLAY_TRACK_PARAM TrackParam[MAX_TRACK_NUM]; /* Media Information trajectories */
  1088. } M3G_FILE_AV_PLAY_PARAMS;
  1089. typedef struct tagM3G_FILE_AV_REC_TRACK_PARAM{
  1090. UCHAR ucSampleType; /* Reference :eM3G_SAMPLE_TYPE */
  1091. UCHAR ucTimeStampSource; /* Reference :eM3G_FILE_TIMING_SOURCE_SAMPLE */
  1092. UINT ulWidth; /* Video frame width of the lattice�WMV9 and YUV valid�value:16~720 */
  1093. UINT ulHeight; /* Video frame Height of the lattice�WMV9 and YUV valid�value:16~576 */
  1094. USHORT usFPS; /* frame per second�value:1~30 */
  1095. } M3G_FILE_AV_REC_TRACK_PARAM;
  1096. typedef struct tagM3G_FILE_AV_REC_PARAMS{
  1097. UCHAR ucHintTracks; /* Whether to insert an index track�0 - Do not insert�1 - insert */
  1098. UCHAR ucTrackNum; /* Track the number of media files�value0~1 */
  1099. M3G_FILE_AV_REC_TRACK_PARAM TrackParam[MAX_TRACK_NUM]; /* Media Information trajectories */
  1100. } M3G_FILE_AV_REC_PARAMS;
  1101. /*
  1102. * M3G record and play data format
  1103. */
  1104. typedef struct tagM3G_XPB{
  1105. UCHAR ucFileType; //files type�reference:eM3G_FILE_TYPE
  1106. union {
  1107. M3G_FILE_BIN_PARAMS bin; //(BIN) for play
  1108. M3G_FILE_AMR_PARAMS amr; //(AMR) for play
  1109. M3G_FILE_WAV_PARAMS wav; //(WAV) for play and record
  1110. M3G_FILE_AV_PLAY_PARAMS avp; //(BIN/3GP/MP4/AVI/ASF/3G2) for play
  1111. M3G_FILE_AV_REC_PARAMS avr; //(BIN/3GP/MP4/AVI/ASF/3G2) for record
  1112. };
  1113. }M3G_XPB;
  1114. /*
  1115. * M3G special recording media expansion parameters
  1116. */
  1117. typedef struct tagM3G_MEDIA_EX{
  1118. UCHAR ucVoCoder; /* reference:eM3G_VOICE_CODER*/
  1119. INT iVolumeGain; /* VOICE Volume Gain�Unit:0.1dB�value-90~+90(-9dB~+9dB)*/
  1120. }M3G_MEDIA_EX;
  1121. /*
  1122. * M3G send DIGIT date
  1123. */
  1124. typedef struct tagM3G_DIGIT_INFO{
  1125. UCHAR ucDigitType; //Digit type�Reference:eIPM_DIGIT_TYPE
  1126. UCHAR ucDigitDir; //Digit direct�Reference:eIPM_DIGIT_DIRECTION
  1127. UCHAR ucDigitNum; //Digit number of the buffer
  1128. CHAR Digits[MAX_IPM_DIGITS]; //Digit buffer
  1129. UCHAR ucDuration; //Digit active time�Unit:ms
  1130. UCHAR ucInterval; //Digit interval�Unit:ms
  1131. } M3G_DIGIT_INFO;
  1132. /*
  1133. * M3G and ability to set data terminal state
  1134. */
  1135. typedef struct tagM3G_TCS_INFO{
  1136. UCHAR ucTCSStatus; //TCS state�Reference:eM3G_TCS_STATUS
  1137. M3G_TERM_CAPS localcaps; //local endpoint capability
  1138. M3G_TERM_CAPS remotecaps; //Remote endpoint capability
  1139. M3G_TERM_CAPS matchcaps; //Terminal capability negotiation
  1140. }M3G_TCS_INFO;
  1141. /*
  1142. * Command ID is MISC_ID_VIDEO_FAST_UPDATE_GOB structure is below:
  1143. */
  1144. typedef struct tagM3G_VIDEO_FAST_UPDATE_GOB{
  1145. UINT ulFirstGOB; /* Group to specify the start block number of the video refresh */
  1146. UINT ulNumberOfGOBs; /* Specify the number of refresh blocks */
  1147. } M3G_VIDEO_FAST_UPDATE_GOB;
  1148. /*
  1149. * Command ID is MISC_ID_VIDEO_FAST_UPDATE_MB structure is below:
  1150. */
  1151. typedef struct tagM3G_VIDEO_FAST_UPDATE_MB{
  1152. UINT ulFirstGOB; /* Group to specify the start block number of the video refresh */
  1153. UINT ulFirstMB; /* Macro to specify the start block number of the video refresh */
  1154. UINT ulNumberOfMBs; /* Specify the number of macroblocks to refresh */
  1155. } M3G_VIDEO_FAST_UPDATE_MB;
  1156. /*
  1157. * Command ID is MISC_ID_SKEW_INDICATION structure :
  1158. */
  1159. typedef struct tagM3G_SKEW_INDICATION{
  1160. UINT ulSkew; /* The first logical channel to the second logical channel maximum delay, the unit is ms */
  1161. } M3G_SKEW_INDICATION;
  1162. /*
  1163. * M3G-MISC Command information
  1164. */
  1165. typedef struct tagM3G_H245_MISC_INFO{
  1166. UCHAR ucLogicChanNo; //logical channel number�Reference eM3G_LC_NUMBER
  1167. UINT ulMiscCmdId; //MISC Command ID,reference eM3G_MISC_ID
  1168. union{
  1169. M3G_VIDEO_FAST_UPDATE_GOB vfug; //Command is M3G_MISC_ID_VIDEO_FAST_UPDATE_GOB
  1170. M3G_VIDEO_FAST_UPDATE_MB vfum; //Command ID is M3G_MISC_ID_VIDEO_FAST_UPDATE_MB
  1171. M3G_SKEW_INDICATION si; //Command ID is M3G_MISC_ID_SKEW_INDICATION
  1172. };
  1173. } M3G_H245_MISC_INFO;
  1174. /*
  1175. * Logical channel parameters of the channel state and the media
  1176. */
  1177. typedef struct tagM3G_LC_PARAM{
  1178. UCHAR ucLogicChanNo; //Reference eM3G_LC_NUMBER
  1179. UCHAR ucLCStatus; //ReferenceeM3G_LC_STATUS
  1180. M3G_MEDIA_CHAN parm; //logical channel parameters
  1181. } M3G_LC_PARAM;
  1182. /*
  1183. * H324M Call state Data
  1184. */
  1185. typedef struct tagM3G_CALL_STATUS{
  1186. UCHAR ucLinkStatus; //link status,Reference eM3G_H223_LINK_STATUS
  1187. UCHAR ucCPStatus; //Reference eM3G_CP_STATUS
  1188. } M3G_CALL_STATUS;
  1189. /*
  1190. * MSD master data information from the decision
  1191. */
  1192. typedef struct tagM3G_MSD_INFO{
  1193. UCHAR ucMsdStatus; //Reference eM3G_MSD_STATUS
  1194. UCHAR ucLocalIsMaster; //Local terminal-based
  1195. UCHAR ucLocalTermType; //Local terminal type
  1196. UCHAR ucRemoteTermType; //Remote terminal type
  1197. } M3G_MSD_INFO;
  1198. /*
  1199. * H324M logical channel status
  1200. */
  1201. typedef struct tagM3G_LC_INFO{
  1202. UCHAR ucLogicChanNo; //logical channel number�reference eM3G_LC_NUMBER
  1203. UCHAR ucLCStatus; //logical channel status�reference eM3G_LC_STATUS
  1204. UCHAR ucCodec[4]; //Reference eM3G_H324_AUDIO_CODEC or eM3G_H324_VIDEO_CODEC
  1205. UCHAR ucIsMuted; //Mute the logical channel is a sign, if Mute, will not send data to the remote
  1206. } M3G_LC_INFO;
  1207. //////////////////////////////////////////////////////////////////////////
  1208. #define EHANG_MAX_TEXTOVERLAYSTR_NUM 8 /*Maximum number of text strings superimposed*/
  1209. #define EHANG_MAX_FOREGROUNDID_NUM 5 /*The largest number of prospects Number*/
  1210. #define EHANG_MAX_BACKGROUNDID_NUM 5 /*Maximum number of number of background*/
  1211. /*DisplayMode*/
  1212. #define DM_HIDE 0x00 /* hide */
  1213. #define DM_DISPLAY 0x01 /* display */
  1214. /*toolbar type*/
  1215. typedef enum {
  1216. M3G_TOOLBOX_TYPE_PRIMARY = 0, /*master toolbar*/
  1217. M3G_TOOLBOX_TYPE_VIDEOCONF = 1 /*Video conferencing kit*/
  1218. } eM3G_TOOLBOX_TYPE;
  1219. /*Toolbox control coding*/
  1220. typedef enum {
  1221. M3G_CTRLCODE_SETPARAM = 0x00, /* set param */
  1222. M3G_CTRLCODE_LOGO_DOWNLOAD = 0x01, /* LOGO download */
  1223. M3G_CTRLCODE_LOGO_DISPLAY = 0x02, /* LOGO display */
  1224. M3G_CTRLCODE_LOGO_HIDE = 0x20, /* LOGO hide */
  1225. M3G_CTRLCODE_COLOR_REMOVE = 0x04, /* clear color */
  1226. M3G_CTRLCODE_COLOR_DISPLAY = 0x40, /* display normal color */
  1227. M3G_CTRLCODE_TEXT_OVERLAY = 0x08, /* Enable text overlay function */
  1228. M3G_CTRLCODE_TEXT_OVERLAY_STOP = 0x80, /* Stop text overlay function */
  1229. } eM3G_TOOLBOX_CTRLCODE;
  1230. /* Display module:display or hide*/
  1231. typedef enum {
  1232. M3G_DISPLAY_MODE_HIDE = 0,
  1233. M3G_DISPLAY_MODE_SHOW = 1
  1234. } eM3G_DISPLAY_MODE;
  1235. typedef struct tagM3G_TO_DISPLAY_MODE {
  1236. UCHAR ucValid; /* sign of validity */
  1237. UCHAR ucMode; /* 0-hide; 1-display�Reference eM3G_DISPLAY_MODE*/
  1238. } M3G_TO_DISPLAY_MODE;
  1239. /*ToolboxParam:*/
  1240. typedef struct tagM3G_TOOLBOX_PARAM{
  1241. UCHAR ucValid; /* sign of valid */
  1242. UCHAR ucIsEnable; /* Enable flag */
  1243. UCHAR ucFPS; /* Frame rate */
  1244. UCHAR ucRev; /* Retention */
  1245. UINT ulInputHeight;
  1246. UINT ulInputWidth;
  1247. UINT ulOutputHeight;
  1248. UINT ulOutputWidth;
  1249. } M3G_TOOLBOX_PARAM;
  1250. /* LOGO parameter information; */
  1251. typedef struct tagM3G_LOGO_PARAM{
  1252. UCHAR ucValid; /*sign of validity */
  1253. UINT ulHeight; /* LOGO Height�Unit:piexl�0~144 */
  1254. UINT ulWidth; /* LOGO Width�Unit:piexl�0~176 */
  1255. UINT ulTopPos; /* LOGO Top Position�Unit:piexl�0~575 */
  1256. UINT ulLeftPos; /* LOGO Left Position�Unit:piexl�0~719 */
  1257. UCHAR ucTransY;
  1258. UCHAR ucTransU;
  1259. UCHAR ucTransV;
  1260. UCHAR ucTransAlpha;
  1261. UCHAR ucAlphaBlending;
  1262. } M3G_LOGO_PARAM;
  1263. /* Logo configuration information structure */
  1264. typedef struct tagM3G_LOGO_CONFIG {
  1265. M3G_LOGO_PARAM LogoParm; /* LOGO parameter information */
  1266. M3G_TO_DISPLAY_MODE DisplayMode; /* display mode */
  1267. } M3G_LOGO_CONFIG;
  1268. /*toolbox confiruation information*/
  1269. typedef struct tagM3G_TOOLBOX_CONFIG {
  1270. M3G_TOOLBOX_PARAM toolbox;
  1271. M3G_LOGO_PARAM logo;
  1272. } M3G_TOOLBOX_CONFIG;
  1273. /* Text of location information: The left, top to specify the text displayed in the location in the YUV */
  1274. typedef struct tagM3G_TO_CARET_POSITION {
  1275. UCHAR ucValid; /* sign of validity */
  1276. UCHAR ucTextDir; /* Text direct,Reference eM3G_TEXT_DIRECTION */
  1277. UINT ulLeftPos; /* 0~351 */
  1278. UINT ulTopPos; /* 0~287 */
  1279. } M3G_TO_CARET_POSITION;
  1280. /*Text direct define */
  1281. typedef enum {
  1282. TEXT_DIRECTION_LEFT_TO_RIGHT = 0x00, /*From left to rigth*/
  1283. TEXT_DIRECTION_RIGHT_TO_LEFT = 0x01, /*From rigth to lefer*/
  1284. TEXT_DIRECTION_UP_TO_DOWN = 0x02, /*no used*/
  1285. TEXT_DIRECTION_DOWN_TO_UP = 0x03 /*no used*/
  1286. }eM3G_TEXT_DIRECTION;
  1287. /* Font-related information */
  1288. typedef struct tagM3G_TO_FONT_INFO {
  1289. UCHAR ucValid; /* sign of validity */
  1290. UCHAR ucFontIndex; /* Font Index, Current is 0 */
  1291. UINT ulFontSize; /* Font Size:0 ~ 255 */
  1292. UINT ulFontStyle; /* Font Style�Reference eM3G_TEXT_STYLE */
  1293. } M3G_TO_FONT_INFO;
  1294. /* Font Style- M3G_TO_FONT_INFO.ulFontStyle */
  1295. typedef enum {
  1296. TEXT_STYLE_BM_BOLD = 0x00000001,
  1297. TEXT_STYLE_BM_ITALIC = 0x00000002,
  1298. TEXT_STYLE_BM_UNDERLINE = 0x00000004,
  1299. TEXT_STYLE_BM_OUTLINE = 0x00000008,
  1300. TEXT_STYLE_BM_STRIKETHROUGH = 0x00000010,
  1301. TEXT_STYLE_BM_SUBSCRIPT = 0x00000020,
  1302. TEXT_STYLE_BM_SUPERSCRIPT = 0x00000040,
  1303. TEXT_STYLE_BM_SHADOW = 0x00000080,
  1304. TEXT_STYLE_BM_ENGRAVE = 0x00000100
  1305. }eM3G_TEXT_STYLE;
  1306. /* Foreground / background color scheme information */
  1307. typedef struct tagM3G_TO_COLOR {
  1308. UCHAR ucValid;
  1309. UCHAR ucForegroundR;
  1310. UCHAR ucForegroundG;
  1311. UCHAR ucForegroundB;
  1312. UCHAR ucForegroundAlpha;
  1313. UCHAR ucBackgroundR;
  1314. UCHAR ucBackgroundG;
  1315. UCHAR ucBackgroundB;
  1316. UCHAR ucBackgroundAlpha;
  1317. } M3G_TO_COLOR;
  1318. /*Scroll direction is defined */
  1319. typedef enum {
  1320. SCROLL_DIRECTION_LEFT_TO_RIGHT = 0x00,
  1321. SCROLL_DIRECTION_RIGHT_TO_LEFT = 0x01,
  1322. }eM3G_SCROLL_DIRECTION;
  1323. /* Scrolling text information related to: scroll function is enabled only after most of the information to be effective */
  1324. typedef struct tagM3G_TO_SCROLL_INFO {
  1325. UCHAR ucValid; /* sign of validity */
  1326. UCHAR ucEnable; /* Scroll function is enabled the flag */
  1327. UCHAR ucScrollDir; /* Reference eM3G_SCROLL_DIRECTION */
  1328. UCHAR ucEndlessLoop; /* Whether a sign has been scrolling:0-NO; 1-YES */
  1329. UINT ulSpeed; /* Scrolling speed:piexls/second */
  1330. UINT ulLeftPos; /* Position of the scroll box to the left */
  1331. UINT ulRightPos; /* Scroll box to the right place */
  1332. UINT ulBackgroundTopPos; /* Background at the top position */
  1333. UINT ulBackgroundLeftPos; /* Background on the left position */
  1334. UINT ulBackgroundWidth; /* Background width */
  1335. UINT ulBackgroundHeight; /* Background height */
  1336. } M3G_TO_SCROLL_INFO;
  1337. /* Text: Each unicode character is said */
  1338. #define EHANG_MAX_TEXT_LEN 256
  1339. typedef struct tagM3G_TO_TEXT {
  1340. UCHAR ucValid; /* sign of validity */
  1341. CHAR szContent[EHANG_MAX_TEXT_LEN]; /*text buffer,English maximum 160 characters, maximum 80 characters Chinese*/
  1342. } M3G_TO_TEXT;
  1343. /*TextOverlay*/
  1344. typedef struct tagM3G_TEXTOVERLAY_CONFIG {
  1345. M3G_TO_CARET_POSITION CaretPos; /* text position */
  1346. M3G_TO_FONT_INFO FontInfo; /* Font Information */
  1347. M3G_TO_COLOR ColorInfo; /* Foreground / background color */
  1348. M3G_TO_DISPLAY_MODE DisplayMode;
  1349. M3G_TO_SCROLL_INFO ScrollInfo; /* Scrolling text information related to */
  1350. M3G_TO_TEXT Text; /* Text */
  1351. } M3G_TEXTOVERLAY_CONFIG;
  1352. /************************************************************************/
  1353. /* 3G Conference */
  1354. /************************************************************************/
  1355. #define MAX_VIDEOCONF_MIXER_NUM 5 /* Maximum number of video conferencing mixer */
  1356. /*M3G_VIDEOCONF_PARM.ulVideoConfCaps*/
  1357. typedef enum {
  1358. VIDEO_CONF_CAP_MULTIPLE_MIXERS = 0x01,/* Support for multiple video conferencing channel mixer */
  1359. VIDEO_CONF_CAP_HIGH_RESOLUTION = 0x02,/* Support a mixture of more than CIF resolution image */
  1360. } eM3G_VIDEOCONF_CAP;
  1361. typedef struct tagM3G_VIDEOCONF_MIXER {
  1362. UCHAR ucMixerId; /* Mixer of the number, range: 1 to 5 */
  1363. UINT ulWidth; /* Horizontal image size */
  1364. UINT ulHeight; /* Vertical image size */
  1365. UCHAR ucSynSrc; /* Synchronization source type: 0 - self-synchronization; 1 - sync to a meeting participant */
  1366. UINT ulFPS; /* Valid sync source is 0, that frame rate */
  1367. M3GDEV videodev; /* Effective synchronization source is 1, the meeting participants that the video channel device handle */
  1368. } M3G_VIDEOCONF_MIXER, *PM3G_VIDEOCONF_MIXER;
  1369. typedef struct tagM3G_VIDEOCONF_PARM {
  1370. UINT ulVideoConfCaps; /* Reference eM3G_VIDEOCONF_CAP*/
  1371. USHORT usSrcUdpPort; /* Source UDP Port */
  1372. UCHAR ucMixerNum; /* Mixer Max is MAX_VIDEOCONF_MIXER_NUM */
  1373. M3G_VIDEOCONF_MIXER Mixer[MAX_VIDEOCONF_MIXER_NUM]; /* The properties of each mixer, the number determined by the ucMixerNum */
  1374. } M3G_CHAN_TYPE_VIDEOCONF_PARAM, M3G_VIDEOCONF_PARM, *PM3G_VIDEOCONF_PARM;
  1375. /*Video channel to send the video stream video conferencing channel properties*/
  1376. typedef struct tagVIDEO_PARTICIANT_SENDER {
  1377. UCHAR ucValid; /* Sign structure is valid: 0 - valid; 1 - effective */
  1378. UCHAR ucSendFlag; /* A sign of whether to send the video stream: 0 - Pause send 1 - continued to send, the default value of 1*/
  1379. USHORT usWidth; /* Mixer to give the image width, default is 0 */
  1380. USHORT usHeight; /* Mixer to give the image height, default value is 0 */
  1381. } VIDEO_PARTICIANT_SENDER, *PVIDEO_PARTICIANT_SENDER;
  1382. /*Video channel to receive the properties of composite video*/
  1383. typedef struct tagVIDEO_PARTICIANT_RECVER {
  1384. UCHAR ucValid; /* Sign structure is valid: 0 - valid; 1 - effective */
  1385. UCHAR ucMixerId; /* Mixer ID, range: 1 to 5 */
  1386. UCHAR ucRecvFlag; /* Whether to receive the video stream flags: 0 - not accept 1 - receives, the default is 1*/
  1387. USHORT usRecverUdpPort; /* In the remote video conference participant to receive the next meeting of the UDP port; local video conference mode, this value does not make sense*/
  1388. UINT ulRecverFPS; /* Receiving the composite video frame rate, the default is 0 */
  1389. } VIDEO_PARTICIANT_RECVER, *PVIDEO_PARTICIANT_RECVER;
  1390. /*Video channel in the mixer properties*/
  1391. typedef struct tagVIDEO_PARTICIANT_VISION_ITEM{
  1392. UCHAR ucMixerId; /* Mixer ID�Range:1~5 */
  1393. UCHAR ucLayerId; /* Layer number*/
  1394. USHORT usLeftPos; /* Left Position; */
  1395. USHORT usTopPos; /* Top Position; */
  1396. USHORT usWidth;
  1397. USHORT usHeight;
  1398. } VIDEO_PARTICIANT_VISION_ITEM, *PVIDEO_PARTICIANT_VISION_ITEM;
  1399. /*
  1400. Mixer in the video conferencing video stream in the Display Properties
  1401. Note: This ucVisionNum adding that the number of mixer, range: 0 to create a number of conference mixer.
  1402. 0 means not to join any mixer. If ucValid 0 said not to join the mixer.
  1403. */
  1404. typedef struct tagVIDEO_PARTICIANT_VISION {
  1405. UCHAR ucValid; /* Sign structure is valid: 0 - valid; 1 - effective */
  1406. UCHAR ucVisionNum; /* Adding the number of video channels mixer, 0 for no member of any mixer */
  1407. VIDEO_PARTICIANT_VISION_ITEM Visions[MAX_VIDEOCONF_MIXER_NUM]; /* Video channels display properties by adding mixer */
  1408. } VIDEO_PARTICIANT_VISION, *PVIDEO_PARTICIANT_VISION;
  1409. /*The video channel as the properties of the synchronization source mixer*/
  1410. typedef struct tagVIDEO_PARTICIANT_SYNC_SRC {
  1411. UCHAR ucValid; /* Sign structure is valid: 0 - valid; 1 - effective */
  1412. UCHAR ucMixerNum; /* Video channel mixer as the number of simultaneous sources */
  1413. UCHAR ucMixerIds[MAX_VIDEOCONF_MIXER_NUM]; /* As a synchronization source video mixer channel number (range: 1 to 5), the number determined by the ucMixerNum */
  1414. } VIDEO_PARTICIANT_SYNC_SRC, *PVIDEO_PARTICIANT_SYNC_SRC;
  1415. typedef struct tagM3G_VIDEOCONF_CDT {
  1416. M3GDEV videodev; /*Specifies the handle to join the conference video channel*/
  1417. VIDEO_PARTICIANT_SENDER sender; /*Video participants join the properties of composite video*/
  1418. VIDEO_PARTICIANT_RECVER recver; /*Participants received mixed video video attributes*/
  1419. VIDEO_PARTICIANT_VISION vision; /*Participants in the video mixer in the Display Properties; */
  1420. VIDEO_PARTICIANT_SYNC_SRC syncsrc; /*Participants as a mixer video sync source properties*/
  1421. }M3G_VIDEOCONF_CDT, *PM3G_VIDEOCONF_CDT;
  1422. typedef struct tagM3G_VIDEOCONF_FOREGROUND {
  1423. UCHAR ucControlCode; /*Control code, 0 - produced images; 1 - Remove the image; 2-- control the properties of the image; */
  1424. VIDEO_PARTICIANT_VISION vision; /*Foreground or background in a video conference mixer in the Display Properties; */
  1425. CHAR szFileName[MAX_PATH]; /*To '\ 0' end of the image file name string.*/
  1426. } M3G_VIDEOCONF_FOREGROUND, M3G_VIDEOCONF_BACKGROUND;
  1427. typedef struct tagM3G_BOX_ATTRI{
  1428. UCHAR ucBoxColorY;
  1429. UCHAR ucBoxColorU;
  1430. UCHAR ucBoxColorV;
  1431. UCHAR ucLineSize;
  1432. } M3G_BOX_ATTRI, *PM3G_BOX_ATTRI;
  1433. typedef struct tagM3G_BOX_VISION_ITEM{
  1434. VIDEO_PARTICIANT_VISION_ITEM Vision; /* box shows the location of the size of information */
  1435. M3G_BOX_ATTRI BoxAttr; /* BOX frame and line width information */
  1436. } M3G_BOX_VISION_ITEM, *PM3G_BOX_VISION_ITEM;
  1437. typedef struct tagM3G_VIDEOCONF_BOX {
  1438. UCHAR ucVisionNum; /* Box number in the mixer, to 0 for no member of any mixer */
  1439. M3G_BOX_VISION_ITEM Visions[MAX_VIDEOCONF_MIXER_NUM]; /*Box in the Display Properties in the mixer*/
  1440. } M3G_VIDEOCONF_BOX;
  1441. typedef struct tagM3G_VOICECONF_PARM {
  1442. UINT ulMaxDominantSpeakers; /* A spokesman for the maximum number of range: 1 to 5*/
  1443. UINT ulHangOver; /* Spokesman for the switching time, range: 1 to 20, units of 10ms */
  1444. } M3G_CHAN_TYPE_VOICE_CONF_PARAM, M3G_VOICECONF_PARM;
  1445. /* ucParticipantType */
  1446. typedef enum {
  1447. VOICECONF_PARTICIPANT_DISABLED = 0, /* Not part of the conference participants */
  1448. VOICECONF_PARTICIPANT_ENABLED = 1, /* Non-privileged meeting participants */
  1449. VOICECONF_PARTICIPANT_LISTEN_ONLY = 2, /* Just listen to conference participants */
  1450. VOICECONF_PARTICIPANT_ALWAYS_DOMINANT = 3, /* Always able to hear the conference participants*/
  1451. VOICECONF_PARTICIPANT_DISTRIBUTED = 4, /* Distributed Channel Conference */
  1452. VOICECONF_PARTICIPANT_WHISPER = 5, /* The Council members can only talk with one of the participating parties */
  1453. } eParticipantType;
  1454. typedef struct tagM3G_VOICECONF_CDT {
  1455. M3GDEV voicedev; /*Specifies the handle to join the meeting audio channel*/
  1456. UCHAR ucParticipantType; /*Participant type, reference eParticipantType */
  1457. M3GDEV Whisperdev; /*ucParticipantType is WHISPER, the designated meeting in the private audio channel handle*/
  1458. }M3G_VOICECONF_CDT;
  1459. typedef struct tagM3G_H324M_VENDOR_ID {
  1460. CHAR* p_vendor_id; //Provider ID
  1461. USHORT vendor_id_len; //Provider ID Length
  1462. CHAR* p_production_num; //Product No.
  1463. USHORT production_num_len; //Product No Length
  1464. CHAR* p_version; //Version
  1465. USHORT version_len; //Version Length
  1466. } M3G_H324M_VENDOR_ID;
  1467. /* VOICE channel fixed gain, the gain of the unit is 0.1dB, the range of -90 ~ +90 (-9dB ~ +9 dB) */
  1468. typedef struct tagM3G_VOICE_EC_GAIN {
  1469. INT rin_gain; /* RIN; Default:0*/
  1470. INT rout_gain; /* ROUT; Default:0*/
  1471. INT sin_gain; /* SIN; Default:0*/
  1472. INT sout_gain; /* SOUT; Default:0*/
  1473. } M3G_VOICE_EC_GAIN, *PM3G_VOICE_EC_GAIN;
  1474. /* AGC gain some */
  1475. typedef struct tagM3G_VOICE_AGC {
  1476. UCHAR ucEnable; /* AGC enable flag: 0 - do not start the AGC, 1 - start the AGC; default AGC does not start */
  1477. UINT ulEngAvgWindowLen; /* Average energy window length (: ms): 50ms ~ 1000ms; default value: 100*/
  1478. INT lMinSignalLevel; /* The minimum signal level, little more than the value of the signal will be amplified to this value (unit: 1dBm0):-37dBm0 ~-6dBm0; default values??: -14*/
  1479. INT lMaxSignalLevel; /* Maximum signal level greater than this value the signal will be attenuated to this value (unit: 1dBm0):-37dBm0 ~-6dBm0; default value: -10*/
  1480. UINT ulStepLevel; /* Energy rate (unit: 0.1dB / s): 0 ~ 2500; default value: 10*/
  1481. INT lSilentLevelThreshold; /* Absolute silence of the energy value, little more than this value will not enter the energy calculation, it will not be amplified (unit: dBm0):-60dBm0 ~-6dBm0; default value: -30*/
  1482. UCHAR ucMaxAppliedGainUsed; /* Whether to use the maximum gain: 0 - not used, 1 - use; default value: 0*/
  1483. UINT ulMaxAppliedGain; /* Maximum gain value (unit: 1dB): 0 ~ 40; default value: 20*/
  1484. } M3G_VOICE_AGC, *PM3G_VOICE_AGC;
  1485. /* VOICE channel volume gain parameter */
  1486. typedef struct tagM3G_VOICE_VOLPARM {
  1487. M3G_VOICE_EC_GAIN EcGain; /* EC gain */
  1488. M3G_VOICE_AGC AGCFromTDM; /* TDM to IP direction of the AGC control */
  1489. M3G_VOICE_AGC AGCFromIP; /* IP to TDM direction of the AGC control */
  1490. } M3G_VOICE_VOLPARM, *PM3G_VOICE_VOLPARM;
  1491. #pragma pack()
  1492. //////////////////////////////////////////////////////////////////////////
  1493. /*
  1494. * Prototypes for all library functions.
  1495. */
  1496. #ifdef __cplusplus
  1497. extern "C" { // C++ func bindings to enable C funcs to be called from C++
  1498. #define extern
  1499. #endif
  1500. /************************************************************************/
  1501. /* Function: ISX_m3g_OpenEx()
  1502. Description:
  1503. The application use ISX_m3g_OpenEx() function to open the M3G channel device of the M3G daughter
  1504. and got the channel device handle on successful. The channel device handle put in the memory specified
  1505. by the parameter devp when the function completed. In the asynchronous mode, the event M3GEV_OPEN_CMPLT
  1506. is for successful and the event M3GEV_OPEN_FAIL for unsuccessful to open the M3G channel device.
  1507. The channel can only be opened by only one application, so, if A application has successfully opened
  1508. a channel, then the B application will fail to open the same channel. Only when A application called
  1509. ISX_m3g_close() function to close the M3G channel device handle, the B application can open the same
  1510. channel now. The channel device handle returned by this function is defined by Ehangcom, it is not a
  1511. standard file handle of the operating system, so the application can¨t use operating system functions
  1512. such as read(), write() or ioctl() to operate the handle. Unexpected result will occur on doing so.
  1513. Completed Event:
  1514. M3GEV_OPEN_CMPLT: The channel was successful opened.
  1515. M3GEV_OPEN_FAIL: The channel was unsuccessful opened
  1516. Return value:
  1517. 0 success
  1518. -1 failure
  1519. Parameters:
  1520. -devp
  1521. The pointer for returned the M3G channel device handle and can not be empty.
  1522. -nodenum
  1523. iSX node number
  1524. -brdnum
  1525. M3G daughter board number
  1526. -channel
  1527. M3G channel number
  1528. -mode
  1529. EV_ASYNC - asynchronous
  1530. EV_SYNC - synchronous
  1531. -pusrattr
  1532. The pointer of user-defined attributes
  1533. */
  1534. /************************************************************************/
  1535. #ifndef EHANG_ISXAPI_STD_C
  1536. ISXAPI_FUNC_STDCL(INT) ISX_m3g_OpenEx(M3GDEV *devp, CHAR nodenum, CHAR brdnum, SHORT channel, USHORT mode=EV_SYNC, VOID* pusrattr = 0);
  1537. #else
  1538. ISXAPI_FUNC_STDCL(INT) ISX_m3g_OpenEx(M3GDEV *devp, CHAR nodenum, CHAR brdnum, SHORT channel, USHORT mode, VOID* pusrattr);
  1539. #endif
  1540. /************************************************************************/
  1541. /* Function:ISX_m3g_Close()
  1542. * Description:
  1543. The application use the ISX_m3g_Close() function to close the M3G board
  1544. device or channel device handle. The function does not change the device state (such as switch),
  1545. and it only releases the handle and the occupied relation between the call application and the device.
  1546. Note: ISX_m3g_Close() forbids all events related to the device to occur.
  1547. * Return value: 0 success; -1 failure
  1548. * Parameters:
  1549. -dev
  1550. Specify an valid device handle (returned by ISX_m3g_OpenEx() or ISX_m3g_Open())
  1551. */
  1552. /************************************************************************/
  1553. ISXAPI_FUNC_STDCL(INT) ISX_m3g_Close(M3GDEV dev);
  1554. /************************************************************************/
  1555. /* Function:ISX_m3g_SetParm()
  1556. * Description:
  1557. The application use the ISX_m3g_SetParm() function to set the M3G channel type and relevant parameters.
  1558. The ISX_m3g_OpenEx() function only open the M3G channel device, and don¨t change the channel type.
  1559. Once the channel type is specified, the channel type can not be changed. If the channel type indeed
  1560. needs to be changed, the application must ensure that the channel is in the idle state.
  1561. * Stop Event
  1562. M3GEV_SET_PARM_CMPLT: The function call completed successfully.
  1563. M3GEV_SET_PARM_FAIL: The function call completed unsuccessfully.
  1564. * Return value: 0 success; -1 failure
  1565. * Parameters:
  1566. -dev
  1567. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  1568. pParmInfo The pointer of the M3G channel parameter information structure; for the detailed
  1569. description of parameters, please refer to the data structure M3G_CHAN_PARAM
  1570. -mode
  1571. EV_ASYNC - asynchronous
  1572. EV_SYNC - synchronous
  1573. -ulOperIndex
  1574. Asynchronous operation number. When the operation completed and the event M3GEV_SET_PARM_CMPLT
  1575. or M3GEV_SET_PARM_FAIL occurred, the application can use the ISX_sr_getevtoperindex() function
  1576. to get the operation number.
  1577. */
  1578. /************************************************************************/
  1579. #ifndef EHANG_ISXAPI_STD_C
  1580. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetParm(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode=EV_SYNC, UINT ulOperIndex = 0);
  1581. #else
  1582. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetParm(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode, UINT ulOperIndex);
  1583. #endif
  1584. /************************************************************************/
  1585. /* Function:ISX_m3g_GetParm()
  1586. * Description:
  1587. The application use the ISX_m3g_GetParm() function to get the M3G channel type and relevant parameters.
  1588. The returned M3G channel parameter information will be written into the local buffer specified by pParmInfo.
  1589. * Stop Event
  1590. M3GEV_GET_PARM_CMPLT: The function call completed successfully.
  1591. M3GEV_GET_PARM_FAIL: The function call completed unsuccessfully.
  1592. * Return value: 0 success; -1 failure
  1593. * Parameters:
  1594. -dev
  1595. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  1596. -pParmInfo
  1597. The pointer of the M3G channel parameter information structure; please refer to M3G_CHAN_PARAM for
  1598. detailed description.
  1599. -mode
  1600. EV_ASYNC - asynchronous
  1601. EV_SYNC - synchronous
  1602. -ulOperIndex
  1603. Asynchronous operation number. When the operation completed and the event M3GEV_SET_PARM_CMPLT
  1604. or M3GEV_SET_PARM_FAIL occurred, the application can use the ISX_sr_getevtoperindex() function
  1605. to get the operation number.
  1606. */
  1607. /************************************************************************/
  1608. #ifndef EHANG_ISXAPI_STD_C
  1609. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetParm(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode=EV_SYNC, UINT ulOperIndex = 0);
  1610. #else
  1611. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetParm(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode, UINT ulOperIndex);
  1612. #endif
  1613. /************************************************************************/
  1614. /* Function:ISX_m3g_Set2Default()
  1615. * Description:
  1616. The application use the ISX_m3g_Set2Default( ) function to set each domain of M3G_CHAN_PARAM
  1617. structure into the default value of SDK.
  1618. * Return value: 0 success; -1 failure
  1619. * Parameters:
  1620. -ucChanType
  1621. M3G channel type
  1622. -pParmInfo
  1623. The pointer of the M3G channel parameter information structure
  1624. */
  1625. /************************************************************************/
  1626. ISXAPI_FUNC_STDCL(INT) ISX_m3g_Set2Default(eM3G_CHAN_TYPE ucChanType, M3G_CHAN_PARAM *pParmInfo);
  1627. /************************************************************************/
  1628. /* Function:ISX_m3g_StartMedia()
  1629. * Description:
  1630. The application use the function ISX_m3g_StartMedia() to start the media of the specified M3G channel.
  1631. The function is only applicable to the VOICE and VIDEO channels.
  1632. * Stop Event
  1633. M3GEV_START_MEDIA_CMPLT: The function completed successfully.
  1634. M3GEV_START_MEDIA_FAIL: The function completed unsuccessfully.
  1635. * Return value: 0 success; -1 failure
  1636. * Parameters:
  1637. -dev
  1638. The M3G channel device handle returned by ISX_m3g_OpenEx()
  1639. -pParmInfo
  1640. The pointer of the M3G channel parameter structure. Please refer to the structure M3G_CHAN_PARAM for detail.
  1641. -mode:
  1642. EV_ASYNC - asynchronous
  1643. EV_SYNC - synchronous
  1644. -ulOperIndex
  1645. Asynchronous operation number. When the operation is completed and the M3GEV_START_MEDIA_CMPLT
  1646. or M3GEV_START_MEDIA_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  1647. */
  1648. /************************************************************************/
  1649. #ifndef EHANG_ISXAPI_STD_C
  1650. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StartMedia(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode=EV_SYNC, UINT ulOperIndex = 0);
  1651. #else
  1652. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StartMedia(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode, UINT ulOperIndex);
  1653. #endif
  1654. /************************************************************************/
  1655. /* Function:ISX_m3g_StopMedia()
  1656. * Description:
  1657. The application use the function ISX_m3g_StopMedia() to stop the media of the specified M3G channel.
  1658. The function is only applicable to the VOICE and VIDEO M3G channels.
  1659. * Stop Event
  1660. M3GEV_STOP_MEDIA_CMPLT: The function completed successfully.
  1661. M3GEV_STOP_MEDIA_FAIL: The function completed unsuccessfully.
  1662. * Return value: 0 success; -1 failure
  1663. * Parameters:
  1664. -dev
  1665. The M3G channel device handle returned by ISX_m3g_OpenEx()
  1666. -mode:
  1667. EV_ASYNC - asynchronous
  1668. EV_SYNC - synchronous
  1669. -ulOperIndex
  1670. Asynchronous operation number; when the operation is completed and the M3GEV_STOP_MEDIA_CMPLT
  1671. or M3GEV_STOP_MEDIA_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  1672. */
  1673. /************************************************************************/
  1674. #ifndef EHANG_ISXAPI_STD_C
  1675. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StopMedia(M3GDEV dev, USHORT mode=EV_SYNC, UINT ulOperIndex = 0);
  1676. #else
  1677. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StopMedia(M3GDEV dev, USHORT mode, UINT ulOperIndex);
  1678. #endif
  1679. /************************************************************************/
  1680. /* Function:ISX_m3g_Play()
  1681. * Description:
  1682. The application use the function ISX_m3g_play() to play audio and video files.
  1683. The FileType domain of M3G_XPB specify the file formats of the file, and other domains of M3G_XPB specify
  1684. the data format of the file. When the audio and video files need to be played at the same time or the
  1685. video/audio transcoding needs to be carried out, please use M3G_CHAN_EXINFO structure to indicate the channel
  1686. extension information. The audio and video files played by the function are stored in the M3G control server.
  1687. * Stop Event
  1688. M3GEV_PLAY_BEGIN: The function completed successfully and the files begin to play.
  1689. M3GEV_PLAY_CMPLT: All files have played, so the playing are finished.
  1690. M3GEV_PLAY_FAIL: The function call completed unsuccessfully.
  1691. * Return value: 0 success; -1 failure
  1692. * Parameters:
  1693. -dev
  1694. The M3G channel device handle returned by ISX_m3g_OpenEx()
  1695. -iottp
  1696. Points to the I/O transfer table structure. I/O transfer tables composed of one or more DX_IOTT structures.
  1697. One DX_IOTT structure identifies a source or destination for audio and video data. During the files playing,
  1698. I/O transfer tables must be global or static. Please refer to ISX4000 VOICE User Manual for the detail of DX_IOTT.
  1699. Note: It must point to a global or static variable, otherwise unexpected errors will occur.
  1700. -tptp
  1701. Points to Termination Parameter Table structure; the Termination Parameter Tablecomposed of one or more
  1702. DV_TPT structures. The DV_TPT structure is used to specify all conditions of play terminated. Please refer
  1703. to ISX4000 VOICE User Manual for the detail of DV_TPT.
  1704. Note: It must point to a global or static variable, otherwise unexpected errors will occur.
  1705. -xpbp
  1706. Points to I/O parameter block structure. The parameter specifies the file format and data formats,
  1707. please refer to M3G_XPB for detail.
  1708. -eDirection
  1709. Please refer to eM3G_DATA_DIR for stream direction
  1710. Note: The stream direction of the H324M channel always is TDM direction (please use M3G_DATA_DIR_TDM instead).
  1711. -mode
  1712. EV_SYNC - synchronous
  1713. EV_ASYNC - asynchronous
  1714. -pExChanInfo
  1715. Additional extension information is used only when the audio and video files need to be played
  1716. at the same time or the video/audio transcoding needs to be carried out. Please refer to M3G_CHAN_EXINFO
  1717. for the detail.
  1718. -ulOperIndex
  1719. Asynchronous operation number; when the operation is completed and the M3GEV_PLAY_CMPLT or M3GEV_PLAY_FAIL occurs,
  1720. the number can be obtained through ISX_sr_getevtoperindex() function.
  1721. */
  1722. /************************************************************************/
  1723. #ifndef EHANG_ISXAPI_STD_C
  1724. ISXAPI_FUNC_STDCL(INT) ISX_m3g_Play(M3GDEV dev, DX_IOTT *iottp, const DV_TPT *tptp, M3G_XPB * xpbp=NULL, eM3G_DATA_DIR eDirection=M3G_DATA_DIR_TOIP, USHORT mode=EV_SYNC, M3G_CHAN_EXINFO *pExChanInfo=NULL, UINT ulOperIndex=0);
  1725. #else
  1726. ISXAPI_FUNC_STDCL(INT) ISX_m3g_Play(M3GDEV dev, DX_IOTT *iottp, const DV_TPT *tptp, M3G_XPB * xpbp, eM3G_DATA_DIR eDirection, USHORT mode, M3G_CHAN_EXINFO *pExChanInfo, UINT ulOperIndex);
  1727. #endif
  1728. /************************************************************************/
  1729. /* Function:ISX_m3g_Record()
  1730. * Description:
  1731. The application use the function ISX_m3g_ Record() to record audio and video files. The FileType domain
  1732. of M3G_XPB specify the file formats of the file, and other domains of M3G_XPB specify the data format of the file.
  1733. When the audio and video files need to be recorded at the same time or the video/audio transcoding needs to be
  1734. carried out, please use M3G_CHAN_EXINFO structure to indicate the channel extension information. The audio and
  1735. video files recorded by the function are stored in the M3G control server.
  1736. * Stop Event
  1737. M3GEV_RECORD_BEGIN: The function completed successfully and the file begin to record.
  1738. M3GEV_RECORD_CMPLT: The file recording finished.
  1739. M3GEV_RECORD_FAIL: The function completed unsuccessfully.
  1740. * Return value: 0 success; -1 failure
  1741. * Parameters:
  1742. -dev
  1743. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  1744. -iottp
  1745. Points to the I/O transfer table structure. I/O transfer tables composed of one or more DX_IOTT structures.
  1746. One DX_IOTT structure identifies a source or destination for audio and video data. During the files recording,
  1747. I/O transfer tables must be global or static. Please refer to ISX4000 VOICE User Manual for the detail of DX_IOTT.
  1748. Note: It must point to a global or static variable, otherwise unexpected errors will occur.
  1749. Note: Recording only supports one IOTT now.
  1750. -tptp
  1751. Points to Termination Parameter Table structure; the Termination Parameter Table composed of one or more DV_TPT
  1752. structures. The DV_TPT structure is used to specify all conditions of play terminated. Please refer to ISX4000
  1753. VOICE User Manual for the detail of DV_TPT.
  1754. Note: It must point to a global or static variable, otherwise unexpected errors will occur.
  1755. -xpbp
  1756. Points to I/O parameter block structure. The parameter specifies the file format and data formats,
  1757. please refer to M3G_XPB for detail.
  1758. -eDirection
  1759. Please refer to eM3G_DATA_DIR for stream direction
  1760. Note: The stream direction of the H324M channel always is TDM direction (please use M3G_DATA_DIR_TDM instead).
  1761. -mode
  1762. Synchronous/asynchronous mode:
  1763. EV_SYNC - synchronous
  1764. EV_ASYNC - asynchronous
  1765. -pExChanInfo
  1766. Additional extension information is used only when the audio and video files need to be recorded at the same
  1767. time or the video/audio transcoding needs to be carried out. Please refer to M3G_CHAN_EXINFO for the details.
  1768. -ulOperIndex
  1769. Asynchronous operation number; when the operation is completed and the M3GEV_RECORD_CMPLT or M3GEV_RECORD_FAIL
  1770. occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  1771. */
  1772. /************************************************************************/
  1773. #ifndef EHANG_ISXAPI_STD_C
  1774. ISXAPI_FUNC_STDCL(INT) ISX_m3g_Record(M3GDEV dev, DX_IOTT *iottp, const DV_TPT *tptp, M3G_XPB * xpbp=NULL, eM3G_DATA_DIR eDirection=M3G_DATA_DIR_FROMIP, USHORT mode=EV_SYNC, M3G_CHAN_EXINFO *pExChanInfo=NULL, UINT ulOperIndex=0);
  1775. #else
  1776. ISXAPI_FUNC_STDCL(INT) ISX_m3g_Record(M3GDEV dev, DX_IOTT *iottp, const DV_TPT *tptp, M3G_XPB * xpbp, eM3G_DATA_DIR eDirection, USHORT mode, M3G_CHAN_EXINFO *pExChanInfo, UINT ulOperIndex);
  1777. #endif
  1778. /************************************************************************/
  1779. /* Function:ISX_m3g_StopCh()
  1780. * Description:
  1781. The application use the function ISX_m3g_StopCh() to forces termination of currently active I/O functions
  1782. on a M3G channel. If the specified channel has no active I/O functions, there is no action on the channel.
  1783. After the active I/O functions were terminated, the terminated reason (TM_USRSTOP) can be obtained through
  1784. the ISX_ATDX_TERMMSK() function.
  1785. * Terminated Event
  1786. M3GEV_PLAY_CMPLT: After the function completed, file playing action was forcibly terminated
  1787. M3GEV_RECORD_CMPLT: After the function completed, file recording action was forcibly terminated.
  1788. M3GEV_RECV_DIGITS_CMPLT: After the function completed, the DIGIT receiving action is forcibly stopped.
  1789. M3GEV_STOP_FAIL: The function completed unsuccessfully.
  1790. * Return value: 0 success; -1 failure
  1791. * Parameters:
  1792. -dev
  1793. The M3G channel device handle returned by ISX_m3g_OpenEx()
  1794. -mode
  1795. Call mode:
  1796. EV_SYNC - synchronous
  1797. EV_ASYNC - asynchronous
  1798. I/O mode:
  1799. EV_STOPPLAY: terminate playing action
  1800. EV_STOPREC: terminate recording action
  1801. EV_STOPGETDIG: terminate receiving DIGIT action
  1802. Mode can be the combination of call mode and I/O mode (Bitwise OR)
  1803. */
  1804. /************************************************************************/
  1805. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StopCh(M3GDEV dev, USHORT mode );
  1806. /************************************************************************/
  1807. /* Function:ISX_m3g_PauseCh()
  1808. * Description:
  1809. The application use the function ISX_m3g_PauseCh() to suspend the I/O actions of a M3G channel.
  1810. If the specified channel has no I/O actions, there is no any influence on the channel. After the I/O actions
  1811. were suspended, the M3GEV_PAUSE_CMPLT or M3GEV_PAUSE_FAIL event will occur. After the event is received,
  1812. the currently suspended operation types (OPER_PLAY and OPER_RECORD) can be obtained through ISX_sr_getevtopertype()
  1813. function.
  1814. * Stop Event
  1815. M3GEV_PAUSE_CMPLT : The function completed successfully.
  1816. M3GEV_PAUSE_FAIL: The function completed unsuccessfully.
  1817. * Return value: 0 success; -1 failure
  1818. * Parameters:
  1819. -dev
  1820. The M3G channel device handle returned by ISX_m3g_OpenEx()
  1821. -mode
  1822. Call mode:
  1823. EV_SYNC - synchronous
  1824. EV_ASYNC - asynchronous
  1825. I/O mode:
  1826. EV_ PAUSEPLAY - suspend the file playing
  1827. EV_ PAUSEREC - suspend the file recording
  1828. Mode can be the combination of call mode and I/O mode (Bitwise OR)
  1829. */
  1830. /************************************************************************/
  1831. ISXAPI_FUNC_STDCL(INT) ISX_m3g_PauseCh(M3GDEV dev, USHORT mode );
  1832. /************************************************************************/
  1833. /* Function:ISX_m3g_ResumeCh()
  1834. * Description:
  1835. The application use the function ISX_m3g_ ResumeCh() to resume the suspended I/O actions of a M3G channel.
  1836. If the specified channel has no I/O actions suspended, there is no any influence on the channel. After the I/O
  1837. actions are resumed, the M3GEV_RESUME_CMPLT or M3GEV_RESUME_FAIL event will occur. After the event is received,
  1838. the currently suspended operation types (OPER_PLAY and OPER_RECORD) can be obtained through ISX_sr_getevtopertype()
  1839. function.
  1840. * Stop Event
  1841. M3GEV_RESUME_CMPLT: The function completed successfully.
  1842. M3GEV_RESUME_FAIL: The function completed unsuccessfully.
  1843. * Return value: 0 success; -1 failure
  1844. * Parameters:
  1845. -dev
  1846. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  1847. -mode
  1848. Call mode:
  1849. EV_SYNC - synchronous
  1850. EV_ASYNC - asynchronous
  1851. I/O mode:
  1852. EV_ RESUMEPLAY - resume the file playing
  1853. EV_ RESUMEREC - resume the file recording
  1854. Mode can be the combination of call mode and I/O mode (Bitwise OR)
  1855. */
  1856. /************************************************************************/
  1857. ISXAPI_FUNC_STDCL(INT) ISX_m3g_ResumeCh(M3GDEV dev, USHORT mode );
  1858. /************************************************************************/
  1859. /* Function:ISX_m3g_SendDigits()
  1860. * Description:
  1861. The application use the function ISX_m3g_SendDigits() to send DIGIT with the specified M3G channel.
  1862. When the sending direction is DIGIT_H324M and the DIGIT type is DIGIT_ALPHA_NUMERIC, the pDigitInfo
  1863. structure contain the sending contents and the SDK will not convert before sending. Otherwise, the SDK will
  1864. convert the sending content with the following table before sending.
  1865. -----------------------------------------------------------
  1866. DIGIT (character) Value after conversion (hex)
  1867. -----------------------------------------------------------
  1868. '0' 0x00
  1869. '1' 0x01
  1870. '2' 0x02
  1871. '3' 0x03
  1872. '4' 0x04
  1873. '5' 0x05
  1874. '6' 0x06
  1875. '7' 0x07
  1876. '8' 0x08
  1877. '9' 0x09
  1878. '*' 0x0a
  1879. '#' 0x0b
  1880. 'a' or 'A' 0x0c
  1881. 'b' or 'B' 0x0d
  1882. 'c' or 'C' 0x0e
  1883. 'd' or 'D' 0x0f
  1884. -----------------------------------------------------------
  1885. Note: The above table is valid for the DIGIT_TDM or DIGIT_IP direction. And for the DIGIT_IP direction,
  1886. DIGIT can only be sent one by one.
  1887. * Stop Event
  1888. M3GEV_SEND_DIGITS_CMPLT: The function completed successfully and all the digits sent.
  1889. M3GEV_SEND_DIGITS_FAIL: The function completed unsuccessfully.
  1890. * Return value: 0 success; -1 failure
  1891. * Parameters:
  1892. -dev
  1893. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  1894. -pDigitInfo
  1895. The pointer of the DIGITS information structure. Please refer to M3G_DIGIT_INFO for the details
  1896. -mode
  1897. EV_ASYNC - asynchronous
  1898. EV_SYNC - synchronous
  1899. -ulOperIndex
  1900. Asynchronous operation number; when the operation is completed and the M3GEV_SEND_DIGITS_CMPLT or
  1901. M3GEV_SEND_DIGITS_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  1902. */
  1903. /************************************************************************/
  1904. #ifndef EHANG_ISXAPI_STD_C
  1905. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SendDigits(M3GDEV dev, M3G_DIGIT_INFO *pDigitInfo,USHORT mode, UINT ulOperIndex=0);
  1906. #else
  1907. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SendDigits(M3GDEV dev, M3G_DIGIT_INFO *pDigitInfo,USHORT mode, UINT ulOperIndex);
  1908. #endif
  1909. /************************************************************************/
  1910. /* Function:ISX_m3g_GetDigits()
  1911. * Description:
  1912. The application use the function ISX_m3g_GetDigits() to gather digits of a M3G channel.
  1913. After the action terminated, the gathered digits were written into the local buffer specified by digitp in ASCIIZ
  1914. format. At present, the digits type only is DTMF and can not be other TONEs(such as MFs and user-defined TONEs).
  1915. The action of gathering DIGITs can be stopped through ISX_m3g_StopCh() function.
  1916. * Stop Event:
  1917. M3GEV_GET_DIGITS_CMPLT: The event indicates that the DIGITS data is received.
  1918. M3GEV_GET_DIGITS_FAIL: The function completed unsuccessfully.
  1919. * Return value: 0 success; -1 failure
  1920. * Parameters:
  1921. dev The M3G channel device handle returned by ISX_m3g_OpenEx()
  1922. -tptp
  1923. Points to Termination Parameter Table structure; the Termination Parameter Table composed of one or more
  1924. DV_TPT structures. The DV_TPT structure is used to specify all conditions of play terminated. Please refer to
  1925. ISX4000 VOICE User Manual for the detail of DV_TPT.
  1926. -digitp
  1927. The pointer pointing to DIGITS information structure; please refer to ISX4000 VOICE User Manual for the detailed
  1928. information of DV_DIGIT.
  1929. -mode
  1930. EV_ASYNC - asynchronous
  1931. EV_SYNC - synchronous
  1932. -ulOperIndex
  1933. Asynchronous operation number; when the operation is completed and the M3GEV_GET_DIGITS_CMPLT or
  1934. M3GEV_GET_DIGITS_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  1935. */
  1936. /************************************************************************/
  1937. #ifndef EHANG_ISXAPI_STD_C
  1938. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetDigits(M3GDEV dev, const DV_TPT *tptp, DV_DIGIT *digitp, USHORT mode, UINT ulOperIndex=0);
  1939. #else
  1940. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetDigits(M3GDEV dev, const DV_TPT *tptp, DV_DIGIT *digitp, USHORT mode, UINT ulOperIndex);
  1941. #endif
  1942. /************************************************************************/
  1943. /* Function:ISX_m3g_ClrDigBuf()
  1944. * Description:
  1945. The application use the function ISX_m3g_ClrDigBuf() to clear the digits buffer of the channel clearly.
  1946. * Return value: 0 success; -1 failure
  1947. * Parameters:
  1948. -dev
  1949. Valid M3G channel device handle (returned by ISX_m3g_OpenEx())
  1950. */
  1951. /************************************************************************/
  1952. ISXAPI_FUNC_STDCL(INT) ISX_m3g_ClrDigBuf(M3GDEV dev);
  1953. /************************************************************************/
  1954. /* Function:ISX_m3g_StartH245()
  1955. * Description:
  1956. The application use the function ISX_m3g_StartH245() to initiate the H.245 call of the M3G channel.
  1957. * Stop Event
  1958. M3GEV_START_H245_CMPLT: The H.245 call initiated successfully.
  1959. M3GEV_START_H245_FAIL: The H.245 call initiated unsuccessfully.
  1960. * Return value: 0 success; -1 failure
  1961. * Parameters:
  1962. -dev
  1963. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  1964. -pParmInfo
  1965. points to the M3G channel parameter information structure; please refer to M3G_CHAN_PARAM for the details.
  1966. -mode
  1967. EV_ASYNC - asynchronous
  1968. EV_SYNC - synchronous
  1969. -ulOperIndex
  1970. Asynchronous operation number; when the operation is completed and the events M3GEV_START_H245_CMPLT
  1971. or M3GEV_START_H245_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  1972. */
  1973. /************************************************************************/
  1974. #ifndef EHANG_ISXAPI_STD_C
  1975. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StartH245(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode=EV_SYNC, UINT ulOperIndex = 0);
  1976. #else
  1977. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StartH245(M3GDEV dev, M3G_CHAN_PARAM *pParmInfo, USHORT mode, UINT ulOperIndex);
  1978. #endif
  1979. /************************************************************************/
  1980. /* Function:ISX_m3g_StopH245()
  1981. * Description:
  1982. The application use the function ISX_m3g_StopH245() to drop the H245 call of the M3G channel.
  1983. * Stop Event
  1984. M3GEV_STOP_H245_CMPLT: The H245 call dropped successfully.
  1985. M3GEV_STOP_H245_FAIL: The H245 call dropped unsuccessfully.
  1986. * Return value: 0 success; -1 failure
  1987. * Parameters:
  1988. -dev
  1989. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  1990. -mode
  1991. EV_ASYNC - asynchronous
  1992. EV_SYNC - synchronous
  1993. -ulOperIndex
  1994. Asynchronous operation number; when the operation is completed and the events M3GEV_STOP_H245_CMPLT
  1995. or M3GEV_STOP_H245_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  1996. */
  1997. /************************************************************************/
  1998. #ifndef EHANG_ISXAPI_STD_C
  1999. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StopH245(M3GDEV dev, USHORT mode=EV_SYNC, UINT ulOperIndex = 0);
  2000. #else
  2001. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StopH245(M3GDEV dev, USHORT mode, UINT ulOperIndex);
  2002. #endif
  2003. /************************************************************************/
  2004. /* Function:ISX_m3g_GetCallStatus()
  2005. * Description:
  2006. The application use the function ISX_m3g_GetCallStatus() to return the call status (including H223 link
  2007. status and call progress status) after the 3G-324M call initiated. The returned status information was
  2008. written into the buffer specified by pStatusInfo.
  2009. * Stop Event
  2010. M3GEV_GET_CALL_STATUS_CMPLT: The call status returned successfully.
  2011. M3GEV_GET_CALL_STATUS_FAIL: The call status returned unsuccessfully.
  2012. * Return value: 0 success; -1 failure
  2013. * Parameters:
  2014. -dev
  2015. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  2016. -pStatusInfo
  2017. points to the H324M call status information structure; please refer to M3G_CALL_STATUS for the details.
  2018. -mode
  2019. EV_ASYNC - asynchronous
  2020. EV_SYNC - synchronous
  2021. -ulOperIndex
  2022. Asynchronous operation number; when the operation is completed, the number can
  2023. be obtained through ISX_sr_getevtoperindex() function.
  2024. */
  2025. /************************************************************************/
  2026. #ifndef EHANG_ISXAPI_STD_C
  2027. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetCallStatus(M3GDEV dev, M3G_CALL_STATUS *pStatusInfo, USHORT mode=EV_SYNC, UINT ulOperIndex=0);
  2028. #else
  2029. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetCallStatus(M3GDEV dev, M3G_CALL_STATUS *pStatusInfo, USHORT mode, UINT ulOperIndex);
  2030. #endif
  2031. /************************************************************************/
  2032. /* Function:ISX_m3g_GetMsdInfo()
  2033. * Description:
  2034. The application use the function ISX_m3g_GetMsdInfo() to return the MSD information (such as MSD signal status,
  2035. local terminal type, remote terminal type and other informations) after the 3G-324M call initiated. The retrived
  2036. MSD data information is written into the buffer specified by pMsdInfo.
  2037. * Stop Event
  2038. M3GEV_GET_MSDINFO_CMPLT: The MSD information returned successfully.
  2039. M3GEV_GET_MSDINFO_FAIL: The MSD information returned unsuccessfully.
  2040. * Return value: 0 success; -1 failure
  2041. * Parameters:
  2042. -dev
  2043. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  2044. -pMsdInfo
  2045. points to the MSD information structure; please refer to M3G_MSD_INFO for details.
  2046. -mode
  2047. EV_ASYNC - asynchronous
  2048. EV_SYNC - synchronous
  2049. -ulOperIndex
  2050. Asynchronous operation number; when the operation is completed, the number can be obtained through
  2051. ISX_sr_getevtoperindex() function.
  2052. */
  2053. /************************************************************************/
  2054. #ifndef EHANG_ISXAPI_STD_C
  2055. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetMsdInfo(M3GDEV dev, M3G_MSD_INFO *pMsdInfo, USHORT mode=EV_SYNC, UINT ulOperIndex=0);
  2056. #else
  2057. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetMsdInfo(M3GDEV dev, M3G_MSD_INFO *pMsdInfo, USHORT mode, UINT ulOperIndex);
  2058. #endif
  2059. /************************************************************************/
  2060. /* Function:ISX_m3g_GetTermCaps()
  2061. * Description:
  2062. The application use the function ISX_m3g_GetTermCaps() to return the local, remote and matching TCS information
  2063. (TCS data) after the 3G-324M call initiated. The returned TCS data information is written into the buffer specified
  2064. by pTcsInfo. The local terminal capacity can be modified through ISX_m3g_SetParm() function.
  2065. * Stop Event
  2066. M3GEV_GET_TERM_CAPS_CMPLT: The TCS information returned successfully.
  2067. M3GEV_GET_TERM_CAPS_FAIL: The TCS information returned unsuccessfully.
  2068. * Return value: 0 success; -1 failure
  2069. * Parameters:
  2070. -dev The M3G channel device handle returned by ISX_m3g_OpenEx( )
  2071. -pTcsInfo points to the M3G terminal capacity set information structure; please refer to M3G_TCS_INFO for details.
  2072. -mode:
  2073. EV_ASYNC - asynchronous
  2074. EV_SYNC - synchronous
  2075. -ulOperIndex
  2076. Asynchronous operation number; when the operation is completed and the events M3GEV_GET_TERM_CAPS_CMPLT
  2077. or M3GEV_GET_TERM_CAPS_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  2078. */
  2079. /************************************************************************/
  2080. #ifndef EHANG_ISXAPI_STD_C
  2081. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetTermCaps(M3GDEV dev, M3G_TCS_INFO *pTcsInfo, USHORT mode=EV_SYNC, UINT ulOperIndex=0);
  2082. #else
  2083. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetTermCaps(M3GDEV dev, M3G_TCS_INFO *pTcsInfo, USHORT mode, UINT ulOperIndex);
  2084. #endif
  2085. /************************************************************************/
  2086. /* Function:ISX_m3g_GetLCParm()
  2087. * Description:
  2088. The application use the function ISX_m3g_GetLCParm() to return the LC parameters(Logic Channel parameters)
  2089. of H324M channel. The function must be called after receiving the M3GEV_LCINFO_STATUS event corresponding to
  2090. the logical channel. The returned LC parameter is written into the buffer specified by pLcParam.
  2091. * Stop Event
  2092. M3GEV_GET_LC_PARM_CMPLT: The LC parameter returned successfully.
  2093. M3GEV_GET_LC_PARM_FAIL: The LC parameter returned unsuccessfully.
  2094. * Return value: 0 success; -1 failure
  2095. * Parameters:
  2096. -dev
  2097. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  2098. -LogicChanNo
  2099. Please refer to eM3G_LC_NUMBER for the valid value of H324M logical channel number
  2100. -pLcParam
  2101. points to the M3G logical channel parameter information structure; please refer to M3G_LC_PARAM for details.
  2102. -mode
  2103. EV_ASYNC - asynchronous
  2104. EV_SYNC - synchronous
  2105. -ulOperIndex
  2106. Asynchronous operation number; when the operation is completed and the M3GEV_GET_LC_PARM_CMPLT or
  2107. M3GEV_GET_LC_PARM_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  2108. */
  2109. /************************************************************************/
  2110. #ifndef EHANG_ISXAPI_STD_C
  2111. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetLCParm(M3GDEV dev, eM3G_LC_NUMBER ucLogicChanNo, M3G_LC_PARAM *pLcParam, USHORT mode=EV_SYNC, UINT ulOperIndex=0);
  2112. #else
  2113. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetLCParm(M3GDEV dev, eM3G_LC_NUMBER ucLogicChanNo, M3G_LC_PARAM *pLcParam, USHORT mode, UINT ulOperIndex);
  2114. #endif
  2115. /************************************************************************/
  2116. /* Function:ISX_m3g_SendH245MiscCmd()
  2117. * Description:
  2118. The application use the function ISX_m3g_SendH245MiscCmd() to send MISC command to the remote of the
  2119. H.245 call. The command must be sent after the H245 call initiated(namely, after the ISX_m3g_StartH245()
  2120. function is successfully completed).
  2121. * Stop Event
  2122. M3GEV_SEND_H245_MISC_CMD_CMPLT: The MISC command sent successfully.
  2123. M3GEV_SEND_H245_MISC_CMD_FAIL: The MISC command sent unsuccessfully.
  2124. * Return value: 0 success; -1 failure
  2125. * Parameters:
  2126. -dev
  2127. The M3G channel device handle returned by ISX_m3g_OpenEx( )
  2128. -pMiscInfo
  2129. points to the MISC command information structure; please refer to M3G_H245_MISC_INFO for details.
  2130. -mode
  2131. EV_ASYNC - asynchronous
  2132. EV_SYNC - synchronous
  2133. -ulOperIndex
  2134. Asynchronous operation number; when the operation is completed and the M3GEV_SEND_H245_MISC_CMD_CMPLT or
  2135. M3GEV_SEND_H245_MISC_CMD_FAIL occurs, the number can be obtained through ISX_sr_getevtoperindex() function.
  2136. */
  2137. /************************************************************************/
  2138. #ifndef EHANG_ISXAPI_STD_C
  2139. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SendH245MiscCmd(M3GDEV dev, M3G_H245_MISC_INFO *pMiscInfo, USHORT mode=EV_SYNC, UINT ulOperIndex=0);
  2140. #else
  2141. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SendH245MiscCmd(M3GDEV dev, M3G_H245_MISC_INFO *pMiscInfo, USHORT mode, UINT ulOperIndex);
  2142. #endif
  2143. /************************************************************************/
  2144. /* Function:ISX_m3g_SetEvtMsk()
  2145. * Description:
  2146. The application use the function ISX_m3g_SetEvtMsk() to set the channel event mask.
  2147. If the mask of an event is cleared, the event will not be sent to the application.
  2148. Please refer to Table 1 for the mask type and the default value of the event.
  2149. -----------------------------------------------------------------------------
  2150. Type Description Default value
  2151. -----------------------------------------------------------------------------
  2152. M3GMM_DIGITS_RECEIVED Set whether to receive the M3GEV_DIGITS_RECEIVED event Disable
  2153. M3GMM_CST Set whether to receive the M3GEV_CST event Disable
  2154. -----------------------------------------------------------------------------
  2155. * Return value: 0 success; -1 failure
  2156. * Parameters:
  2157. -dev
  2158. The M3G channel device handle returned by ISX_m3g_OpenEx()
  2159. -mask
  2160. Please refer to Table 1 for the event mask
  2161. -action Action marks:
  2162. M3GACT_SETMSK: allows receiving the specified event, but forbids the unspecified events.
  2163. M3GACT_ADDMSK: allows receiving the specified events.
  2164. M3GACT_SUBMSK: does not allow receiving the specified events.
  2165. */
  2166. /************************************************************************/
  2167. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetEvtMsk(INT dev, UINT mask, INT action);
  2168. /************************************************************************/
  2169. /* Function:ISX_ATM3G_TERMMSK()
  2170. * Description:
  2171. The application use the ISX_ATM3G_TERMMSK() function to return the last I/O operation terminated reason.
  2172. * Return value: 0 success; -1 failure
  2173. * Parameters:
  2174. -dev
  2175. Valid M3G channel device handle
  2176. -OperType
  2177. Operation type
  2178. */
  2179. /************************************************************************/
  2180. #ifndef EHANG_ISXAPI_STD_C
  2181. ISXAPI_FUNC_STDCL(INT) ISX_ATM3G_TERMMSK(M3GDEV dev, INT OperType = OPER_UNKNOWN);
  2182. #else
  2183. ISXAPI_FUNC_STDCL(INT) ISX_ATM3G_TERMMSK(M3GDEV dev, INT OperType);
  2184. #endif
  2185. /************************************************************************/
  2186. /* Function:ISX_m3g_SetUsrAttr()
  2187. * Description:
  2188. The application use the function ISX_m3g_SetUsrAttr() to set the channel attribute
  2189. (user-defined). The user attribute set by the user can be returned through the ISX_m3g_GetUsrAttr() function.
  2190. * Return value: 0 success; -1 failure
  2191. * Parameters:
  2192. -dev
  2193. Valid M3G channel device handle
  2194. -usrattr
  2195. The pointer of user attribute
  2196. */
  2197. /************************************************************************/
  2198. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetUsrAttr(M3GDEV dev, VOID *usr_attr);
  2199. /************************************************************************/
  2200. /* Function:ISX_m3g_GetUsrAttr()
  2201. * Description:
  2202. The application use the function ISX_m3g_GetUsrAttr() to return the user-defined attributes
  2203. (the user attributes set previously through the function ISX_m3g_OpenEx() and ISX_m3g_SetUsrAttr()).
  2204. * Return value: 0 success; -1 failure
  2205. * Parameters:
  2206. -dev
  2207. The M3G device handle returned by ISX_m3g_OpenEx() or ISX_m3g_Open()
  2208. -usr_attrp
  2209. The pointer for saving the user attribute address
  2210. */
  2211. /************************************************************************/
  2212. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetUsrAttr(M3GDEV dev, VOID **usr_attrp);
  2213. /************************************************************************/
  2214. /* Function:ISX_ATM3G_BUFDIGS()
  2215. * Description:
  2216. The application use the ISX_ATM3G_BUFDIGS() function to get the number of digits in
  2217. the digit buffer of VOICE channel. The digit buffer has at most 31 digits and 1 NULL terminator.
  2218. * Return value: 0 success; -1 failure
  2219. * Parameters:
  2220. -dev
  2221. Valid M3G channel device handle
  2222. */
  2223. /************************************************************************/
  2224. ISXAPI_FUNC_STDCL(INT) ISX_ATM3G_BUFDIGS(M3GDEV dev);
  2225. /************************************************************************/
  2226. /* Function:ISX_m3g_DownloadFont()
  2227. * Description:
  2228. For the text-overlay functions, the application can select using the built-in ttf or the customized
  2229. ttf that downloaded on the M3G board. The application use the function ISX_m3g_DownloadFont() to download
  2230. the TrueType font file of the customer to the specified M3G board.
  2231. * Stop Event
  2232. M3GEV_DOWNLOADFONT_CMPLT: The font download successfully.
  2233. M3GEV_DOWNLOADFONT_FAIL:The font download unsuccessfully.
  2234. * Return value: 0 success; -1 failure
  2235. * Parameters:
  2236. -ucIsxNo
  2237. Valid iSX node number, range: 0~ MAX_NODE_NUM
  2238. -ucBrdNo
  2239. Valid M3G board number, range: 0~ MAX_M3G_BRD
  2240. -szFileName
  2241. Points to the font file name.
  2242. -tTimeout
  2243. timeout time during downloading, the default is -1 that the application will wait the file download completed. Unit: ms
  2244. -mode
  2245. Synchronous/asynchronous mode:
  2246. EV_SYNC - synchronous
  2247. EV_ASYNC - asynchronous
  2248. -ulOperIndex
  2249. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through
  2250. ISX_sr_getevtoperindex() function when the font download is completed and the event M3GEV_DOWNLOADFONT_CMPLT occurs.
  2251. pRvr
  2252. */
  2253. /************************************************************************/
  2254. #ifndef EHANG_ISXAPI_STD_C
  2255. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DownloadFont(UCHAR ucIsxNo, UCHAR ucBrdNo, CHAR *pszFileName, INT tTimeout=(INT)-1, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2256. #else
  2257. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DownloadFont(UCHAR ucIsxNo, UCHAR ucBrdNo, CHAR *pszFileName, INT tTimeout, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2258. #endif
  2259. /************************************************************************/
  2260. /* Function:ISXE_m3g_CtrlToolbox()
  2261. * Description:
  2262. The application use the function ISX_m3g_CtrlToolbox() to configure the toolbox of video channel.
  2263. Before use the function, the application must start the video media of the channel (namely, the function ISX_m3g_StartMedia() must be successful).
  2264. * Stop Event
  2265. M3GEV_CTRLTOOLBOX_CMPLT: The toolbox configured successfully.
  2266. M3GEV_CTRLTOOLBOX_FAIL: The toolbox configured unsuccessfully.
  2267. * Return value: 0 success; -1 failure
  2268. * Parameters:
  2269. -dev
  2270. The valid video channel device handle returned by ISX_m3g_OpenEx()
  2271. -ucToolboxType
  2272. Please refer to eM3G_TOOLBOX_TYPE for the toolbox type; only after the video channel was added to the video mixer,
  2273. the application can configure the M3G_TOOLBOX_TYPE_VIDEOCONF.
  2274. -ucCtrlCode
  2275. Please refer to eM3G_TOOLBOX_CTRLCODE for the toolbox control code
  2276. -pConfig
  2277. The toolbox configuration information is specified by M3G_TOOLBOX_CONFIG structure.
  2278. -pszLogoFileName
  2279. When the control code has M3G_VIDEO_LOGO_DOWNLOAD, pszLogoFileName is bitmap file name of the LOGO that will
  2280. download to the toolbox and the LOGO file name can not exceed 256 bytes. On other control code, the pointer can
  2281. be NULL.
  2282. -mode
  2283. Synchronous/asynchronous mode:
  2284. EV_SYNC - synchronous
  2285. EV_ASYNC - asynchronous
  2286. -ulOperIndex
  2287. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through
  2288. ISX_sr_getevtoperindex() function when the control toolbox is completed and the event M3GEV_CTRLTOOLBOX_CMPLT
  2289. occurs.
  2290. */
  2291. /************************************************************************/
  2292. #ifndef EHANG_ISXAPI_STD_C
  2293. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CtrlToolbox(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucCtrlCode, M3G_TOOLBOX_CONFIG *pConfig, CHAR *pszLogoFileName=NULL, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2294. #else
  2295. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CtrlToolbox(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucCtrlCode, M3G_TOOLBOX_CONFIG *pConfig, CHAR *pszLogoFileName, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2296. #endif
  2297. /************************************************************************/
  2298. /* Function:ISX_m3g_DownloadLogo()
  2299. * Description:
  2300. The application use the function ISX_m3g_DownloadLogo( ) to download the LOGO bitmap file to the toolbox of the
  2301. VIDEO channel. Before use the function, the application must start the video media of the channel (namely, the
  2302. function ISX_m3g_StartMedia() must be successful).
  2303. * Stop Event
  2304. M3GEV_DOWNLOADLOGO_CMPLT: The LOGO file download successfully.
  2305. M3GEV_DOWNLOADLOGO_FAIL: The LOGO file download unsuccessfully.
  2306. * Return value: 0 success; -1 failure
  2307. * Parameters:
  2308. -dev
  2309. The valid video channel device handle returned by ISX_m3g_OpenEx()
  2310. -ucToolboxType
  2311. Please refer to eM3G_TOOLBOX_TYPE for the toolbox type; only after the video channel was added to the video mixer,
  2312. the application can configure the M3G_TOOLBOX_TYPE_VIDEOCONF.
  2313. -pszFileName
  2314. Points to the LOGO bitmap filename. The length of LOGO file name can not exceed 256 bytes.
  2315. -pConfig
  2316. LOGO configuration information is specified by M3G_LOGO_CONFIG structure. When it is NULL, only download the LOGO
  2317. file to toolbox but not change the configuration of toolbox. After the file downloading is completed, the LOGO will
  2318. displayed on default.
  2319. -mode
  2320. Synchronous/asynchronous mode:
  2321. EV_SYNC - synchronous (default)
  2322. EV_ASYNC - asynchronous
  2323. -ulOperIndex
  2324. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through
  2325. ISX_sr_getevtoperindex() function when the LOGO parameter configuring is completed and the event
  2326. M3GEV_SETLOGOPARM_CMPLT occurs.
  2327. */
  2328. /************************************************************************/
  2329. #ifndef EHANG_ISXAPI_STD_C
  2330. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DownloadLogo(M3GDEV dev, UCHAR ucToolboxType, CHAR *pszFileName, M3G_LOGO_CONFIG *pConfig, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2331. #else
  2332. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DownloadLogo(M3GDEV dev, UCHAR ucToolboxType, CHAR *pszFileName, M3G_LOGO_CONFIG *pConfig, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2333. #endif
  2334. /************************************************************************/
  2335. /* Function:ISX_m3g_SetLogoParm()
  2336. * Description:
  2337. The application use the function ISX_m3g_SetLogoParm() to set the LOGO attribute such as overlay position,
  2338. showing, hiding or other parameters of video channel. After the LOGO file downloaded to the toolbox of video
  2339. channel(please refer to ISX_m3g_DownloadLogo() function), the application can change the attributes of the LOGO.
  2340. Before use the function, the application must start the video media of the channel (namely, the function
  2341. ISX_m3g_StartMedia() must be successful).
  2342. * Stop Event
  2343. M3GEV_SETLOGOPARM_CMPLT: The LOGO attributes set successfully.
  2344. M3GEV_SETLOGOPARM_FAIL: The LOGO attributes set unsuccessfully.
  2345. * Return value: 0 success; -1 failure
  2346. * Parameters:
  2347. -dev
  2348. The valid video channel device handle returned by ISX_m3g_OpenEx()
  2349. -ucToolboxType
  2350. Please refer to eM3G_TOOLBOX_TYPE for the toolbox type; only after the video channel was added to the video mixer,
  2351. the application can configure the M3G_TOOLBOX_TYPE_VIDEOCONF.
  2352. -pConfig
  2353. Points to LOGO configuration information and it is M3G_LOGO_CONFIG structure. This pointer can not be NULL. The LOGO
  2354. is display on default.
  2355. -mode
  2356. Synchronous/asynchronous mode:
  2357. EV_SYNC - synchronous (default)
  2358. EV_ASYNC - asynchronous
  2359. -ulOperIndex
  2360. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through
  2361. ISX_sr_getevtoperindex() function when the LOGO parameter setting is completed and the event M3GEV_SETLOGOPARM_CMPLT
  2362. occurs.
  2363. */
  2364. /************************************************************************/
  2365. #ifndef EHANG_ISXAPI_STD_C
  2366. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetLogoParm(M3GDEV dev, UCHAR ucToolboxType, M3G_LOGO_CONFIG *pConfig, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2367. #else
  2368. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetLogoParm(M3GDEV dev, UCHAR ucToolboxType, M3G_LOGO_CONFIG *pConfig, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2369. #endif
  2370. /************************************************************************/
  2371. /* Function:ISX_m3g_StartTextOverlay()
  2372. * Description:
  2373. The application use the function ISX_m3g_StartTextOverlay() to start the text overlay function corresponding to ucStringId of the video channel.
  2374. * Stop Event
  2375. M3GEV_STARTTEXTOVERLAY_CMPLT: The text overlay started successfully.
  2376. M3GEV_STARTTEXTOVERLAY_FAIL: The text overlay started unsuccessfully.
  2377. * Return value: 0 success; -1 failure
  2378. * Parameters:
  2379. dev
  2380. The valid video channel device handle returned by ISX_m3g_OpenEx()
  2381. ucToolboxType
  2382. Please refer to eM3G_TOOLBOX_TYPE for the toolbox type; only after the video channel was added to the video mixer,
  2383. the application can configure the M3G_TOOLBOX_TYPE_VIDEOCONF.
  2384. ucStringId
  2385. String ID of Text Overlay; each channel can have multiple text strings overlayed and each text string has a ID as
  2386. denotation; The range is 0~7;
  2387. pConfig
  2388. Points to the M3G_TEXTOVERLAY_CONFIG structure
  2389. mode
  2390. Synchronous/asynchronous mode:
  2391. EV_SYNC - synchronous
  2392. EV_ASYNC - asynchronous
  2393. ulOperIndex
  2394. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through
  2395. ISX_sr_getevtoperindex() function when the text overlay startup is completed and the event
  2396. M3GEV_STARTTEXTOVERLAY_CMPLT occurs.
  2397. */
  2398. /************************************************************************/
  2399. #ifndef EHANG_ISXAPI_STD_C
  2400. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StartTextOverlay(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, M3G_TEXTOVERLAY_CONFIG *pConfig, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2401. #else
  2402. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StartTextOverlay(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, M3G_TEXTOVERLAY_CONFIG *pConfig, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2403. #endif
  2404. /************************************************************************/
  2405. /* Function:ISX_m3g_StopTextOverlay()
  2406. * Description:
  2407. The application use the function ISX_m3g_StopTextOverlay() to stop the text overlay function corresponding to ucStringId of the video channel.
  2408. * Stop Event
  2409. M3GEV_STOPTEXTOVERLAY_CMPLT: The event text overlay stopped successfully.
  2410. M3GEV_STOPTEXTOVERLAY_FAIL: The text overlay stopped unsuccessfully.
  2411. * Return value: 0 success; -1 failure
  2412. * Parameters:
  2413. dev
  2414. The valid video channel device handle returned by ISX_m3g_OpenEx()
  2415. ucToolboxType
  2416. Please refer to eM3G_TOOLBOX_TYPE for the toolbox type; only after the video channel was added to the video mixer,
  2417. the application can configure the M3G_TOOLBOX_TYPE_VIDEOCONF.
  2418. ucStringId
  2419. String ID of Text Overlay; each channel can have multiple text strings overlayed and each text string has a ID as
  2420. denotation; The range is 0~7;
  2421. mode
  2422. Synchronous/asynchronous mode:
  2423. EV_SYNC - synchronous
  2424. EV_ASYNC - asynchronous
  2425. ulOperIndex
  2426. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through
  2427. ISX_sr_getevtoperindex() function when the text overlay stop is completed and the event M3GEV_STOPTEXTOVERLAY_CMPLT
  2428. occurs.
  2429. */
  2430. /************************************************************************/
  2431. #ifndef EHANG_ISXAPI_STD_C
  2432. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StopTextOverlay(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2433. #else
  2434. ISXAPI_FUNC_STDCL(INT) ISX_m3g_StopTextOverlay(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2435. #endif
  2436. /************************************************************************/
  2437. /* Function:ISX_m3g_SetTextOverlayParm()
  2438. * Description:
  2439. The application use the function ISX_m3g_SetTextOverlay() to modify the text overlay configuration corresponding to ucStringId of the video channel.
  2440. * Stop Event
  2441. M3GEV_SETTEXTOVERLAYPARM_CMPLT: The text overlay attributes set successfully.
  2442. M3GEV_SETTEXTOVERLAYPARM_FAIL: The text overlay attributes set unsuccessfully.
  2443. * Return value: 0 success; -1 failure
  2444. * Parameters:
  2445. -dev
  2446. The valid video channel device handle returned by ISX_m3g_OpenEx()
  2447. -ucToolboxType
  2448. Please refer to eM3G_TOOLBOX_TYPE for the toolbox type; only after the video channel was added to the video mixer,
  2449. the application can configure the M3G_TOOLBOX_TYPE_VIDEOCONF.
  2450. -ucStringId
  2451. String ID of Text Overlay; each channel can have multiple text strings overlayed and each text string has a ID as
  2452. denotation; The range is 0~7;
  2453. -pConfig
  2454. Points to the M3G_TEXTOVERLAY_CONFIG structure
  2455. -mode
  2456. Synchronous/asynchronous mode:
  2457. EV_SYNC - synchronous
  2458. EV_ASYNC - asynchronous
  2459. -ulOperIndex
  2460. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through
  2461. ISX_sr_getevtoperindex() function when the text overlay parameter setting is completed and the event
  2462. M3GEV_SETTEXTOVERLAYPARM_CMPLT occurs.
  2463. */
  2464. /************************************************************************/
  2465. #ifndef EHANG_ISXAPI_STD_C
  2466. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetTextOverlayParm(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, M3G_TEXTOVERLAY_CONFIG *pConfig, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2467. #else
  2468. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetTextOverlayParm(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, M3G_TEXTOVERLAY_CONFIG *pConfig, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2469. #endif
  2470. /************************************************************************/
  2471. /* Function:ISX_m3g_GetTextOverlayParm()
  2472. * Description:
  2473. The application use the function ISX_m3g_GetTextOverlayParm() to returned the text overlay configuration corresponding to ucStringId of the video channel.
  2474. * Stop Event
  2475. M3GEV_GETTEXTOVERLAYPARM_CMPLT: The text overlay attributes returned successfully.
  2476. M3GEV_GETTEXTOVERLAYPARM_FAIL: The text overlay attributes returned unsuccessfully.
  2477. * Return value: 0 success; -1 failure
  2478. * Parameters:
  2479. -dev
  2480. The valid video channel device handle returned by ISX_m3g_OpenEx()
  2481. -ucToolboxType
  2482. Please refer to eM3G_TOOLBOX_TYPE for the toolbox type; only after the video channel was added to the video mixer,
  2483. the application can configure the M3G_TOOLBOX_TYPE_VIDEOCONF.
  2484. -ucStringId
  2485. String ID of Text Overlay; each channel can have multiple text strings overlayed and each text string has a ID as
  2486. denotation; The range is 0~7;
  2487. -pConfig
  2488. Textoverlay configuration information that returned; Used only with the synchronous mode and is the
  2489. M3G_TEXTOVERLAY_CONFIG structure. On asynchronous mode, the textoverlay attributes is obtained through
  2490. ISX_sr_getevtdatap ().
  2491. -mode
  2492. Synchronous/asynchronous mode:
  2493. EV_SYNC - synchronous
  2494. EV_ASYNC - asynchronous
  2495. -ulOperIndex
  2496. asynchronous operation number; if the asynchronous operation mode is used, the number can be obtained through ISX_sr_getevtoperindex() function when the text overlay parameter getting is completed and the event M3GEV_GETTEXTOVERLAYPARM_CMPLT occurs.
  2497. */
  2498. /************************************************************************/
  2499. #ifndef EHANG_ISXAPI_STD_C
  2500. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetTextOverlayParm(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, M3G_TEXTOVERLAY_CONFIG *pConfig, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2501. #else
  2502. ISXAPI_FUNC_STDCL(INT) ISX_m3g_GetTextOverlayParm(M3GDEV dev, UCHAR ucToolboxType, UCHAR ucStringId, M3G_TEXTOVERLAY_CONFIG *pConfig, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2503. #endif
  2504. /************************************************************************/
  2505. /* Function:ISX_m3g_EstVideoConf()
  2506. * Description:
  2507. */
  2508. /************************************************************************/
  2509. #ifndef EHANG_ISXAPI_STD_C
  2510. ISXAPI_FUNC_STDCL(INT) ISX_m3g_EstVoiceConf(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, INT numpty, M3G_VOICECONF_PARM * pConfParm, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2511. #else
  2512. ISXAPI_FUNC_STDCL(INT) ISX_m3g_EstVoiceConf(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, INT numpty, M3G_VOICECONF_PARM * pConfParm, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2513. #endif
  2514. /************************************************************************/
  2515. /* Function:ISX_m3g_DelVideoConf()
  2516. * Description:
  2517. */
  2518. /************************************************************************/
  2519. #ifndef EHANG_ISXAPI_STD_C
  2520. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DelVoiceConf(M3GDEV confdev, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2521. #else
  2522. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DelVoiceConf(M3GDEV confdev, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2523. #endif
  2524. /************************************************************************/
  2525. /* Function:ISX_m3g_AddToVoiceConf()
  2526. * Description:
  2527. */
  2528. /************************************************************************/
  2529. #ifndef EHANG_ISXAPI_STD_C
  2530. ISXAPI_FUNC_STDCL(INT) ISX_m3g_AddToVoiceConf(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2531. #else
  2532. ISXAPI_FUNC_STDCL(INT) ISX_m3g_AddToVoiceConf(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2533. #endif
  2534. /************************************************************************/
  2535. /* Function:ISX_m3g_RemFromVoiceConf()
  2536. * Description:
  2537. */
  2538. /************************************************************************/
  2539. #ifndef EHANG_ISXAPI_STD_C
  2540. ISXAPI_FUNC_STDCL(INT) ISX_m3g_RemFromVoiceConf(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2541. #else
  2542. ISXAPI_FUNC_STDCL(INT) ISX_m3g_RemFromVoiceConf(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2543. #endif
  2544. /************************************************************************/
  2545. /* Function:ISX_m3g_SetVoiceConfCde()
  2546. * Description:
  2547. */
  2548. /************************************************************************/
  2549. #ifndef EHANG_ISXAPI_STD_C
  2550. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetVoiceConfCde(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2551. #else
  2552. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetVoiceConfCde(M3GDEV confdev, M3G_VOICECONF_CDT *in_cdt, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2553. #endif
  2554. /************************************************************************/
  2555. /* Function:ISX_m3g_QueryVoiceConf()
  2556. * Description:
  2557. */
  2558. /************************************************************************/
  2559. #ifndef EHANG_ISXAPI_STD_C
  2560. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVoiceConf(M3GDEV voicedev, VOID* pRvr=0);
  2561. #else
  2562. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVoiceConf(M3GDEV voicedev, VOID* pRvr);
  2563. #endif
  2564. /************************************************************************/
  2565. /* Function:ISX_m3g_QueryVoiceConferees()
  2566. * Description:
  2567. */
  2568. /************************************************************************/
  2569. #ifndef EHANG_ISXAPI_STD_C
  2570. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVoiceConferees(M3GDEV confdev, INT* parties, INT n_max, VOID* pRvr=0);
  2571. #else
  2572. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVoiceConferees(M3GDEV confdev, INT* parties, INT n_max, VOID* pRvr);
  2573. #endif
  2574. /************************************************************************/
  2575. /* Function:ISX_m3g_EstVideoConf()
  2576. * Description:
  2577. */
  2578. /************************************************************************/
  2579. #ifndef EHANG_ISXAPI_STD_C
  2580. ISXAPI_FUNC_STDCL(INT) ISX_m3g_EstVideoConf(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, INT numpty, M3G_VIDEOCONF_PARM* pConfParm, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2581. #else
  2582. ISXAPI_FUNC_STDCL(INT) ISX_m3g_EstVideoConf(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, INT numpty, M3G_VIDEOCONF_PARM* pConfParm, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2583. #endif
  2584. /************************************************************************/
  2585. /* Function:ISX_m3g_DelVideoConf()
  2586. * Description:
  2587. */
  2588. /************************************************************************/
  2589. #ifndef EHANG_ISXAPI_STD_C
  2590. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DelVideoConf(M3GDEV confdev, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2591. #else
  2592. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DelVideoConf(M3GDEV confdev, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2593. #endif
  2594. /************************************************************************/
  2595. /* Function:ISX_m3g_AddToVideoConf()
  2596. * Description:
  2597. */
  2598. /************************************************************************/
  2599. #ifndef EHANG_ISXAPI_STD_C
  2600. ISXAPI_FUNC_STDCL(INT) ISX_m3g_AddToVideoConf(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2601. #else
  2602. ISXAPI_FUNC_STDCL(INT) ISX_m3g_AddToVideoConf(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2603. #endif
  2604. /************************************************************************/
  2605. /* Function:ISX_m3g_RemFromVideoConf()
  2606. * Description:
  2607. */
  2608. /************************************************************************/
  2609. #ifndef EHANG_ISXAPI_STD_C
  2610. ISXAPI_FUNC_STDCL(INT) ISX_m3g_RemFromVideoConf(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2611. #else
  2612. ISXAPI_FUNC_STDCL(INT) ISX_m3g_RemFromVideoConf(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2613. #endif
  2614. /************************************************************************/
  2615. /* Function:ISX_m3g_SetVideoConfCde()
  2616. * Description:
  2617. */
  2618. /************************************************************************/
  2619. #ifndef EHANG_ISXAPI_STD_C
  2620. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetVideoConfCde(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2621. #else
  2622. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetVideoConfCde(M3GDEV confdev, M3G_VIDEOCONF_CDT *in_cdt, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2623. #endif
  2624. /************************************************************************/
  2625. /* Function:ISX_m3g_CreateVideoConfMixer()
  2626. * Description:
  2627. */
  2628. /************************************************************************/
  2629. #ifndef EHANG_ISXAPI_STD_C
  2630. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CreateVideoConfMixer(M3GDEV confdev, M3G_VIDEOCONF_MIXER* pMixer, UCHAR num, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2631. #else
  2632. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CreateVideoConfMixer(M3GDEV confdev, M3G_VIDEOCONF_MIXER* pMixer, UCHAR num, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2633. #endif
  2634. /************************************************************************/
  2635. /* Function:ISX_m3g_SetVideoConfMixer()
  2636. * Description:
  2637. */
  2638. /************************************************************************/
  2639. #ifndef EHANG_ISXAPI_STD_C
  2640. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetVideoConfMixer(M3GDEV confdev, M3G_VIDEOCONF_MIXER* pMixer, UCHAR num, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2641. #else
  2642. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetVideoConfMixer(M3GDEV confdev, M3G_VIDEOCONF_MIXER* pMixer, UCHAR num, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2643. #endif
  2644. /************************************************************************/
  2645. /* Function:ISX_m3g_DestroyVideoConfMixer()
  2646. * Description:
  2647. */
  2648. /************************************************************************/
  2649. #ifndef EHANG_ISXAPI_STD_C
  2650. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DestroyVideoConfMixer(M3GDEV confdev, M3G_VIDEOCONF_MIXER* pMixer, UCHAR num, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2651. #else
  2652. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DestroyVideoConfMixer(M3GDEV confdev, M3G_VIDEOCONF_MIXER* pMixer, UCHAR num, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2653. #endif
  2654. /************************************************************************/
  2655. /* Function:ISX_m3g_CtrlForeground()
  2656. * Description:
  2657. */
  2658. /************************************************************************/
  2659. #ifndef EHANG_ISXAPI_STD_C
  2660. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CtrlForeground(M3GDEV confdev, UCHAR ucForegroundId, M3G_VIDEOCONF_FOREGROUND *pForeground, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2661. #else
  2662. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CtrlForeground(M3GDEV confdev, UCHAR ucForegroundId, M3G_VIDEOCONF_FOREGROUND *pForeground, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2663. #endif
  2664. /************************************************************************/
  2665. /* Function:ISX_m3g_CtrlBackground()
  2666. * Description:
  2667. */
  2668. /************************************************************************/
  2669. #ifndef EHANG_ISXAPI_STD_C
  2670. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CtrlBackground(M3GDEV confdev, UCHAR ucBackgroundId, M3G_VIDEOCONF_BACKGROUND *pBackground, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2671. #else
  2672. ISXAPI_FUNC_STDCL(INT) ISX_m3g_CtrlBackground(M3GDEV confdev, UCHAR ucBackgroundId, M3G_VIDEOCONF_BACKGROUND *pBackground, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2673. #endif
  2674. /************************************************************************/
  2675. /* Function:ISX_m3g_DrawBox()
  2676. * Description:
  2677. */
  2678. /************************************************************************/
  2679. #ifndef EHANG_ISXAPI_STD_C
  2680. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DrawBox(M3GDEV confdev, M3G_VIDEOCONF_BOX *pBox, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2681. #else
  2682. ISXAPI_FUNC_STDCL(INT) ISX_m3g_DrawBox(M3GDEV confdev, M3G_VIDEOCONF_BOX *pBox, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2683. #endif
  2684. /************************************************************************/
  2685. /* Function:ISX_m3g_QueryVideoConf()
  2686. * Description:
  2687. */
  2688. /************************************************************************/
  2689. #ifndef EHANG_ISXAPI_STD_C
  2690. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVideoConf(M3GDEV videodev, VOID* pRvr=0);
  2691. #else
  2692. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVideoConf(M3GDEV videodev, VOID* pRvr);
  2693. #endif
  2694. /************************************************************************/
  2695. /* Function:ISX_m3g_QueryVideoConferees()
  2696. * Description:
  2697. */
  2698. /************************************************************************/
  2699. #ifndef EHANG_ISXAPI_STD_C
  2700. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVideoConferees(M3GDEV confdev, INT* parties, INT n_max, VOID* pRvr=0);
  2701. #else
  2702. ISXAPI_FUNC_STDCL(INT) ISX_m3g_QueryVideoConferees(M3GDEV confdev, INT* parties, INT n_max, VOID* pRvr);
  2703. #endif
  2704. /************************************************************************/
  2705. /* Function:ISXE_m3g_SpecRecord()
  2706. * Description:
  2707. */
  2708. /************************************************************************/
  2709. #ifndef EHANG_ISXAPI_STD_C
  2710. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_SpecRecord(M3GDEV dev, DX_IOTT *iottp, const DV_TPT *tptp, M3G_XPB* xpbp=NULL, M3G_MEDIA_EX* pMediaEx=NULL, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2711. #else
  2712. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_SpecRecord(M3GDEV dev, DX_IOTT *iottp, const DV_TPT *tptp, M3G_XPB* xpbp, M3G_MEDIA_EX* pMediaEx, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2713. #endif
  2714. /************************************************************************/
  2715. /* Function:ISXE_m3g_SpecStop()
  2716. * Description:
  2717. */
  2718. /************************************************************************/
  2719. #ifndef EHANG_ISXAPI_STD_C
  2720. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_SpecStop(M3GDEV dev, USHORT mode=EV_SYNC, UINT ulOperIndex=0, VOID* pRvr=0);
  2721. #else
  2722. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_SpecStop(M3GDEV dev, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2723. #endif
  2724. /************************************************************************/
  2725. /* Function:ISXE_m3g_SendIFrame()
  2726. * Description:
  2727. */
  2728. /************************************************************************/
  2729. #ifndef EHANG_ISXAPI_STD_C
  2730. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_SendIFrame(M3GDEV dev, USHORT mode, UINT ulOperIndex=0, VOID* pRvr=0);
  2731. #else
  2732. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_SendIFrame(M3GDEV dev, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2733. #endif
  2734. /************************************************************************/
  2735. /* Function:ISXE_m3g_adjvol()
  2736. * Description:
  2737. */
  2738. /************************************************************************/
  2739. #ifndef EHANG_ISXAPI_STD_C
  2740. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_adjvol(M3GDEV voicedev, M3G_VOICE_VOLPARM *pVolParm, USHORT mode, UINT ulOperIndex=0, VOID* pRvr=0);
  2741. #else
  2742. ISXAPI_FUNC_STDCL(INT) ISXE_m3g_adjvol(M3GDEV voicedev, M3G_VOICE_VOLPARM *pVolParm, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2743. #endif
  2744. typedef enum {
  2745. IPCONNATTR_CLEAR_VIDEO_OUTPUT_SRCPORT, //set M3G_CHAN_PARAM->M3G_VIDEO_OUTPUT data struct attribute for ISX_m3g_IPConnect
  2746. } eIPCONNECT_ATTR_TYPE;
  2747. /************************************************************************/
  2748. /* Function:ISX_m3g_SetIPConnectAttribute()
  2749. * Description: set data struct attribute for ISX_m3g_IPConnect()
  2750. */
  2751. /************************************************************************/
  2752. #ifndef EHANG_ISXAPI_STD_C
  2753. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetIPConnectAttribute(INT nAttrType, VOID *pAttrDataStru, VOID* pRvr=0);
  2754. #else
  2755. ISXAPI_FUNC_STDCL(INT) ISX_m3g_SetIPConnectAttribute(INT nAttrType, VOID *pAttrDataStru, VOID* pRvr);
  2756. #endif
  2757. /************************************************************************/
  2758. /* Function:ISX_m3g_IPConnect()
  2759. * Description: connect m3g channel from dev1 to dev2.
  2760. */
  2761. /************************************************************************/
  2762. #ifndef EHANG_ISXAPI_STD_C
  2763. ISXAPI_FUNC_STDCL(INT) ISX_m3g_IPConnect(M3GDEV dev1, M3GDEV dev2, USHORT mode, UINT ulOperIndex=0, VOID* pRvr=0);
  2764. #else
  2765. ISXAPI_FUNC_STDCL(INT) ISX_m3g_IPConnect(M3GDEV dev1, M3GDEV dev2, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2766. #endif
  2767. /************************************************************************/
  2768. /* Function:ISX_m3g_IPConnect()
  2769. * Description: disconnect m3g channel from dev1 to dev2.
  2770. */
  2771. /************************************************************************/
  2772. #ifndef EHANG_ISXAPI_STD_C
  2773. ISXAPI_FUNC_STDCL(INT) ISX_m3g_IPDisconnect(M3GDEV dev1, M3GDEV dev2, USHORT mode, UINT ulOperIndex=0, VOID* pRvr=0);
  2774. #else
  2775. ISXAPI_FUNC_STDCL(INT) ISX_m3g_IPDisconnect(M3GDEV dev1, M3GDEV dev2, USHORT mode, UINT ulOperIndex, VOID* pRvr);
  2776. #endif
  2777. #ifdef __cplusplus
  2778. }
  2779. #undef extern
  2780. #endif
  2781. #endif