countries.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870
  1. /*
  2. * Copyright (C) 2006, 2007, 2008, 2009 Winfried Koehler
  3. * Copyright (C) 2014 Akihiro Tsukada
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License
  7. * as published by the Free Software Foundation; either version 2
  8. * of the License, or (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this program. if not, see <http://www.gnu.org/licenses/>.
  17. *
  18. */
  19. /**
  20. * @file countries.h
  21. * @ingroup ancillary
  22. * @brief Provides ancillary code to convert ISO 3166-1 country codes
  23. * @copyright GNU General Public License version 2 (GPLv2)
  24. * @author Winfried Koehler
  25. * @author Akihiro Tsukada
  26. *
  27. * @par Bug Report
  28. * Please submit bug reports and patches to linux-media@vger.kernel.org
  29. */
  30. #ifndef _COUNTRIES_H_
  31. #define _COUNTRIES_H_
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. /**
  36. * @enum dvb_country_t
  37. * @brief ISO-3166-1 alpha-2 country code
  38. * @ingroup ancillary
  39. *
  40. * @var COUNTRY_UNKNOWN
  41. * @brief (Unknown Country)
  42. * @var AD
  43. * @brief Andorra
  44. * @var AE
  45. * @brief United Arab Emirates
  46. * @var AF
  47. * @brief Afghanistan
  48. * @var AG
  49. * @brief Antigua and Barbuda
  50. * @var AI
  51. * @brief Anguilla
  52. * @var AL
  53. * @brief Albania
  54. * @var AM
  55. * @brief Armenia
  56. * @var AO
  57. * @brief Angola
  58. * @var AQ
  59. * @brief Antarctica
  60. * @var AR
  61. * @brief Argentina
  62. * @var AS
  63. * @brief American Samoa
  64. * @var AT
  65. * @brief Austria
  66. * @var AU
  67. * @brief Australia
  68. * @var AW
  69. * @brief Aruba
  70. * @var AX
  71. * @brief Aland Islands
  72. * @var AZ
  73. * @brief Azerbaijan
  74. * @var BA
  75. * @brief Bosnia and Herzegovina
  76. * @var BB
  77. * @brief Barbados
  78. * @var BD
  79. * @brief Bangladesh
  80. * @var BE
  81. * @brief Belgium
  82. * @var BF
  83. * @brief Burkina Faso
  84. * @var BG
  85. * @brief Bulgaria
  86. * @var BH
  87. * @brief Bahrain
  88. * @var BI
  89. * @brief Burundi
  90. * @var BJ
  91. * @brief Benin
  92. * @var BL
  93. * @brief Saint Barthelemy
  94. * @var BM
  95. * @brief Bermuda
  96. * @var BN
  97. * @brief Brunei Darussalam
  98. * @var BO
  99. * @brief Plurinational State of Bolivia
  100. * @var BQ
  101. * @brief Bonaire, Saint Eustatius and Saba
  102. * @var BR
  103. * @brief Brazil
  104. * @var BS
  105. * @brief Bahamas
  106. * @var BT
  107. * @brief Bhutan
  108. * @var BV
  109. * @brief Bouvet Island
  110. * @var BW
  111. * @brief Botswana
  112. * @var BY
  113. * @brief Belarus
  114. * @var BZ
  115. * @brief Belize
  116. * @var CA
  117. * @brief Canada
  118. * @var CC
  119. * @brief Cocos (Keeling) Islands
  120. * @var CD
  121. * @brief The Democratic Republic of the Congo
  122. * @var CF
  123. * @brief Central African Republic
  124. * @var CG
  125. * @brief Congo
  126. * @var CH
  127. * @brief Switzerland
  128. * @var CI
  129. * @brief Cote d'Ivoire
  130. * @var CK
  131. * @brief Cook Islands
  132. * @var CL
  133. * @brief Chile
  134. * @var CM
  135. * @brief Cameroon
  136. * @var CN
  137. * @brief China
  138. * @var CO
  139. * @brief Colombia
  140. * @var CR
  141. * @brief Costa Rica
  142. * @var CU
  143. * @brief Cuba
  144. * @var CV
  145. * @brief Cape Verde
  146. * @var CW
  147. * @brief Curacao
  148. * @var CX
  149. * @brief Christmas Island
  150. * @var CY
  151. * @brief Cyprus
  152. * @var CZ
  153. * @brief Czech Republic
  154. * @var DE
  155. * @brief Germany
  156. * @var DJ
  157. * @brief Djibouti
  158. * @var DK
  159. * @brief Denmark
  160. * @var DM
  161. * @brief Dominica
  162. * @var DO
  163. * @brief Dominican Republic
  164. * @var DZ
  165. * @brief Algeria
  166. * @var EC
  167. * @brief Ecuador
  168. * @var EE
  169. * @brief Estonia
  170. * @var EG
  171. * @brief Egypt
  172. * @var EH
  173. * @brief Western Sahara
  174. * @var ER
  175. * @brief Eritrea
  176. * @var ES
  177. * @brief Spain
  178. * @var ET
  179. * @brief Ethiopia
  180. * @var FI
  181. * @brief Finland
  182. * @var FJ
  183. * @brief Fiji
  184. * @var FK
  185. * @brief Falkland Islands (Malvinas)
  186. * @var FM
  187. * @brief Federated States of Micronesia
  188. * @var FO
  189. * @brief Faroe Islands
  190. * @var FR
  191. * @brief France
  192. * @var GA
  193. * @brief Gabon
  194. * @var GB
  195. * @brief United Kingdom
  196. * @var GD
  197. * @brief Grenada
  198. * @var GE
  199. * @brief Georgia
  200. * @var GF
  201. * @brief French Guiana
  202. * @var GG
  203. * @brief Guernsey
  204. * @var GH
  205. * @brief Ghana
  206. * @var GI
  207. * @brief Gibraltar
  208. * @var GL
  209. * @brief Greenland
  210. * @var GM
  211. * @brief Gambia
  212. * @var GN
  213. * @brief Guinea
  214. * @var GP
  215. * @brief Guadeloupe
  216. * @var GQ
  217. * @brief Equatorial Guinea
  218. * @var GR
  219. * @brief Greece
  220. * @var GS
  221. * @brief South Georgia and the South Sandwich Islands
  222. * @var GT
  223. * @brief Guatemala
  224. * @var GU
  225. * @brief Guam
  226. * @var GW
  227. * @brief Guinea-Bissau
  228. * @var GY
  229. * @brief Guyana
  230. * @var HK
  231. * @brief Hong Kong
  232. * @var HM
  233. * @brief Heard Island and McDonald Islands
  234. * @var HN
  235. * @brief Honduras
  236. * @var HR
  237. * @brief Croatia
  238. * @var HT
  239. * @brief Haiti
  240. * @var HU
  241. * @brief Hungary
  242. * @var ID
  243. * @brief Indonesia
  244. * @var IE
  245. * @brief Ireland
  246. * @var IL
  247. * @brief Israel
  248. * @var IM
  249. * @brief Isle of Man
  250. * @var IN
  251. * @brief India
  252. * @var IO
  253. * @brief British Indian Ocean Territory
  254. * @var IQ
  255. * @brief Iraq
  256. * @var IR
  257. * @brief Islamic Republic of Iran
  258. * @var IS
  259. * @brief Iceland
  260. * @var IT
  261. * @brief Italy
  262. * @var JE
  263. * @brief Jersey
  264. * @var JM
  265. * @brief Jamaica
  266. * @var JO
  267. * @brief Jordan
  268. * @var JP
  269. * @brief Japan
  270. * @var KE
  271. * @brief Kenya
  272. * @var KG
  273. * @brief Kyrgyzstan
  274. * @var KH
  275. * @brief Cambodia
  276. * @var KI
  277. * @brief Kiribati
  278. * @var KM
  279. * @brief Comoros
  280. * @var KN
  281. * @brief Saint Kitts and Nevis
  282. * @var KP
  283. * @brief Democratic People's Republic of Korea
  284. * @var KR
  285. * @brief Republic of Korea
  286. * @var KW
  287. * @brief Kuwait
  288. * @var KY
  289. * @brief Cayman Islands
  290. * @var KZ
  291. * @brief Kazakhstan
  292. * @var LA
  293. * @brief Lao People's Democratic Republic
  294. * @var LB
  295. * @brief Lebanon
  296. * @var LC
  297. * @brief Saint Lucia
  298. * @var LI
  299. * @brief Liechtenstein
  300. * @var LK
  301. * @brief Sri Lanka
  302. * @var LR
  303. * @brief Liberia
  304. * @var LS
  305. * @brief Lesotho
  306. * @var LT
  307. * @brief Lithuania
  308. * @var LU
  309. * @brief Luxembourg
  310. * @var LV
  311. * @brief Latvia
  312. * @var LY
  313. * @brief Libyan Arab Jamahiriya
  314. * @var MA
  315. * @brief Morocco
  316. * @var MC
  317. * @brief Monaco
  318. * @var MD
  319. * @brief Republic of Moldova
  320. * @var ME
  321. * @brief Montenegro
  322. * @var MF
  323. * @brief Saint Martin (French part)
  324. * @var MG
  325. * @brief Madagascar
  326. * @var MH
  327. * @brief Marshall Islands
  328. * @var MK
  329. * @brief The Former Yugoslav Republic of Macedonia
  330. * @var ML
  331. * @brief Mali
  332. * @var MM
  333. * @brief Myanmar
  334. * @var MN
  335. * @brief Mongolia
  336. * @var MO
  337. * @brief Macao
  338. * @var MP
  339. * @brief Northern Mariana Islands
  340. * @var MQ
  341. * @brief Martinique
  342. * @var MR
  343. * @brief Mauritania
  344. * @var MS
  345. * @brief Montserrat
  346. * @var MT
  347. * @brief Malta
  348. * @var MU
  349. * @brief Mauritius
  350. * @var MV
  351. * @brief Maldives
  352. * @var MW
  353. * @brief Malawi
  354. * @var MX
  355. * @brief Mexico
  356. * @var MY
  357. * @brief Malaysia
  358. * @var MZ
  359. * @brief Mozambique
  360. * @var NA
  361. * @brief Namibia
  362. * @var NC
  363. * @brief New Caledonia
  364. * @var NE
  365. * @brief Niger
  366. * @var NF
  367. * @brief Norfolk Island
  368. * @var NG
  369. * @brief Nigeria
  370. * @var NI
  371. * @brief Nicaragua
  372. * @var NL
  373. * @brief Netherlands
  374. * @var NO
  375. * @brief Norway
  376. * @var NP
  377. * @brief Nepal
  378. * @var NR
  379. * @brief Nauru
  380. * @var NU
  381. * @brief Niue
  382. * @var NZ
  383. * @brief New Zealand
  384. * @var OM
  385. * @brief Oman
  386. * @var PA
  387. * @brief Panama
  388. * @var PE
  389. * @brief Peru
  390. * @var PF
  391. * @brief French Polynesia
  392. * @var PG
  393. * @brief Papua New Guinea
  394. * @var PH
  395. * @brief Philippines
  396. * @var PK
  397. * @brief Pakistan
  398. * @var PL
  399. * @brief Poland
  400. * @var PM
  401. * @brief Saint Pierre and Miquelon
  402. * @var PN
  403. * @brief Pitcairn
  404. * @var PR
  405. * @brief Puerto Rico
  406. * @var PS
  407. * @brief Occupied Palestinian Territory
  408. * @var PT
  409. * @brief Portugal
  410. * @var PW
  411. * @brief Palau
  412. * @var PY
  413. * @brief Paraguay
  414. * @var QA
  415. * @brief Qatar
  416. * @var RE
  417. * @brief Reunion
  418. * @var RO
  419. * @brief Romania
  420. * @var RS
  421. * @brief Serbia
  422. * @var RU
  423. * @brief Russian Federation
  424. * @var RW
  425. * @brief Rwanda
  426. * @var SA
  427. * @brief Saudi Arabia
  428. * @var SB
  429. * @brief Solomon Islands
  430. * @var SC
  431. * @brief Seychelles
  432. * @var SD
  433. * @brief Sudan
  434. * @var SE
  435. * @brief Sweden
  436. * @var SG
  437. * @brief Singapore
  438. * @var SH
  439. * @brief Saint Helena, Ascension and Tristan da Cunha
  440. * @var SI
  441. * @brief Slovenia
  442. * @var SJ
  443. * @brief Svalbard and Jan Mayen
  444. * @var SK
  445. * @brief Slovakia
  446. * @var SL
  447. * @brief Sierra Leone
  448. * @var SM
  449. * @brief San Marino
  450. * @var SN
  451. * @brief Senegal
  452. * @var SO
  453. * @brief Somalia
  454. * @var SR
  455. * @brief Suriname
  456. * @var SS
  457. * @brief South Sudan
  458. * @var ST
  459. * @brief Sao Tome and Principe
  460. * @var SV
  461. * @brief El Salvador
  462. * @var SX
  463. * @brief Sint Maarten (Dutch part)
  464. * @var SY
  465. * @brief Syrian Arab Republic
  466. * @var SZ
  467. * @brief Swaziland
  468. * @var TC
  469. * @brief Turks and Caicos Islands
  470. * @var TD
  471. * @brief Chad
  472. * @var TF
  473. * @brief French Southern Territories
  474. * @var TG
  475. * @brief Togo
  476. * @var TH
  477. * @brief Thailand
  478. * @var TJ
  479. * @brief Tajikistan
  480. * @var TK
  481. * @brief Tokelau
  482. * @var TL
  483. * @brief Timor-Leste
  484. * @var TM
  485. * @brief Turkmenistan
  486. * @var TN
  487. * @brief Tunisia
  488. * @var TO
  489. * @brief Tonga
  490. * @var TR
  491. * @brief Turkey
  492. * @var TT
  493. * @brief Trinidad and Tobago
  494. * @var TV
  495. * @brief Tuvalu
  496. * @var TW
  497. * @brief Taiwan, Province of China
  498. * @var TZ
  499. * @brief United Republic of Tanzania
  500. * @var UA
  501. * @brief Ukraine
  502. * @var UG
  503. * @brief Uganda
  504. * @var UM
  505. * @brief United States Minor Outlying Islands
  506. * @var US
  507. * @brief United States
  508. * @var UY
  509. * @brief Uruguay
  510. * @var UZ
  511. * @brief Uzbekistan
  512. * @var VA
  513. * @brief Holy See (Vatican City State)
  514. * @var VC
  515. * @brief Saint Vincent and The Grenadines
  516. * @var VE
  517. * @brief Bolivarian Republic of Venezuela
  518. * @var VG
  519. * @brief British Virgin Islands
  520. * @var VI
  521. * @brief U.S. Virgin Islands
  522. * @var VN
  523. * @brief Viet Nam
  524. * @var VU
  525. * @brief Vanuatu
  526. * @var WF
  527. * @brief Wallis and Futuna
  528. * @var WS
  529. * @brief Samoa
  530. * @var YE
  531. * @brief Yemen
  532. * @var YT
  533. * @brief Mayotte
  534. * @var ZA
  535. * @brief South Africa
  536. * @var ZM
  537. * @brief Zambia
  538. * @var ZW
  539. * @brief Zimbabwe
  540. */
  541. enum dvb_country_t {
  542. COUNTRY_UNKNOWN,
  543. AD,
  544. AE,
  545. AF,
  546. AG,
  547. AI,
  548. AL,
  549. AM,
  550. AO,
  551. AQ,
  552. AR,
  553. AS,
  554. AT,
  555. AU,
  556. AW,
  557. AX,
  558. AZ,
  559. BA,
  560. BB,
  561. BD,
  562. BE,
  563. BF,
  564. BG,
  565. BH,
  566. BI,
  567. BJ,
  568. BL,
  569. BM,
  570. BN,
  571. BO,
  572. BQ,
  573. BR,
  574. BS,
  575. BT,
  576. BV,
  577. BW,
  578. BY,
  579. BZ,
  580. CA,
  581. CC,
  582. CD,
  583. CF,
  584. CG,
  585. CH,
  586. CI,
  587. CK,
  588. CL,
  589. CM,
  590. CN,
  591. CO,
  592. CR,
  593. CU,
  594. CV,
  595. CW,
  596. CX,
  597. CY,
  598. CZ,
  599. DE,
  600. DJ,
  601. DK,
  602. DM,
  603. DO,
  604. DZ,
  605. EC,
  606. EE,
  607. EG,
  608. EH,
  609. ER,
  610. ES,
  611. ET,
  612. FI,
  613. FJ,
  614. FK,
  615. FM,
  616. FO,
  617. FR,
  618. GA,
  619. GB,
  620. GD,
  621. GE,
  622. GF,
  623. GG,
  624. GH,
  625. GI,
  626. GL,
  627. GM,
  628. GN,
  629. GP,
  630. GQ,
  631. GR,
  632. GS,
  633. GT,
  634. GU,
  635. GW,
  636. GY,
  637. HK,
  638. HM,
  639. HN,
  640. HR,
  641. HT,
  642. HU,
  643. ID,
  644. IE,
  645. IL,
  646. IM,
  647. IN,
  648. IO,
  649. IQ,
  650. IR,
  651. IS,
  652. IT,
  653. JE,
  654. JM,
  655. JO,
  656. JP,
  657. KE,
  658. KG,
  659. KH,
  660. KI,
  661. KM,
  662. KN,
  663. KP,
  664. KR,
  665. KW,
  666. KY,
  667. KZ,
  668. LA,
  669. LB,
  670. LC,
  671. LI,
  672. LK,
  673. LR,
  674. LS,
  675. LT,
  676. LU,
  677. LV,
  678. LY,
  679. MA,
  680. MC,
  681. MD,
  682. ME,
  683. MF,
  684. MG,
  685. MH,
  686. MK,
  687. ML,
  688. MM,
  689. MN,
  690. MO,
  691. MP,
  692. MQ,
  693. MR,
  694. MS,
  695. MT,
  696. MU,
  697. MV,
  698. MW,
  699. MX,
  700. MY,
  701. MZ,
  702. NA,
  703. NC,
  704. NE,
  705. NF,
  706. NG,
  707. NI,
  708. NL,
  709. NO,
  710. NP,
  711. NR,
  712. NU,
  713. NZ,
  714. OM,
  715. PA,
  716. PE,
  717. PF,
  718. PG,
  719. PH,
  720. PK,
  721. PL,
  722. PM,
  723. PN,
  724. PR,
  725. PS,
  726. PT,
  727. PW,
  728. PY,
  729. QA,
  730. RE,
  731. RO,
  732. RS,
  733. RU,
  734. RW,
  735. SA,
  736. SB,
  737. SC,
  738. SD,
  739. SE,
  740. SG,
  741. SH,
  742. SI,
  743. SJ,
  744. SK,
  745. SL,
  746. SM,
  747. SN,
  748. SO,
  749. SR,
  750. SS,
  751. ST,
  752. SV,
  753. SX,
  754. SY,
  755. SZ,
  756. TC,
  757. TD,
  758. TF,
  759. TG,
  760. TH,
  761. TJ,
  762. TK,
  763. TL,
  764. TM,
  765. TN,
  766. TO,
  767. TR,
  768. TT,
  769. TV,
  770. TW,
  771. TZ,
  772. UA,
  773. UG,
  774. UM,
  775. US,
  776. UY,
  777. UZ,
  778. VA,
  779. VC,
  780. VE,
  781. VG,
  782. VI,
  783. VN,
  784. VU,
  785. WF,
  786. WS,
  787. YE,
  788. YT,
  789. ZA,
  790. ZM,
  791. ZW,
  792. };
  793. /**
  794. * @brief Converts an Unix-like 2-letter Country code into enum dvb_country_t
  795. * @ingroup ancillary
  796. *
  797. * @param name two-letter Country code.
  798. *
  799. * @return It returns the corresponding enum dvb_country_t ID. If not found,
  800. * returns COUNTRY_UNKNOWN.
  801. */
  802. enum dvb_country_t dvb_country_a2_to_id(const char *name);
  803. /**
  804. * @brief Converts a 3-letter Country code as used by MPEG-TS tables into
  805. * enum dvb_country_t
  806. * @ingroup ancillary
  807. *
  808. * @param name three-letter Country code.
  809. *
  810. * @return It returns the corresponding enum dvb_country_t ID. If not found,
  811. * returns COUNTRY_UNKNOWN.
  812. */
  813. enum dvb_country_t dvb_country_a3_to_id(const char *name);
  814. /**
  815. * @brief Converts an enum dvb_country_t into Unix-like 2-letter Country code
  816. * @ingroup ancillary
  817. *
  818. * @param id enum dvb_country_t ID.
  819. *
  820. * @return It returns the 2-letter country code string that corresponts to the
  821. * Country. If not found, returns NULL.
  822. */
  823. const char *dvb_country_to_2letters(int id);
  824. /**
  825. * @brief Converts an enum dvb_country_t into a 3-letter Country code
  826. * as used by MPEG-TS tables
  827. * @ingroup ancillary
  828. *
  829. * @param id enum dvb_country_t ID.
  830. *
  831. * @return It returns the 3-letter country code string that corresponts to the
  832. * Country. If not found, returns NULL.
  833. */
  834. const char *dvb_country_to_3letters(int id);
  835. /**
  836. * @brief Converts an enum dvb_country_t into a Country name
  837. * as used by MPEG-TS tables
  838. * @ingroup ancillary
  839. *
  840. * @param id enum dvb_country_t ID.
  841. *
  842. * @return It returns a string with the Country name that corresponts to the
  843. * country. If not found, returns NULL.
  844. */
  845. const char *dvb_country_to_name(int id);
  846. /**
  847. * @brief Guess the country code from the Unix environment variables
  848. * @ingroup ancillary
  849. *
  850. * @return It returns the corresponding enum dvb_country_t ID. If not found,
  851. * returns COUNTRY_UNKNOWN.
  852. */
  853. enum dvb_country_t dvb_guess_user_country(void);
  854. #ifdef __cplusplus
  855. }
  856. #endif
  857. #endif