CPI_PlaylistItem.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:4k
源码类别:

VC书籍

开发平台:

Visual C++

  1. /*
  2.  * CoolPlayer - Blazing fast audio player.
  3.  * Copyright (C) 2000-2001 Niek Albers
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or
  8.  * (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, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  */
  19. ////////////////////////////////////////////////////////////////////////////////
  20. ////////////////////////////////////////////////////////////////////////////////
  21. //
  22. // Cooler PlaylistItem
  23. //
  24. ////////////////////////////////////////////////////////////////////////////////
  25. ////////////////////////////////////////////////////////////////////////////////
  26. //
  27. typedef enum _CPe_ReadWriteState
  28. {
  29.     rwsUnknown,
  30.     rwsReadOnly,
  31.     rwsReadWrite,
  32.     rwsBadFile
  33. } CPe_ReadWriteState;
  34. //
  35. typedef enum _CPe_FilenameFormat
  36. {
  37.     rwsArtistAlbumNumberTitle = 1,
  38.     rwsArtistNumberTitle = 2,
  39.     rwsAlbumNumberTitle = 3,
  40.     rwsAlbumNumber = 4,
  41.     rwsNumberTitle = 5,
  42.     rwsTitle = 6
  43. } CPe_FilenameFormat;
  44. //
  45. //
  46. ////////////////////////////////////////////////////////////////////////////////
  47. #define CIC_INVALIDPLAYLISTCOOKIE 0xFFFFFFFF
  48. #define CIC_INVALIDGENRE ((unsigned char)0xFF)
  49. #define CIC_INVALIDTRACKNUM ((unsigned char)0xFF)
  50. #define CIC_TRACKSTACK_UNSTACKED 0xEFFFFFFF
  51. ////////////////////////////////////////////////////////////////////////////////
  52. //
  53. // Accessors (always use these!!)
  54. const char* CPLI_GetPath(const CP_HPLAYLISTITEM hItem);
  55. const char* CPLI_GetFilename(const CP_HPLAYLISTITEM hItem);
  56. CPe_ReadWriteState CPLI_GetReadWriteState(const CP_HPLAYLISTITEM hItem);
  57. const char* CPLI_GetExtension(const CP_HPLAYLISTITEM hItem);
  58. //
  59. // These may return NULL if this info isn't available
  60. const char* CPLI_GetTrackStackPos_AsText(const CP_HPLAYLISTITEM hItem);
  61. int CPLI_GetTrackStackPos(const CP_HPLAYLISTITEM hItem);
  62. const char* CPLI_GetArtist(const CP_HPLAYLISTITEM hItem);
  63. const char* CPLI_GetAlbum(const CP_HPLAYLISTITEM hItem);
  64. const char* CPLI_GetTrackName(const CP_HPLAYLISTITEM hItem);
  65. const char* CPLI_GetYear(const CP_HPLAYLISTITEM hItem);
  66. const char* CPLI_GetGenre(const CP_HPLAYLISTITEM hItem);
  67. const unsigned char CPLI_GetTrackNum(const CP_HPLAYLISTITEM hItem);
  68. const char* CPLI_GetTrackNum_AsText(const CP_HPLAYLISTITEM hItem);
  69. const char* CPLI_GetComment(const CP_HPLAYLISTITEM hItem);
  70. int CPLI_GetTrackLength(const CP_HPLAYLISTITEM hItem);
  71. const char* CPLI_GetTrackLength_AsText(const CP_HPLAYLISTITEM hItem);
  72. //
  73. // Update functions
  74. void CPLI_SetTrackStackPos(CP_HPLAYLISTITEM hItem, const int iNewPos);
  75. void CPLI_SetArtist(CP_HPLAYLISTITEM hItem, const char* pcNewValue);
  76. void CPLI_SetAlbum(CP_HPLAYLISTITEM hItem, const char* pcNewValue);
  77. void CPLI_SetTrackName(CP_HPLAYLISTITEM hItem, const char* pcNewValue);
  78. void CPLI_SetYear(CP_HPLAYLISTITEM hItem, const char* pcNewValue);
  79. void CPLI_SetGenreIDX(CP_HPLAYLISTITEM hItem, const unsigned char iNewValue);
  80. void CPLI_SetTrackNum(CP_HPLAYLISTITEM hItem, const unsigned char iNewValue);
  81. void CPLI_SetTrackNum_AsText(CP_HPLAYLISTITEM hItem, const char* pcNewValue);
  82. void CPLI_SetComment(CP_HPLAYLISTITEM hItem, const char* pcNewValue);
  83. void CPLI_CalculateLength(CP_HPLAYLISTITEM hItem);
  84. BOOL CPLI_RenameTrack(CP_HPLAYLISTITEM hItem, const CPe_FilenameFormat enFormat);
  85. //
  86. // For use by the playlist window
  87. void CPLI_SetCookie(CP_HPLAYLISTITEM hItem, const int iCookie);
  88. int CPLI_GetCookie(const CP_HPLAYLISTITEM hItem);
  89. //
  90. // These may return NULL if this item is at the end or start of the playlist respectivly
  91. CP_HPLAYLISTITEM CPLI_Next(const CP_HPLAYLISTITEM hItem);
  92. CP_HPLAYLISTITEM CPLI_Prev(const CP_HPLAYLISTITEM hItem);
  93. //
  94. // ID3 tag
  95. BOOL CPLI_IsTagDirty(CP_HPLAYLISTITEM hItem);
  96. void CPLI_ReadTag(CP_HPLAYLISTITEM hItem);
  97. void CPLI_WriteTag(CP_HPLAYLISTITEM hItem);
  98. ////////////////////////////////////////////////////////////////////////////////