home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 February / PCO_0299.ISO / filesbbs / linux / mikmod-3.000 / mikmod-3 / mikmod-3.1.2 / mikmod / player.h < prev   
Encoding:
C/C++ Source or Header  |  1998-12-07  |  7.0 KB  |  170 lines

  1. /*  MikMod example player
  2.     (c) 1998 Miodrag Vallat and others - see file AUTHORS for complete list
  3.  
  4.     This program is free software; you can redistribute it and/or modify
  5.     it under the terms of the GNU General Public License as published by
  6.     the Free Software Foundation; either version 2 of the License, or
  7.     (at your option) any later version.
  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 General Public License for more details.
  13.  
  14.     You should have received a copy of the GNU General Public License
  15.     along with this program; if not, write to the Free Software
  16.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17. */
  18.  
  19. /*==============================================================================
  20.  
  21.   $Id: player.h,v 1.27 1998/12/07 06:01:26 miod Exp $
  22.  
  23.   Module player example of MikMod
  24.  
  25. ==============================================================================*/
  26.  
  27. #ifndef PLAYER_H
  28. #define PLAYER_H
  29.  
  30. /*========== Messages */
  31.  
  32. #if defined(__OS2__)||defined(__EMX__)
  33. #define mikversion "-= MikMod/2 3.1.2 =-"
  34. #else
  35. #define mikversion "-= MikMod'Unix 3.1.2 =-"
  36. #endif
  37.  
  38. #define mikcopyr mikversion \
  39. "\n(c) 1998 Miodrag Vallat and others - see file AUTHORS for complete list"
  40.  
  41. #define mikbanner mikcopyr "\n\n" \
  42. " - Original code by Jean-Paul Mikkers (MikMak) <mikmak@via.nl>\n" \
  43. " - With additions (.IT support) by Jake Stine <dracoirs@epix.net>\n" \
  44. " - FreeBSD support by Douglas Carmichael <dcarmich@mcs.com>\n" \
  45. " - OS/2 support by Stefan Tibus <Stefan.Tibus@ThePentagon.com>\n" \
  46. " - Linux driver by Chris Conn <cconn@tohs.abacom.com>\n" \
  47. " - AudioFile driver by Roine Gustafsson <e93_rog@e.kth.se>\n" \
  48. " - SGI driver by Stephan Kanthak <kanthak@informatik.rwth-aachen.de>\n" \
  49. " - HP-UX and AIX drivers by Lutz Vieweg <lkv@mania.robin.de>\n" \
  50. " - Sun/Solaris driver by Valtteri Vuorikoski <vuori@sci.fi>\n" \
  51. " - curses interface, zip code by Steve McIntyre <stevem@chiark.greenend.org.uk>\n" \
  52. " - playlist, improvements by Peter Amstutz <tetron@segfault.org>\n" \
  53. " - compressed IT sample decoding by Arne de Bruijn <arne@knoware.nl>\n" \
  54. " - bugfixes and current maintenance by Miodrag Vallat <miodrag@multimania.com>\n" \
  55. " - This program is free software covered by the GNU General Public License\n" \
  56. "\nType 'mikmod -h' for command line options!\n" 
  57.  
  58. #define pausebanner \
  59. "'||''|.    |   '||'  '|' .|'''.| '||''''| '||''|.\n"   \
  60. " ||   ||  |||   ||    |  ||..  '  ||  .    ||   || \n" \
  61. " ||...|' |  ||  ||    |   ''|||.  ||''|    ||    ||\n" \
  62. " ||     .''''|. ||    | .     '|| ||       ||    ||\n" \
  63. ".||.   .|.  .||. '|..'  |'....|' .||.....|.||...|'\n"
  64.  
  65. #define extractbanner \
  66. "'||''''|          .                         .   ||\n"                \
  67. " ||  .   ... ....||. ... ..  ....    .... .||. ... .. ...   ... .\n" \
  68. " ||''|    '|..'  ||   ||' '''' .|| .|   '' ||   ||  ||  || || ||\n"  \
  69. " ||        .|.   ||   ||    .|' || ||      ||   ||  ||  ||  |''\n"   \
  70. ".||.....|.|  ||. '|.'.||.   '|..'|' '|...' '|.'.||..||. ||.'||||.\n" \
  71. "                                                          .|....'\n"
  72. #define loadbanner \
  73. "'||'                          '||   ||\n"                  \
  74. " ||         ...    ....     .. ||  ...  .. ...    ... .\n" \
  75. " ||       .|  '|. '' .||  .'  '||   ||   ||  ||  || ||\n"  \
  76. " ||       ||   || .|' ||  |.   ||   ||   ||  ||   |''\n"   \
  77. ".||.....|  '|..|' '|..'|' '|..'||. .||. .||. || .'||||.\n" \
  78. "                                                .|....'\n"
  79.  
  80. #ifdef VIRTCH2
  81. #define keycolontext ""
  82. #else
  83. #define keycolontext ":             toggle interpolation\n"
  84. #endif
  85.  
  86. #define keyhelptext1 \
  87. "\nKeys help (1/2)\n"                                             \
  88. "===============\n"                                               \
  89. "\n"                                                              \
  90. "(depending on your terminal and your curses library,\n"          \
  91. "some of these keys might not be recognized)\n"                   \
  92. "\n"                                                              \
  93. "H             toggle help panels\n"                              \
  94. "F1..F10       volume 10%..100%\n"                                \
  95. "<>            decrease/inclease volume\n"                        \
  96. "Left          previous pattern\n"                                \
  97. "Right         next pattern\n"                                    \
  98. "Up/Down       scroll sample list\n"                              \
  99. "PgUp/PgDown   scroll sample list (faster)\n"                     \
  100. "Home          go to top of sample list\n"                        \
  101. "End           go to end of sample list\n"                        \
  102. "I             toggle samples/instrument lists (if available)\n"  \
  103. "M             toggle sample list/song message (if available)\n"  \
  104.  
  105. #define keyhelptext2 \
  106. "\nKeys help (2/2)\n"                                             \
  107. "===============\n"                                               \
  108. "\n"                                                              \
  109. "(depending on your terminal and your curses library,\n"          \
  110. "some of these keys might not be recognized)\n"                   \
  111. "\n"                                                              \
  112. "H             toggle help panels\n"                              \
  113. "()            decrease/increase tempo\n"                         \
  114. "{}            decrease/increase bpm\n"                           \
  115. keycolontext                                                      \
  116. "S             toggle surround sound\n"                           \
  117. "Q             exits MikMod\n"                                    \
  118. "P             switch to previous module in playlist\n"           \
  119. "N             switch to next module in playlist\n"               \
  120. "W             writes the playlist in the current directory\n"    \
  121. "Space         toggle pause\n"                                    \
  122. "^L            refresh screen\n\0"
  123.  
  124.  
  125. /*========== Playlist */
  126.  
  127. typedef struct {
  128.     int current;
  129.     int numused;
  130.     CHAR **file;
  131.     CHAR **archive;
  132. } PLAYLIST;
  133.  
  134. extern PLAYLIST playlist;
  135.  
  136. extern void PL_ClearList(PLAYLIST*);
  137. extern void PL_InitList(PLAYLIST*);
  138. extern int PL_GetCurrent(PLAYLIST*,CHAR*,CHAR*);
  139. extern int PL_GetNext(PLAYLIST*,CHAR*,CHAR*);
  140. extern int PL_GetPrev(PLAYLIST*,CHAR*,CHAR*);
  141. extern void PL_Randomize(PLAYLIST*);
  142. extern int PL_DelCurrent(PLAYLIST*);
  143. extern void PL_Add(PLAYLIST*,CHAR*,CHAR*);
  144. extern BOOL PL_Load(PLAYLIST*,CHAR*);
  145. extern BOOL PL_Save(PLAYLIST*,CHAR*);
  146.  
  147. extern CHAR *MA_dearchive(CHAR*,CHAR*);
  148. extern void MA_FindFiles(PLAYLIST*,CHAR*);
  149.  
  150. /*========== Curses */
  151.  
  152. extern int firstinst,dispsamp;
  153. extern int winy;
  154. extern int curses_on;
  155.  
  156. extern void init_display(void);
  157. extern void display_version(void);
  158. extern void display_driver(void);
  159. extern void display_file(void);
  160. extern void display_name(void);
  161. extern void display_information(void);
  162. extern void display_status(void);
  163. extern void display_all(void);
  164. extern void display_extractbanner(void);
  165. extern void display_loadbanner(void);
  166. extern void display_pausebanner(void);
  167. extern void exit_display(void);
  168.  
  169. #endif
  170.