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