home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / +system+ / tools / sound / eagleplayer2.00 / developer / include / misc / eagleplayer.i < prev    next >
Text File  |  1998-02-26  |  24KB  |  791 lines

  1. **
  2. **  $Filename: misc/EaglePlayer.i
  3. **  $Release: 2.00 $
  4. **  $Revision: 13$
  5. **  $Date: 22/02/97$
  6. **
  7. ** Definitions and Macros for creating EaglePlayer Playermodules
  8. **
  9. **    (C) Copyright 1993-97 by DEFECT
  10. **        All Rights Reserved
  11. **
  12. **
  13.  
  14.     IFND    EAGLEPLAYER_I
  15. EAGLEPLAYER_I    SET    1
  16.  
  17.  
  18.     IFND    DeliTracker_Player_i
  19.         Include    "Misc/DeliPlayer.i"
  20.     ENDC
  21.  
  22.  
  23. EAGLEVERSION    EQU    11            ;Current Version of EaglePlayer
  24. ;9=V1.53/54
  25. ;10=1.55 Alpha
  26. ;11=2.00
  27.  
  28. *--------------------------- New EaglePlayer Tags ----------------------------*
  29. EP_TagBase    EQU    TAG_USER+"EP"
  30.  
  31.  
  32.     ENUM    EP_TagBase        ;EaglePlayer-TagBase
  33.  
  34.     EITEM    EP_Get_ModuleInfo    ;get Pointer to Moduleinfo Taglist
  35.     EITEM    EP_Free_ModuleInfo    ;free Taglist (e.g. Free Mem)
  36.     EITEM    EP_Voices        ;Set the Voices
  37.     EITEM    EP_SampleInit        ;create Sampleinfostructure
  38.     EITEM    EP_SampleEnd        ;ejected !!!
  39.     EITEM    EP_Save
  40.     EITEM    EP_ModuleChange        ;Change Module
  41.     EITEM    EP_ModuleRestore    ;Restore Module
  42.     EITEM    EP_StructInit        ;Return Pointer to Userprg.Struct (UPS_)
  43.     EITEM    EP_StructEnd        ;Free Struct (e.g. Free allocated Mem)
  44.     EITEM    EP_LoadPlConfig        ;Load Config of Player
  45.     EITEM    EP_SavePlConfig        ;Save Config of Player
  46.     EITEM    EP_GetPositionNr    ;return Patternnumber (in D0.l)
  47.     EITEM    EP_SetSpeed        ;Set Speed (for Players with own Timer)
  48.                     ;Value submitted in D0
  49.     EITEM    EP_Flags        ;see below
  50.     EITEM    EP_KickVersion        ;min Kickstartversion
  51.     EITEM    EP_PlayerVersion    ;min EP-Version
  52.     EITEM    EP_CheckModule        ;Checks the module (d0=Error or zero)
  53.     EITEM    EP_EjectPlayer
  54.     EITEM    EP_Date            ;Creator-Date (e.g 11.05.1993
  55.                     ;11.b, 05.b, 1993.w )
  56.     EITEM    EP_Check3
  57.     EITEM    EP_SaveAsPT        ;Save Module as Protrackermodule
  58.  
  59.     EITEM    EP_NewModuleInfo    ;TI_Data -> Pointer to Moduleinfo Taglist
  60.     EITEM    EP_FreeExtLoad
  61.     EITEM    EP_PlaySample        ;Play Sample d0=SampleNr
  62.     EITEM    EP_PatternInit        ;Init Patterninfostruct
  63.     EITEM    EP_PatternEnd        ;Free Patterninfostruct - optional
  64.     EITEM    EP_Check4
  65.     EITEM    EP_Check5
  66.     EITEM    EP_Check6
  67.  
  68.     EITEM    EP_CreatorLNr
  69.     EITEM    EP_PlayerNameLNr
  70.  
  71.     EITEM    EP_PlayerInfo        ;TI_Data -> APTR to TagList
  72.     EITEM    EP_PlaySampleInit
  73.     EITEM    EP_PlaySampleEnd
  74.  
  75.     EITEM    EP_InitAmplifier    ;Input:  None
  76.                     ;Output: d0=NUll oder Error
  77.                     ;  Tagliste in EPGL_AmplifierTagList
  78.  
  79.     EITEM    EP_CheckSegment
  80.     EITEM    EP_Show
  81.     EITEM    EP_Hide
  82.     EITEM    EP_LocaleTable
  83.     EITEM    EP_Helpnodename
  84.     EITEM    EP_AttnFlags
  85.     EITEM    EP_EagleBase
  86.     EITEM    EP_Check7        ;for Formatloader (DTP_Check1) a0=Formattags
  87.     EITEM    EP_Check8        ;for Formatloader (DTP_Check2) a0=Formattags
  88.     EITEM    EP_SetPlayFrequency
  89.     EITEM    EP_SamplePlayer
  90.  
  91. *********** end of player interface enumeration for EaglePlayer ***********
  92.  
  93.  
  94.  
  95. *------------------------- EaglePlayer EP_Flags --------------------------*
  96. *    if you use EP_Flags, please set all functions your player offers     *
  97.  
  98. EPF_Songend    EQU    1            ;Songend
  99. EPF_Restart    EQU    2            ;Player restartable
  100. EPF_Disable    EQU    3            ;Player disabled (1=yes)
  101. EPF_NextSong    EQU    4
  102. EPF_PrevSong    EQU    5
  103. EPF_NextPatt    EQU    6
  104. EPF_PrevPatt    EQU    7
  105. EPF_Volume    EQU    8
  106. EPF_Balance    EQU    9
  107. EPF_Voices    EQU    10
  108. EPF_Save    EQU    11
  109. EPF_Analyzer    EQU    12
  110. EPF_ModuleInfo    EQU    13
  111. EPF_SampleInfo    EQU    14
  112. EPF_Packable    EQU    15
  113. EPF_VolVoices    EQU    16
  114. EPF_InternalUPSStructure EQU    17
  115. EPF_RestartSong    EQU    18
  116. EPF_LoadFast    EQU    19
  117. EPF_EPAudioAlloc EQU    20
  118. EPF_VolBalVoi    EQU    21
  119. EPF_CalcDuration EQU    22
  120.  
  121.  
  122. EPB_Songend    EQU    1<<EPF_Songend
  123. EPB_Restart    EQU    1<<EPF_Restart
  124. EPB_Disable    EQU    1<<EPF_Disable
  125. EPB_NextSong    EQU    1<<EPF_NextSong
  126. EPB_PrevSong    EQU    1<<EPF_PrevSong
  127. EPB_NextPatt    EQU    1<<EPF_NextPatt
  128. EPB_PrevPatt    EQU    1<<EPF_PrevPatt
  129. EPB_Volume    EQU    1<<EPF_Volume
  130. EPB_Balance    EQU    1<<EPF_Balance    
  131. EPB_Voices    EQU    1<<EPF_Voices
  132. EPB_Save    EQU    1<<EPF_Save
  133. EPB_Analyzer    EQU    1<<EPF_Analyzer
  134. EPB_ModuleInfo    EQU    1<<EPF_ModuleInfo
  135. EPB_SampleInfo    EQU    1<<EPF_SampleInfo
  136. EPB_Packable    EQU    1<<EPF_Packable
  137. EPB_VolVoices    EQU    1<<EPF_VolVoices
  138. EPB_InternalUPSStructure EQU 1<<EPF_InternalUPSStructure
  139. EPB_RestartSong    EQU    1<<EPF_RestartSong
  140. EPB_LoadFast    EQU    1<<EPF_LoadFast
  141. EPB_EPAudioAlloc EQU    1<<EPF_EPAudioAlloc
  142. EPB_VolBalVoi    EQU    1<<EPF_VolBalVoi
  143. EPB_CalcDuration EQU    1<<EPF_CalcDuration
  144.  
  145. *---------------------------- Module-Info Tags -------------------------------*
  146. MI_TagBase    EQU TAG_USER+"MI"
  147.  
  148.     ENUM    MI_TagBase            ; TagBase
  149.  
  150.     EITEM    MI_SongName            ;Pointer to Songname
  151.     EITEM    MI_AuthorName            ;Pointer to Authorname
  152.     EITEM    MI_SubSongs            ;Subsongs
  153.     EITEM    MI_Pattern            ;highest PatternNr
  154.     EITEM    MI_MaxPattern            ;Max Pattern (SoundTr. 64)
  155.     EITEM    MI_Length            ;Length of Module
  156.     EITEM    MI_MaxLength            ;Max Length (SoundTr. 128)
  157.     EITEM    MI_Steps            ;Steps (SoundMon)
  158.     EITEM    MI_MaxSteps            ;Max Steps
  159.     EITEM    MI_Samples            ;Number of used Samples
  160.     EITEM    MI_MaxSamples            ;Max Samples (SoundTr 31)
  161.     EITEM    MI_SynthSamples            ;Number of used SynthSamples
  162.     EITEM    MI_MaxSynthSamples        ;Max SynthSamples
  163.     EITEM    MI_Songsize            ;Songsize in Bytes
  164.     EITEM    MI_SamplesSize            ;Samplessize in Bytes
  165.     EITEM    MI_ChipSize            ;needed Chip-Size in Bytes
  166.     EITEM    MI_OtherSize            ;FastRam (MDAT-Files) in Bytes
  167.     EITEM    MI_Calcsize            ;calculated length of module in Bytes
  168.     EITEM    MI_SpecialInfo            ;Pointer to general InfoText 
  169.                         ;Null Terminated String, may
  170.                         ;countain linefeeds
  171.     EITEM    MI_LoadSize            ;Loadsize (TFMX,Startrekker) in Bytes
  172.     EITEM    MI_Unpacked            ;Unpacked Size (e.g. Noise-
  173.                         ;Packer) in Bytes
  174.     EITEM    MI_UnPackedSystem        ;MIUS (see below) or APTR
  175.                         ;to Soundsysname
  176.     EITEM    MI_Prefix            ;Save-Prefix (e.g. "MOD." or
  177.                         ;"Mdat.")
  178.     EITEM    MI_About            ;TI_Data points on a string
  179.                         ;telling something about this
  180.                         ;Soundsystem, 
  181.                         ;Null Terminated String, may
  182.                         ;countain linefeeds
  183.     EITEM    MI_MaxSubSongs            ;Max SubSongs
  184.     EITEM    MI_Voices            ;used Voices
  185.     EITEM    MI_MaxVoices            ;Max Voices
  186.     EITEM    MI_UnPackedSongSize        ;for converted modules
  187.     EITEM    MI_Duration            ;Duration
  188.     EITEM    MI_Soundsystem            ;Soundsystem Name
  189.                         ;(for multiple players)
  190.     EITEM    MI_PlayFrequency        ;Mixingfrequency
  191.     EITEM    MI_Volumeboost            ;Volume Boost
  192.     EITEM    MI_Playmode            ;Playing Mode
  193.                         ;(mono,stereo,14 bit etc.
  194.                         ;as STRING !!)
  195.     EITEM    MI_ExtraInfo            ;One More Field for Special
  196.                         ;informations,TI_Data points
  197.                         ;onto a string telling 
  198.                         ;something more or less useful
  199.                         ;Null Terminated String, may
  200.                         ;countain linefeeds
  201.     EITEM    MI_InfoFlags            ;Flags
  202.  
  203. *--------- Unpacked Soundsystems (intern), more follow --------------------*
  204. MIUS_OldSoundTracker    EQU    1
  205. MIUS_SoundTracker    EQU    2
  206. MIUS_NoiseTracker    EQU    3
  207. MIUS_ProTracker        EQU    4
  208. MIUS_SizeOF        EQU    4
  209.  
  210.  
  211. *------------------------------ MI_Flags ----------------------------------*
  212. MIF_ReplayinModule    EQU    1
  213.  
  214. MIB_ReplayinModule    EQU    1<<MIF_ReplayinModule
  215.  
  216.  
  217.  
  218. *------------------------------ Sample-Info Tags --------------------------*
  219.  
  220.  STRUCTURE EP_Sampletable,0
  221.  
  222.     APTR    EPS_NextSample            ; Next SampleTag-Structure
  223.     APTR    EPS_SampleName            ; Name of Sample
  224.     ULONG    EPS_Adr                ; Adr of sample
  225.     ULONG    EPS_Length            ; Length of sample
  226.     ULONG    EPS_Repeat            ; Repeat
  227.     ULONG    EPS_Replen            ; Replen
  228.     ULONG    EPS_Period            ; default Sampleperiod
  229.     ULONG    EPS_Volume            ; default Volume
  230.     UWORD    EPS_Finetune            ; Finetune
  231.     UWORD    EPS_Type            ; SampleType
  232.     UWORD    EPS_Flags            ; Flags for this Samplestructure
  233.     UWORD    EPS_MaxNameLen            ; max Namelength
  234.  
  235.     LABEL    EPS_SizeOF            ; to be extended !!!!!!
  236.  
  237.  
  238.  
  239. *------------------------------- Sample types ------------------------------*
  240. USITY_RAW        EQU    0
  241. USITY_IFF        EQU    1
  242. USITY_FMSynth        EQU    2
  243. USITY_AMSynth        EQU    3
  244. USITY_Unknown        EQU    4
  245.  
  246. *--------------- Sample-Flags for one SampleInfo-TagStructure --------------*
  247. USIF_Playable        EQU    0
  248. USIF_Saveable        EQU    1
  249. USIF_8Bit        EQU    2
  250. USIF_16Bit        EQU    3
  251. USIF_Interleaved    EQU    4
  252. USIF_Intel        EQU    5
  253. USIF_Unsigned        EQU    6
  254.  
  255. USIB_Playable        EQU    1<<USIF_Playable
  256. USIB_Saveable        EQU    1<<USIF_Saveable
  257. USIB_8BIT        EQU    1<<USIF_8BIT
  258. USIB_16BIT        EQU    1<<USIF_16BIT
  259. USIB_Interleaved    EQU    1<<USIF_Interleaved
  260. USIB_Intel        EQU    1<<USIF_Intel
  261. USIB_Unsigned        EQU    1<<USIF_Unsigned
  262.  
  263.  
  264.  
  265.  
  266. *-------------------------- Eagleplayer-PatternInfo ------------------------*
  267.  
  268.  STRUCTURE EP_Patterninfo,0
  269.     UWORD    PI_NumPatts        ;Overall Number of Patterns
  270.     UWORD    PI_Pattern        ;Current Pattern (from 0)
  271.     UWORD    PI_Pattpos        ;Current Position in Pattern (from 0)
  272.     UWORD    PI_Songpos        ;Position in Song (from 0)
  273.     UWORD    PI_MaxSongPos        ;Songlengh
  274.     UWORD    PI_BPM            ;Beats per Minute
  275.     UWORD    PI_Speed        ;Speed
  276.     UWORD    PI_Pattlength        ;Length of Actual Pattern in Rows
  277.     UWORD    PI_Voices        ;Number of Voices (Patternstripes)
  278.     ULONG    PI_Modulo        ;Range from one note to the next
  279.     APTR    PI_Convert        ;Converts Note (a0)
  280.                     ;to Period (D0),Samplenumber (D1),
  281.                     ;Commandstring (D2) and Argument (D3)
  282.     LABEL    PI_Stripes        ;Address of first Patternstripe,
  283.                     ;followed by the next one etc. of
  284.                     ;current pattern
  285.  
  286.  
  287. *--------- User-Program-Structure (every player should be use this) ---------*
  288. *--------------- no Taglist used for higher access speed --------------------*
  289. * how to use:                                                                *
  290. * the player sets everytime it accesses the audio-hardware these following   *
  291. * values ; the UPS_VoiceXPer is most important, is it 0 means it that no new *
  292. * note was played, is it different from 0 , all current Userprograms use this* 
  293. * as a new note ; the minimum to see something in the analyzers is period in *
  294. * connection with Volume (should be easy), additionally Address and Length   *
  295. * are recommended for the Quadra/Stereo/MonoScope ; don`t forget to set the  *
  296. * flags, see below                                                           *
  297. *----------------------------------------------------------------------------*
  298. * Attention: Please, dont't use this table in the future !!!                 *
  299. *----------------------------------------------------------------------------*
  300.  
  301.  STRUCTURE UPS_USER,0
  302.                         ;for Voice 1
  303.     APTR    UPS_Voice1Adr            ;Adr of Samplestart
  304.     UWORD    UPS_Voice1Len            ;Size of Sample
  305.     UWORD    UPS_Voice1Per            ;Periode of Sample
  306.     UWORD    UPS_Voice1Vol            ;Volume of Sample
  307.     UWORD    UPS_Voice1Note            ;Note (unused)
  308.     UWORD    UPS_Voice1SampleNr        ;SampleNr
  309.     UWORD    UPS_Voice1SampleType        ;SampleType
  310.     UWORD    UPS_Voice1Repeat        ;Repeat on
  311.  
  312.     LABEL    UPS_Modulo            ;MemSize for one Voice
  313.  
  314.                         ;for Voice2
  315.     APTR    UPS_Voice2Adr            ;Adr of Samplestart
  316.     UWORD    UPS_Voice2Len            ;Length of Sample
  317.     UWORD    UPS_Voice2Per            ;Periode of Sample
  318.     UWORD    UPS_Voice2Vol            ;Volume of Sample
  319.     UWORD    UPS_Voice2Note            ;Note (unused)
  320.     UWORD    UPS_Voice2SampleNr        ;SampleNr
  321.     UWORD    UPS_Voice2SampleType        ;SampleType
  322.     UWORD    UPS_Voice2Repeat        ;Repeat on
  323.  
  324.                         ;for Voice3
  325.     APTR    UPS_Voice3Adr            ;Adr of Samplestart
  326.     UWORD    UPS_Voice3Len            ;Length of Sample
  327.     UWORD    UPS_Voice3Per            ;Periode of Sample
  328.     UWORD    UPS_Voice3Vol            ;Volume of Sample
  329.     UWORD    UPS_Voice3Note            ;Note (unused)
  330.     UWORD    UPS_Voice3SampleNr        ;SampleNr
  331.     UWORD    UPS_Voice3SampleType        ;SampleType
  332.     UWORD    UPS_Voice3Repeat        ;Repeat on
  333.  
  334.                         ;for Voice4
  335.     APTR    UPS_Voice4Adr            ;Adr of Samplestart
  336.     UWORD    UPS_Voice4Len            ;Length of Sample
  337.     UWORD    UPS_Voice4Per            ;Periode of Sample
  338.     UWORD    UPS_Voice4Vol            ;Volume of Sample
  339.     UWORD    UPS_Voice4Note            ;Note (unused)
  340.     UWORD    UPS_Voice4SampleNr        ;SampleNr
  341.     UWORD    UPS_Voice4SampleType        ;SampleType
  342.     UWORD    UPS_Voice4Repeat        ;Repeat on
  343.  
  344.     UWORD    UPS_DMACon            ;Voices on/off 15=all on
  345.                         ;Name irritating, better was
  346.                         ;VoicesStaus, Use like the
  347.                         ;real Dmacon, Bit x set,
  348.                         ;Voice x on
  349.  
  350.     UWORD    UPS_Flags            ;Flags , see below
  351.     UWORD    UPS_Enabled            ;Zero = Read enabled
  352.     UWORD    UPS_Reserved            ;unused
  353.  
  354.     LABEL    UPS_SizeOF
  355.  
  356. *--------------------------- Flags to UPS_Flags ---------------------------*
  357. * these Flags tell, which analyzerfunctions the actual player is able to do*
  358.  
  359. UPSFL_Adr    EQU    0        ;submits Sampleaddress
  360. UPSFL_Len    EQU    1        ;submits Samplesize
  361. UPSFL_Per    EQU    2        ;submits Period (important !)
  362. UPSFL_Vol    EQU    3        ;submits Volume
  363. UPSFL_Note    EQU    4        ;corrently not used
  364. UPSFL_SNr    EQU    5        ;corrently not used
  365. UPSFL_STy    EQU    6        ;corrently not used
  366. UPSFL_DMACon    EQU    7        ;submits which Voices are on/off
  367. UPSFL_Res    EQU    8
  368.  
  369. UPSB_Adr    EQU    1<<UPSFL_Adr
  370. UPSB_Len    EQU    1<<UPSFL_Len
  371. UPSB_Per    EQU    1<<UPSFL_Per
  372. UPSB_Vol    EQU    1<<UPSFL_Vol
  373. UPSB_Note    EQU    1<<UPSFL_Note
  374. UPSB_SNr    EQU    1<<UPSFL_SNr
  375. UPSB_STy    EQU    1<<UPSFL_STy
  376. UPSB_DMACon    EQU    1<<UPSFL_DMACon
  377. UPSB_Res    EQU    1<<UPSFL_Res
  378.  
  379.  
  380.  
  381.  
  382. *-------- Errornumbers for Tags with Error-Returns, for UserPrograms -------*
  383. *-------- & for Subprograms (e.g. EPG_NewLoadFile)             -------*
  384. EPR_UnknownFormat    EQU    1
  385. EPR_FileNotFound    EQU    2
  386. EPR_ErrorInFile        EQU    3
  387. EPR_NotEnoughMem    EQU    4
  388. EPR_CorruptModule    EQU    5
  389. EPR_ErrorInstallPlayer    EQU    6
  390. EPR_EagleRunning    EQU    7
  391. EPR_CantAllocCia    EQU    8
  392. EPR_CantAllocAudio    EQU    9
  393. EPR_CantFindReq        EQU    10
  394. EPR_NoModuleLoaded    EQU    11
  395. EPR_ErrorInString    EQU    12
  396. EPR_CantAllocSerial    EQU    13
  397. EPR_ErrorDecrunching    EQU    14
  398. EPR_ErrorExtLoad    EQU    15
  399. EPR_ErrorAddPlayer    EQU    16
  400. EPR_SaveError        EQU    17
  401. EPR_LoadError        EQU    18
  402. EPR_CantOpenWin        EQU    19
  403. EPR_PlayerExists    EQU    20
  404. EPR_WriteError        EQU    21
  405. EPR_XPKError        EQU    22
  406. EPR_XPKMasterNotFound    EQU    23
  407. EPR_PPNotFound        EQU    24
  408. EPR_LHNotFound        EQU    25
  409. EPR_ErrorAddUserPrg    EQU    26
  410. EPR_NoMoreUserPrgs    EQU    27
  411. EPR_ModuleTooShort    EQU    28
  412. EPR_CantDeletingPlayer    EQU    29
  413. EPR_ErrorLoadingInstruments EQU    30
  414. EPR_NoMoreEntries    EQU    31
  415. EPR_ErrorLoadingDir    EQU    32
  416. EPR_DirIsEmpty        EQU    33
  417. EPR_BufferFull        EQU    34
  418. EPR_UnknownError    EQU    35
  419. EPR_FunctionNotEnabled    EQU    36
  420. EPR_Passwordfailed    EQU    37
  421. EPR_CommandError    EQU    38
  422. EPR_ErrorInArguments    EQU    39
  423. EPR_NotImplemented    EQU    40
  424. EPR_FileIsNotExecutable    EQU    41
  425. EPR_NotEnoughArguments    EQU    42
  426. EPR_Functionaborted    EQU    43
  427. EPR_InvalidNr        EQU    44
  428. EPR_FileReqCancelled    EQU    45
  429. EPR_ErrorDeletingFile    EQU    46
  430. EPR_ErrorLoadingFont    EQU    47
  431. EPR_NeedHigherKickstart    EQU    48
  432. EPR_CrunchAborted    EQU    49
  433. EPR_DirNotChanged    EQU    50
  434. EPR_NoHelpFile        EQU    51
  435. EPR_CrmNotFound        EQU    52
  436. EPR_CantFindReqTools    EQU    53
  437. EPR_CantFindAsl        EQU    54
  438. EPR_ExtractorNotFound    EQU    55
  439. EPR_UserprogramNotFound    EQU    56
  440. EPR_ErrorInArchive    EQU    57
  441. EPR_UnknownArchive    EQU    58
  442. EPR_Archivescanned    EQU    59
  443. EPR_NoAmplifier        EQU    60
  444. EPR_AmplifierInitError    EQU    61
  445. EPR_CantAddGadget    EQU    62
  446. EPR_FatalError        EQU    63
  447. EPR_LibraryNotFound    EQU    64
  448. EPR_NeedhigherCPUFPU    EQU    65
  449. EPR_NeednewerEP        EQU    66
  450. EPR_EngineNotLoaded    EQU    67
  451.  
  452. EPR_LastError        EQU    67
  453.  
  454. EPR_ErrorAddEngine    EQU    EPR_ErrorAddUserPrg
  455. EPR_NoMoreEngines    EQU    EPR_NoMoreUserPrgs
  456. EPR_ErrorLoadEngine    EQU    EPR_ErrorAddUserPrg
  457. EPR_EngineNotFound    EQU    EPR_UserprogramNotFound
  458.  
  459.  
  460.  
  461. *------------------------ Check-Module-Errornumbers ------------------------*
  462. EPRS_LengthTooLong    EQU    1
  463. EPRS_ReplayerCorrupt    EQU    2
  464. EPRS_PeriodTableDestroyed EQU    3
  465. EPRS_SamplesTooSmall    EQU    4
  466. EPRS_ModDatasTooSmall    EQU    5
  467. EPRS_CorruptSamples    EQU    6
  468. EPRS_InkorrectSpeed    EQU    7
  469. EPRS_InkorrectTiming    EQU    8
  470. EPRS_TooManySubSongs    EQU    9
  471. EPRS_NotImplmentedCommand    EQU    10
  472. EPRS_FilesNotFound    EQU    11
  473. EPRS_AdressError    EQU    12
  474. EPRS_WrongArgs        EQU    13
  475.  
  476. *------------------------------ Global Variables ----------------------------*
  477.  STRUCTURE EaglePlayerGlobals,0
  478.  
  479.     STRUCT    OLDDeliTrackerGlobals,dtg_NotePlayer
  480.     FPTR    EPG_FTPRReserved1
  481.     FPTR    EPG_FTPRReserved2
  482.     FPTR    EPG_FTPRReserved3
  483.     FPTR    EPG_SaveMem        ;Save Mem to Disk
  484.     FPTR    EPG_FileRequest        ;FileRequester
  485.     FPTR    EPG_TextRequest        ;Own Textrequester
  486.     FPTR    EPG_LoadExecutable    ;Load % Decrunch
  487.     FPTR    EPG_NewLoadFile        ;new DTG_LoadFile with Parameters
  488.     FPTR    EPG_ScrollText        ;Scroll Text
  489.     FPTR    EPG_LoadPlConfig    ;Loads a Config from Env:Eagleplayer/..
  490.     FPTR    EPG_SavePlConfig    ;Saves a Config to EnvArc:Eagleplayer/..
  491.     FPTR    EPG_FindTag        ;Finds a Tag in Tagliste
  492.     FPTR    EPG_FindAuthor        ;Find Authorname for Soundtracker-
  493.                     ;compatibles
  494.     FPTR    EPG_Hexdez        ;Convert Dual to Dezimal (Ascii)
  495.     FPTR    EPG_TypeText        ;Print Text into the Mainwindow
  496.     FPTR    EPG_ModuleChange    ;Change Playroutine in Module
  497.     FPTR    EPG_ModuleRestore    ;Restore Playroutine in Module
  498.  
  499.     FPTR    EPG_FTPRReserved8    ;dont't use !!!
  500.  
  501.     APTR    EPG_XPKBase        ;librarybase (don`t close) or zero
  502.     APTR    EPG_LHBase        ;librarybase (don`t close) or zero
  503.     APTR    EPG_PPBase        ;librarybase (don`t close) or zero
  504.     APTR    EPG_DiskFontBase    ;librarybase (don`t close) or zero
  505.     APTR    EPG_ReqToolsBase    ;librarybase (don`t close) or zero
  506.     APTR    EPG_ReqBase        ;librarybase (don`t close) or zero
  507.     APTR    EPG_XFDMasterBase    ;librarybase (don`t close) or zero
  508.     APTR    EPG_WorkBenchBase    ;librarybase (don`t close) or zero
  509.     APTR    EPG_RexxSysBase        ;librarybase (don`t close) or zero
  510.     APTR    EPG_CommoditiesBase    ;librarybase (don`t close) or zero
  511.     APTR    EPG_IconBase        ;librarybase (don`t close) or zero
  512.     APTR    EPG_LocaleBase        ;librarybase (don`t close) or zero
  513.  
  514.     APTR    EPG_WinHandle        ;MainWindow or zero (don`t close)
  515.     APTR    EPG_TitlePuffer        ;Puffer for Screentitlename
  516.     APTR    EPG_SoundSystemname    ;Ptr to Soundsystemname
  517.     APTR    EPG_Songname        ;songname or filename
  518.     APTR    EPG_Reserved2        ;zero (don`t use)
  519.     APTR    EPG_Reserved3        ;zero (don`t use)
  520.  
  521.     APTR    EPG_PubScreen        ;Pointer to PubScreenname or zero
  522.     APTR    EPG_CiaBBase        ;Ciab.Resource-Base or zero
  523.     APTR    EPG_UPS_Structure    ;Private UPS_Structure, don't change
  524.     APTR    EPG_ModuleInfoTagList    ;Pointer to ModuleInfo-TagList
  525.     APTR    EPG_Author
  526.  
  527.     LONG    EPG_Identifier        ;Longword="EPGL" --> Eagleplayer used
  528.     LONG    EPG_EagleVersion
  529.     WORD    EPG_Speed
  530.  
  531.     LONG    EPG_ARGN            ;Anz. of Parameters
  532.  
  533.     LONG    EPG_ARG1        ;\
  534.     LONG    EPG_ARG2        ; \
  535.     LONG    EPG_ARG3        ;  \    Parameter-Buffer for SubProggys
  536.     LONG    EPG_ARG4        ;   \_\ You must use this. You must set
  537.     LONG    EPG_ARG5        ;   / /    ArgN (max. used Parameters)
  538.     LONG    EPG_ARG6        ;  /    --> New SubProggys can use
  539.     LONG    EPG_ARG7        ; /    more Parameters !!!!
  540.     LONG    EPG_ARG8        ;/ don`t use in interrupts !!!!
  541.  
  542.     UWORD    EPG_Voices
  543.  
  544.     UWORD    EPG_Voice1Vol        ;0-64
  545.     UWORD    EPG_Voice2Vol
  546.     UWORD    EPG_Voice3Vol
  547.     UWORD    EPG_Voice4Vol
  548.  
  549.     APTR    EPG_VoiceTable        ;Voicetable (only for Amplifier) 0-255
  550.     UWORD    EPG_VoiceTableEntries
  551.     UWORD    EPG_Unused1
  552.  
  553.     ULONG    EPG_SomePrefs        ;Bits you find above the Globals
  554.     ULONG    EPG_Timeout        ;Timeout in Secs ; 0 = No Timeout
  555.  
  556.     WORD    EPG_FirstSnd    ;first Subsong Nr. (-1 for unknown)
  557.     WORD    EPG_SubSongs    ;Subsong Range (-1 for unknown)
  558.     ULONG    EPG_MODNr    ;Actual Module in List (Nr) ; 0 = No Mod.
  559.     ULONG    EPG_MODS    ;Number of Modules in List (Nr); 0 = No List
  560.  
  561.     APTR    EPG_PlayerTagList    ;Pointer to actual PlayerTaglist
  562.     APTR    EPG_TextFont        ;Pointer to actual Font-Structure
  563.  
  564.     UWORD    EPG_Volume        ;Volumerange 0-255
  565.     UWORD    EPG_Balance        ;Balance
  566.     UWORD    EPG_LeftBalance        ;Balancerange 0-255
  567.     UWORD    EPG_RightBalance    ;Balancerange 0-255
  568.     UWORD    EPG_UnUsed6
  569.     UWORD    EPG_UnUsed7
  570.     UWORD    EPG_UnUsed8
  571.     UWORD    EPG_UnUsed9
  572.  
  573.     WORD    EPG_DefTimer
  574.     WORD    EPG_CurrentPosition
  575.     WORD    EPG_WORDReserved3
  576.     WORD    EPG_WORDReserved4
  577.     WORD    EPG_WORDReserved5
  578.     WORD    EPG_WORDReserved6
  579.     WORD    EPG_WORDReserved7
  580.     WORD    EPG_WORDReserved8
  581.  
  582.     LONG    EPG_Dirs
  583.     LONG    EPG_LoadedFiles        ;loaded files by DTG/EPG_LoadFile
  584.     APTR    EPG_AppPort
  585.     APTR    EPG_SampleInfoStructure    ;call first EPNr_Sampleinit !!!!
  586.  
  587.     LONG    EPG_MinTimeOut
  588.     LONG    EPG_CurrentTime        ;Current Playtime
  589.     LONG    EPG_Duration        ;Duration
  590.     LONG    EPG_FirstUserStruct
  591.     LONG    EPG_FirstFileStruct
  592.     LONG    EPG_Entries
  593.     LONG    EPG_Modulesize
  594.     APTR    EPG_Playerlist
  595.     APTR    EPG_Enginelist
  596.     APTR    EPG_Moduleslist
  597.  
  598.  
  599.     APTR    EPG_AmplifierList    ;Wie Enginelist
  600.     APTR    EPG_ActiveAmplifier    ;EUS_StartAdr
  601.     APTR    EPG_AudioStruct        ;aktuelle AudioStruct (EP privat)
  602.     APTR    EPG_AmplifierTagList
  603.     APTR    EPG_ConfigDirArrayPtr
  604.     APTR    EPG_PlayerDirArrayPtr    ;Future use
  605.     APTR    EPG_EngineDirArrayPtr
  606.     APTR    EPG_FirstPlayerStruct
  607.     APTR    EPG_ChkSegment
  608.     APTR    EPG_EagleplayerDirArrayPtr
  609.  
  610.  
  611.     LABEL    EPG_SizeOf        ;to be extended
  612.  
  613.  
  614.     *------------- Eagleplayer Globals Preferences-Flags ------------*
  615. EGPRF_Unused        EQU    0            ;FadeIn V1.0-V1.54ß
  616. EGPRF_Fadeout        EQU    1
  617. EGPRF_Songend        EQU    2
  618. EGPRF_Loadnext        EQU    3
  619. EGPRF_Randommodule    EQU    4
  620. EGPRF_Mastervolume    EQU    5
  621. EGPRF_NowPlay        EQU    6
  622. EGPRF_Surfacequit    EQU    7
  623. EGPRF_LoadPrev        EQU    8
  624. EGPRF_PausePlay        EQU    9
  625. EGPRF_LoadFast        EQU    10
  626. EGPRF_CalcDuration    EQU    11
  627. EGPRF_AllocChannels    EQU    12
  628. EGPRF_SoftInt        EQU    13
  629. EGPRF_Iconify        EQU    14
  630. EGPRF_Help        EQU    15
  631. EGPRF_Fadein        EQU    16
  632.  
  633. EGPRB_UnUsed        EQU    1<<EGPRF_UnUsed        ;FadeIn V1.0-V1.54ß
  634. EGPRB_Fadeout        EQU    1<<EGPRF_Fadeout
  635. EGPRB_Songend        EQU    1<<EGPRF_Songend
  636. EGPRB_Loadnext        EQU    1<<EGPRF_Loadnext
  637. EGPRB_Randommodule    EQU    1<<EGPRF_Randommodule
  638. EGPRB_Mastervolume    EQU    1<<EGPRF_Mastervolume
  639. EGPRB_NowPlay        EQU    1<<EGPRF_NowPlay
  640. EGPRB_Surfacequit    EQU    1<<EGPRF_Surfacequit
  641. EGPRB_LoadPrev        EQU    1<<EGPRF_LoadPrev
  642. EGPRB_PausePlay        EQU    1<<EGPRF_PausePlay
  643. EGPRB_LoadFast        EQU    1<<EGPRF_LoadFast
  644. EGPRB_CalcDuration    EQU    1<<EGPRF_CalcDuration
  645. EGPRB_AllocChannels    EQU    1<<EGPRF_AllocChannels
  646. EGPRB_SoftInt        EQU    1<<EGPRF_SoftInt
  647. EGPRB_Iconify        EQU    1<<EGPRF_Iconify
  648. EGPRB_Help        EQU    1<<EGPRF_Help
  649. EGPRB_Fadein        EQU    1<<EGPRF_Fadein
  650.  
  651.  
  652.  
  653. *----------------------- Extended GlobalJumps -----------------------------*
  654. *-- This structure is the negative buffer relative to a5 (Basisregister) --*
  655. *--------------------------------------------------------------------------*
  656.  
  657.  STRUCTURE NEWEP_GLOBALS,-6
  658.         STRUCT    ENPP_AllocSampleStruct,-6
  659.         STRUCT    ENPP_NewLoadFile2,-6    ;You must Freemem it !!!
  660.         STRUCT    ENPP_MakeDirCorrect,-6
  661.         STRUCT    ENPP_TestAufHide,-6
  662.         STRUCT    ENPP_ClearCache,-6
  663.         STRUCT    ENPP_CopyMemQuick,-6
  664.         STRUCT    ENPP_GetPassword,-6
  665.         STRUCT    ENPP_StringCopy2,-6
  666.         STRUCT    ENPP_ScreenToFront,-6
  667.         STRUCT    ENPP_WindowToFront,-6
  668.  
  669.     *--------- old DeliTracker-Globals ---------*
  670.         STRUCT    ENPP_GetListData,-6
  671.         STRUCT    ENPP_LoadFile,-6
  672.         STRUCT    ENPP_CopyDir,-6        ;\  new! not 100% kompatibel
  673.         STRUCT    ENPP_CopyFile,-6    ; > to dtg_copyxxx
  674.         STRUCT    ENPP_CopyString,-6    ;/
  675.         STRUCT    ENPP_AllocAudio,-6
  676.         STRUCT    ENPP_FreeAudio,-6
  677.         STRUCT    ENPP_StartInterrupt,-6
  678.         STRUCT    ENPP_StopInterrupt,-6
  679.         STRUCT    ENPP_SongEnd,-6
  680.         STRUCT    ENPP_CutSuffix,-6
  681.         STRUCT    ENPP_SetTimer,-6
  682.         STRUCT    ENPP_WaitAudioDMA,-6
  683.  
  684.     *--------- old EaglePlayer-Globals --------*
  685.         STRUCT    ENPP_SaveMem,-6
  686.         STRUCT    ENPP_FileReq,-6
  687.         STRUCT    ENPP_TextRequest,-6
  688.         STRUCT    ENPP_LoadExecutable,-6
  689.         STRUCT    ENPP_NewLoadFile,-6
  690.         STRUCT    ENPP_ScrollText,-6
  691.         STRUCT    ENPP_LoadPlConfig,-6
  692.         STRUCT    ENPP_SavePlConfig,-6
  693.         STRUCT    ENPP_FindTag,-6
  694.         STRUCT    ENPP_FindAuthor,-6
  695.  
  696.         STRUCT    ENPP_Hexdez,-6
  697.         STRUCT    ENPP_TypeText,-6
  698.         STRUCT    ENPP_ModuleChange,-6
  699.         STRUCT    ENPP_ModuleRestore,-6
  700.  
  701.         STRUCT    ENPP_StringCopy,-6
  702.         STRUCT    ENPP_CalcStringSize,-6
  703.         STRUCT    ENPP_StringCMP,-6
  704.  
  705.  
  706.         STRUCT    ENPP_DMAMask,-6
  707.         STRUCT    ENPP_PokeAdr,-6
  708.         STRUCT    ENPP_PokeLen,-6
  709.         STRUCT    ENPP_PokePer,-6
  710.         STRUCT    ENPP_PokeVol,-6
  711.         STRUCT    ENPP_PokeCommand,-6
  712.         STRUCT    ENPP_Amplifier,-6
  713.  
  714.         STRUCT    ENPP_TestAbortGadget,-6
  715.         STRUCT    ENPP_GetEPNrfromMessage,-6    ;In:a1=Message
  716.  
  717.         STRUCT    ENPP_InitDisplay,-6        ;a0=Text a1=Args
  718.         STRUCT    ENPP_FillDisplay,-6        ;-++- d0=per thousand
  719.         STRUCT    ENPP_RemoveDisplay,-6
  720.  
  721.         STRUCT    ENPP_GetLocaleString,-6
  722.  
  723.         STRUCT    ENPP_SetWaitPointer,-6
  724.         STRUCT    ENPP_ClearWaitPointer,-6
  725.  
  726.         STRUCT    ENPP_OpenCatalog,-6
  727.         STRUCT    ENPP_CloseCatalog,-6
  728.  
  729.         STRUCT    ENPP_AllocAmigaAudio,-6        *allocate original Amigaaudio (for Amplifiers)
  730.         STRUCT    ENPP_FreeAmigaAudio,-6
  731.  
  732.         STRUCT    ENPP_RawToFormat,-6
  733.         STRUCT    ENPP_FindAmplifier,-6
  734.         STRUCT    ENPP_UserCallup5,-6
  735.         STRUCT    ENPP_GetLoadListData,-6    ;(for ExtLoad)
  736.         STRUCT    ENPP_SetListData,-6    ;only for rippers !!!
  737.         LABEL    ENPP_SizeOf        ;to be extended !!!
  738.  
  739.  
  740. EPNPC_Filter    EQU    1            ;d0=Command d1=0-> bclr
  741.                         ;        d1=1-> bset
  742.  
  743.  
  744.  
  745.  
  746. *-------------- Eagleplayer GadgetStrukture for EPP_Textrequest --------------*
  747. * STRUCTURE EPGG_Gadget,0
  748. *        APTR    EPGG_NextGadget
  749. *        APTR    EPGG_GadgetName
  750. *        UBYTE    EPGG_Keys1
  751. *        UBYTE    EPGG_Keys2
  752. *        UBYTE    EPGG_Keys3
  753. *        UBYTE    EPGG_Keys4
  754.  
  755. *------------ Eagleplayer new GadgetStrukture for EPP_Textrequest ------------*
  756. * STRUCTURE EPNG_Gadget,0            ;neu für Locale
  757. *        APTR    EPNG_NextGadget
  758. *        UWORD    EPNG_LocaleNr
  759. *        UBYTE    EPNG_Keys1        ;\ should be a Startcase
  760. *        UBYTE    EPNG_Keys2        ;/
  761. *        UBYTE    EPNG_Keys3        ;\ should be Esc or ENTER
  762. *        UBYTE    EPNG_Keys4        ;/
  763. *    ;if in the Localestring exists a _ then the EPGN_Key1 and 2
  764. *    ;will set to lower an higher case of this
  765. *    ;Example    L_oad      EPNG_Keys1=L EPNG_Keys2=l
  766. *    
  767.  
  768. *----------------------------- Player header --------------------------------*
  769.  
  770. EPPHEADER    MACRO
  771.     moveq    #-1,d0            ; prevent crashes if someone
  772.     rts                ; tries to call the player from shell
  773.     dc.b    'EPPLAYER'        ; identifier as "Eagleplayer Player"
  774.     dc.l    \1            ; Pointer to TagItem Array
  775.     ENDM
  776.  
  777.  
  778. *----------------------------- Ron Klaren Header -----------------------------*
  779. KLARENHEADER MACRO
  780.     moveq    #-1,d0                ; prevent crashes if someone
  781.     rts                    ; tries to call the module from shell
  782.                         ; 
  783.     dc.l    \1                ; Size of Ron Klaren Module,im-
  784.                         ; portant !!!
  785.     dc.b    "RON_KLAREN_SOUNDMODULE!",0    ; identifier
  786.     ENDM
  787.  
  788.  
  789.     ENDC    ; EAGLEPLAYER_I
  790.  
  791.