github.com/boki/go-xmp@v1.0.1/models/itunes/enum.go (about)

     1  // Copyright (c) 2017-2018 Alexander Eichhorn
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License"): you may
     4  // not use this file except in compliance with the License. You may obtain
     5  // a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    11  // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
    12  // License for the specific language governing permissions and limitations
    13  // under the License.
    14  
    15  // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/QuickTime.html
    16  // http://shadowofged.blogspot.ca/2008/06/itunes-content-ratings.html
    17  
    18  package itunes
    19  
    20  import (
    21  	"bytes"
    22  	"strconv"
    23  )
    24  
    25  type MediaType int
    26  
    27  const (
    28  	MediaTypeHomeVideo  MediaType = 0  // 0 = Movie (deprecated, use 9 instead)
    29  	MediaTypeMusic      MediaType = 1  // 1 = Normal (Music)
    30  	MediaTypeAudiobook  MediaType = 2  // 2 = Audiobook
    31  	MediaTypeBookmark   MediaType = 5  // 5 = Whacked Bookmark
    32  	MediaTypeMusicVideo MediaType = 6  // 6 = Music Video
    33  	MediaTypeMovie      MediaType = 9  // 9 = Short Film / Movie
    34  	MediaTypeTVShow     MediaType = 10 // 10 = TV Show
    35  	MediaTypeBooklet    MediaType = 11 // 11 = Booklet
    36  	MediaTypeRingtone   MediaType = 14 // 14 = Ringtone
    37  	MediaTypePodcast    MediaType = 21 // 21 = Podcast
    38  )
    39  
    40  func (x MediaType) String() string {
    41  	switch x {
    42  	case MediaTypeHomeVideo:
    43  		return "Home Video"
    44  	case MediaTypeMusic:
    45  		return "Music"
    46  	case MediaTypeAudiobook:
    47  		return "Audiobook"
    48  	case MediaTypeBookmark:
    49  		return "Whacked Bookmark"
    50  	case MediaTypeMusicVideo:
    51  		return "Music Video"
    52  	case MediaTypeMovie:
    53  		return "Movie"
    54  	case MediaTypeTVShow:
    55  		return "TV Show"
    56  	case MediaTypeBooklet:
    57  		return "Booklet"
    58  	case MediaTypeRingtone:
    59  		return "Ringtone"
    60  	case MediaTypePodcast:
    61  		return "Podcast"
    62  	default:
    63  		buf := bytes.Buffer{}
    64  		buf.WriteByte('(')
    65  		buf.WriteString(strconv.FormatInt(int64(x), 10))
    66  		buf.WriteByte(')')
    67  		return buf.String()
    68  	}
    69  }
    70  
    71  type RatingCode int
    72  
    73  const (
    74  	RatingCodeNone        RatingCode = 0 // 0 = None
    75  	RatingCodeExplicit    RatingCode = 1 // 1 = Explicit
    76  	RatingCodeClean       RatingCode = 2 // 2 = Clean
    77  	RatingCodeExplicitOld RatingCode = 4 // 4 = Explicit (old)
    78  )
    79  
    80  type PlayGapMode int
    81  
    82  const (
    83  	PlayGapInsertGap PlayGapMode = 0 // Insert Gap
    84  	PlayGapNoGap     PlayGapMode = 1 // No Gap
    85  )
    86  
    87  type AppleStoreAccountType int
    88  
    89  const (
    90  	AppleStoreAccountTypeITunes AppleStoreAccountType = 0
    91  	AppleStoreAccountTypeAOL    AppleStoreAccountType = 1
    92  )
    93  
    94  type LocationRole int
    95  
    96  const (
    97  	LocationRoleShooting  LocationRole = 0
    98  	LocationRoleReal      LocationRole = 1
    99  	LocationRoleFictional LocationRole = 2
   100  )
   101  
   102  type AppleStoreCountry int
   103  
   104  const (
   105  	AppleStoreUSA AppleStoreCountry = 143441 // United States
   106  	AppleStoreFRA AppleStoreCountry = 143442 // France
   107  	AppleStoreDEU AppleStoreCountry = 143443 // Germany
   108  	AppleStoreGBR AppleStoreCountry = 143444 // United Kingdom
   109  	AppleStoreAUT AppleStoreCountry = 143445 // Austria
   110  	AppleStoreBEL AppleStoreCountry = 143446 // Belgium
   111  	AppleStoreFIN AppleStoreCountry = 143447 // Finland
   112  	AppleStoreGRC AppleStoreCountry = 143448 // Greece
   113  	AppleStoreIRL AppleStoreCountry = 143449 // Ireland
   114  	AppleStoreITA AppleStoreCountry = 143450 // Italy
   115  	AppleStoreLUX AppleStoreCountry = 143451 // Luxembourg
   116  	AppleStoreNLD AppleStoreCountry = 143452 // Netherlands
   117  	AppleStorePRT AppleStoreCountry = 143453 // Portugal
   118  	AppleStoreESP AppleStoreCountry = 143454 // Spain
   119  	AppleStoreCAN AppleStoreCountry = 143455 // Canada
   120  	AppleStoreSWE AppleStoreCountry = 143456 // Sweden
   121  	AppleStoreNOR AppleStoreCountry = 143457 // Norway
   122  	AppleStoreDNK AppleStoreCountry = 143458 // Denmark
   123  	AppleStoreCHE AppleStoreCountry = 143459 // Switzerland
   124  	AppleStoreAUS AppleStoreCountry = 143460 // Australia
   125  	AppleStoreNZL AppleStoreCountry = 143461 // New Zealand
   126  	AppleStoreJPN AppleStoreCountry = 143462 // Japan
   127  	AppleStoreHKG AppleStoreCountry = 143463 // Hong Kong
   128  	AppleStoreSGP AppleStoreCountry = 143464 // Singapore
   129  	AppleStoreCHN AppleStoreCountry = 143465 // China
   130  	AppleStoreKOR AppleStoreCountry = 143466 // Republic of Korea
   131  	AppleStoreIND AppleStoreCountry = 143467 // India
   132  	AppleStoreMEX AppleStoreCountry = 143468 // Mexico
   133  	AppleStoreRUS AppleStoreCountry = 143469 // Russia
   134  	AppleStoreTWN AppleStoreCountry = 143470 // Taiwan
   135  	AppleStoreVNM AppleStoreCountry = 143471 // Vietnam
   136  	AppleStoreZAF AppleStoreCountry = 143472 // South Africa
   137  	AppleStoreMYS AppleStoreCountry = 143473 // Malaysia
   138  	AppleStorePHL AppleStoreCountry = 143474 // Philippines
   139  	AppleStoreTHA AppleStoreCountry = 143475 // Thailand
   140  	AppleStoreIDN AppleStoreCountry = 143476 // Indonesia
   141  	AppleStorePAK AppleStoreCountry = 143477 // Pakistan
   142  	AppleStorePOL AppleStoreCountry = 143478 // Poland
   143  	AppleStoreSAU AppleStoreCountry = 143479 // Saudi Arabia
   144  	AppleStoreTUR AppleStoreCountry = 143480 // Turkey
   145  	AppleStoreARE AppleStoreCountry = 143481 // United Arab Emirates
   146  	AppleStoreHUN AppleStoreCountry = 143482 // Hungary
   147  	AppleStoreCHL AppleStoreCountry = 143483 // Chile
   148  	AppleStoreNPL AppleStoreCountry = 143484 // Nepal
   149  	AppleStorePAN AppleStoreCountry = 143485 // Panama
   150  	AppleStoreLKA AppleStoreCountry = 143486 // Sri Lanka
   151  	AppleStoreROU AppleStoreCountry = 143487 // Romania
   152  	AppleStoreCZE AppleStoreCountry = 143489 // Czech Republic
   153  	AppleStoreISR AppleStoreCountry = 143491 // Israel
   154  	AppleStoreUKR AppleStoreCountry = 143492 // Ukraine
   155  	AppleStoreKWT AppleStoreCountry = 143493 // Kuwait
   156  	AppleStoreHRV AppleStoreCountry = 143494 // Croatia
   157  	AppleStoreCRI AppleStoreCountry = 143495 // Costa Rica
   158  	AppleStoreSVK AppleStoreCountry = 143496 // Slovakia
   159  	AppleStoreLBN AppleStoreCountry = 143497 // Lebanon
   160  	AppleStoreQAT AppleStoreCountry = 143498 // Qatar
   161  	AppleStoreSVN AppleStoreCountry = 143499 // Slovenia
   162  	AppleStoreCOL AppleStoreCountry = 143501 // Colombia
   163  	AppleStoreVEN AppleStoreCountry = 143502 // Venezuela
   164  	AppleStoreBRA AppleStoreCountry = 143503 // Brazil
   165  	AppleStoreGTM AppleStoreCountry = 143504 // Guatemala
   166  	AppleStoreARG AppleStoreCountry = 143505 // Argentina
   167  	AppleStoreSLV AppleStoreCountry = 143506 // El Salvador
   168  	AppleStorePER AppleStoreCountry = 143507 // Peru
   169  	AppleStoreDOM AppleStoreCountry = 143508 // Dominican Republic
   170  	AppleStoreECU AppleStoreCountry = 143509 // Ecuador
   171  	AppleStoreHND AppleStoreCountry = 143510 // Honduras
   172  	AppleStoreJAM AppleStoreCountry = 143511 // Jamaica
   173  	AppleStoreNIC AppleStoreCountry = 143512 // Nicaragua
   174  	AppleStorePRY AppleStoreCountry = 143513 // Paraguay
   175  	AppleStoreURY AppleStoreCountry = 143514 // Uruguay
   176  	AppleStoreMAC AppleStoreCountry = 143515 // Macau
   177  	AppleStoreEGY AppleStoreCountry = 143516 // Egypt
   178  	AppleStoreKAZ AppleStoreCountry = 143517 // Kazakhstan
   179  	AppleStoreEST AppleStoreCountry = 143518 // Estonia
   180  	AppleStoreLVA AppleStoreCountry = 143519 // Latvia
   181  	AppleStoreLTU AppleStoreCountry = 143520 // Lithuania
   182  	AppleStoreMLT AppleStoreCountry = 143521 // Malta
   183  	AppleStoreMDA AppleStoreCountry = 143523 // Moldova
   184  	AppleStoreARM AppleStoreCountry = 143524 // Armenia
   185  	AppleStoreBWA AppleStoreCountry = 143525 // Botswana
   186  	AppleStoreBGR AppleStoreCountry = 143526 // Bulgaria
   187  	AppleStoreJOR AppleStoreCountry = 143528 // Jordan
   188  	AppleStoreKEN AppleStoreCountry = 143529 // Kenya
   189  	AppleStoreMKD AppleStoreCountry = 143530 // Macedonia
   190  	AppleStoreMDG AppleStoreCountry = 143531 // Madagascar
   191  	AppleStoreMLI AppleStoreCountry = 143532 // Mali
   192  	AppleStoreMUS AppleStoreCountry = 143533 // Mauritius
   193  	AppleStoreNER AppleStoreCountry = 143534 // Niger
   194  	AppleStoreSEN AppleStoreCountry = 143535 // Senegal
   195  	AppleStoreTUN AppleStoreCountry = 143536 // Tunisia
   196  	AppleStoreUGA AppleStoreCountry = 143537 // Uganda
   197  	AppleStoreAIA AppleStoreCountry = 143538 // Anguilla
   198  	AppleStoreBHS AppleStoreCountry = 143539 // Bahamas
   199  	AppleStoreATG AppleStoreCountry = 143540 // Antigua and Barbuda
   200  	AppleStoreBRB AppleStoreCountry = 143541 // Barbados
   201  	AppleStoreBMU AppleStoreCountry = 143542 // Bermuda
   202  	AppleStoreVGB AppleStoreCountry = 143543 // British Virgin Islands
   203  	AppleStoreCYM AppleStoreCountry = 143544 // Cayman Islands
   204  	AppleStoreDMA AppleStoreCountry = 143545 // Dominica
   205  	AppleStoreGRD AppleStoreCountry = 143546 // Grenada
   206  	AppleStoreMSR AppleStoreCountry = 143547 // Montserrat
   207  	AppleStoreKNA AppleStoreCountry = 143548 // St. Kitts and Nevis
   208  	AppleStoreLCA AppleStoreCountry = 143549 // St. Lucia
   209  	AppleStoreVCT AppleStoreCountry = 143550 // St. Vincent and The Grenadines
   210  	AppleStoreTTO AppleStoreCountry = 143551 // Trinidad and Tobago
   211  	AppleStoreTCA AppleStoreCountry = 143552 // Turks and Caicos
   212  	AppleStoreGUY AppleStoreCountry = 143553 // Guyana
   213  	AppleStoreSUR AppleStoreCountry = 143554 // Suriname
   214  	AppleStoreBLZ AppleStoreCountry = 143555 // Belize
   215  	AppleStoreBOL AppleStoreCountry = 143556 // Bolivia
   216  	AppleStoreCYP AppleStoreCountry = 143557 // Cyprus
   217  	AppleStoreISL AppleStoreCountry = 143558 // Iceland
   218  	AppleStoreBHR AppleStoreCountry = 143559 // Bahrain
   219  	AppleStoreBRN AppleStoreCountry = 143560 // Brunei Darussalam
   220  	AppleStoreNGA AppleStoreCountry = 143561 // Nigeria
   221  	AppleStoreOMN AppleStoreCountry = 143562 // Oman
   222  	AppleStoreDZA AppleStoreCountry = 143563 // Algeria
   223  	AppleStoreAGO AppleStoreCountry = 143564 // Angola
   224  	AppleStoreBLR AppleStoreCountry = 143565 // Belarus
   225  	AppleStoreUZB AppleStoreCountry = 143566 // Uzbekistan
   226  	AppleStoreAZE AppleStoreCountry = 143568 // Azerbaijan
   227  	AppleStoreYEM AppleStoreCountry = 143571 // Yemen
   228  	AppleStoreTZA AppleStoreCountry = 143572 // Tanzania
   229  	AppleStoreGHA AppleStoreCountry = 143573 // Ghana
   230  	AppleStoreALB AppleStoreCountry = 143575 // Albania
   231  	AppleStoreBEN AppleStoreCountry = 143576 // Benin
   232  	AppleStoreBTN AppleStoreCountry = 143577 // Bhutan
   233  	AppleStoreBFA AppleStoreCountry = 143578 // Burkina Faso
   234  	AppleStoreKHM AppleStoreCountry = 143579 // Cambodia
   235  	AppleStoreCPV AppleStoreCountry = 143580 // Cape Verde
   236  	AppleStoreTCD AppleStoreCountry = 143581 // Chad
   237  	AppleStoreCOG AppleStoreCountry = 143582 // Republic of the Congo
   238  	AppleStoreFJI AppleStoreCountry = 143583 // Fiji
   239  	AppleStoreGMB AppleStoreCountry = 143584 // Gambia
   240  	AppleStoreGNB AppleStoreCountry = 143585 // Guinea-Bissau
   241  	AppleStoreKGZ AppleStoreCountry = 143586 // Kyrgyzstan
   242  	AppleStoreLAO AppleStoreCountry = 143587 // Lao People's Democratic Republic
   243  	AppleStoreLBR AppleStoreCountry = 143588 // Liberia
   244  	AppleStoreMWI AppleStoreCountry = 143589 // Malawi
   245  	AppleStoreMRT AppleStoreCountry = 143590 // Mauritania
   246  	AppleStoreFSM AppleStoreCountry = 143591 // Federated States of Micronesia
   247  	AppleStoreMNG AppleStoreCountry = 143592 // Mongolia
   248  	AppleStoreMOZ AppleStoreCountry = 143593 // Mozambique
   249  	AppleStoreNAM AppleStoreCountry = 143594 // Namibia
   250  	AppleStorePLW AppleStoreCountry = 143595 // Palau
   251  	AppleStorePNG AppleStoreCountry = 143597 // Papua New Guinea
   252  	AppleStoreSTP AppleStoreCountry = 143598 // Sao Tome and Principe
   253  	AppleStoreSYC AppleStoreCountry = 143599 // Seychelles
   254  	AppleStoreSLE AppleStoreCountry = 143600 // Sierra Leone
   255  	AppleStoreSLB AppleStoreCountry = 143601 // Solomon Islands
   256  	AppleStoreSWZ AppleStoreCountry = 143602 // Swaziland
   257  	AppleStoreTJK AppleStoreCountry = 143603 // Tajikistan
   258  	AppleStoreTKM AppleStoreCountry = 143604 // Turkmenistan'AppleStore
   259  	AppleStoreZWE AppleStoreCountry = 143605 // Zimbabwe
   260  )
   261  
   262  // iTunes Genre category, genre and subgenre
   263  // https://affiliate.itunes.apple.com/resources/documentation/genre-mapping/
   264  // https://itunes.apple.com/WebObjects/MZStoreServices.woa/ws/genres
   265  type GenreID int
   266  
   267  // ID3v1 Genre id
   268  type GenreCode byte