Import de fichier .lib

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Import de fichier .lib

Message par zorg »

Bonjour .
Voici mon problème: Depuis quelques temps j'essai d'utiliser la librairie opensource StSound GPL de Leonard pour lire les fichiers de musique Atari au format YM mais je ne m'en sors pas. Voici le code source en C:

Code : Tout sélectionner

// Create object
extern	YMMUSIC *	ymMusicCreate();

// Release object
extern	void		ymMusicDestroy(YMMUSIC *pMusic);

// Functions
extern	ymbool			ymMusicLoad(YMMUSIC *pMusic,const char fName);						// Method 1 : Load file using stdio library (fopen/fread, etc..)
extern	ymbool			ymMusicLoadMemory(YMMUSIC *pMusic,void *pBlock,ymu32 size);			// Method 2 : Load file from a memory block

extern	ymbool			ymMusicCompute(YMMUSIC *pMusic,ymsample *pBuffer,ymint nbSample);	// Render nbSample samples of current YM tune into pBuffer PCM 16bits mono sample buffer.

extern	void			ymMusicSetLoopMode(YMMUSIC *pMusic,ymbool bLoop);
extern	const char	*	ymMusicGetLastError(YMMUSIC *pMusic);
extern	int				ymMusicGetRegister(YMMUSIC *pMusic,ymint reg);
extern	void			ymMusicGetInfo(YMMUSIC *pMusic,ymMusicInfo_t *pInfo);
extern	void			ymMusicPlay(YMMUSIC *pMusic);
extern	void			ymMusicPause(YMMUSIC *pMusic);
extern	void			ymMusicStop(YMMUSIC *pMusic);

extern	ymbool			ymMusicIsSeekable(YMMUSIC *pMusic);
extern	ymu32			ymMusicGetPos(YMMUSIC *pMusic);
extern	void			ymMusicSeek(YMMUSIC *pMusic,ymu32 timeInMs);
Et voici ce que j'ai tapé après pas mal de recherches sur les forums anglais et français:

Code : Tout sélectionner

Global YMMUSIC.l

ImportC "StSoundLibrary.lib"
	ymMusicCreate.l() As "ymMusicCreate"
  ;ymMusicLoad(*pMusic, *pFileName) As "_ymMusicLoad@8"  ; Method 1 : Load file using stdio library (fopen/fread, etc..)
EndImport


YMMUSIC=ymMusicCreate()
;ymMusicLoad(0,0);
MessageRequester("Titre fenetre",Str(YMMUSIC),#PB_MessageRequester_Ok)
J'ai essayé différentes choses:
- Remplacer ImportC par import
- Mettre un "_" devant le nom entre guillemets dans la section d'import, comme la ligne de la fonction ymMusicLoad
- Pleins d'autre variantes dont je ne me souviens plus..

.. je ne m'en sors pas.

Le message que j'ai actuellement avec le code ci-dessus est :
POLINK: error: Unresolved external symbol 'ymMusicCreate'.
Sinon j'ai bien copié ma libraire dans le répertoire C:\Program Files\PureBasic\PureLibraries\Windows\Libraries.

Donc merci d'avance de bien vouloir m'empecher de me noyer..

Zorg
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Peux-tu mettre un petit zip avec tous les fichiers nécessaires ?

Stp :-)
zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Message par zorg »

Bien sûr, le voici:

Essai StSound.zip

Il contient l'archive zip d'origine de StSound GPL 1.2, La librairie compilée et le petit code PB.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Costaud.... c'est du C++....

Utilise Lib2PBImport : http://www.purebasic.fr/english/viewtop ... b2pbimport


3 links à trouver :

Code : Tout sélectionner

POLINK : error : Unresolved external symbol '__except_list'
POLINK : error : Unresolved external symbol '___CxxFrameHandler'
POLINK : error : Unresolved external symbol '__fltused'
POLINK : fatal error : 3 unresolved external(s)
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Et voilà :)

Code : Tout sélectionner

Structure ymMusicInfo_t
  pSongName.l
  pSongAuthor.l
  pSongComment.l
  pSongType.l
  pSongPlayer.l
  musicTimeInSec.l
EndStructure

Global YMMUSIC.l



; Import-File created by Lib2PBImport
; Libname: StSoundLibrary.lib
; created: 2007/09/14  16:37
Import "msvcrt.lib"
EndImport

Import "StSoundLibrary.lib"
  ymMusicComputeYAHPAXPA() As "?ymMusicCompute@@YAHPAXPAFH@Z"
  ymMusicCreate() As "?ymMusicCreate@@YAPAXXZ"
  ymMusicDestroy(*pMusic) As "?ymMusicDestroy@@YAXPAX@Z"
  ymMusicGetInfoYAXPAXPAUymMusicInfo() As "?ymMusicGetInfo@@YAXPAXPAUymMusicInfo_t@@@Z"
  ymMusicGetLastErrorYAPBDP() As "?ymMusicGetLastError@@YAPBDPAX@Z"
  ymMusicGetPosYAKP() As "?ymMusicGetPos@@YAKPAX@Z"
  ymMusicGetRegisterYAHPA() As "?ymMusicGetRegister@@YAHPAXH@Z"
  ymMusicIsSeekableYAHP() As "?ymMusicIsSeekable@@YAHPAX@Z"
  ymMusicLoadYAHPAXP() As "?ymMusicLoad@@YAHPAXPBD@Z"
  ymMusicLoadMemoryYAHPAX() As "?ymMusicLoadMemory@@YAHPAX0K@Z"
  ymMusicPauseYAXP() As "?ymMusicPause@@YAXPAX@Z"
  ymMusicPlayYAXP() As "?ymMusicPlay@@YAXPAX@Z"
  ymMusicSeekYAXPA() As "?ymMusicSeek@@YAXPAXK@Z"
  ymMusicSetLoopModeYAXPA() As "?ymMusicSetLoopMode@@YAXPAXH@Z"
  ymMusicStopYAXP() As "?ymMusicStop@@YAXPAX@Z"
  CYmMusicQA() As "??0CYmMusic@@QAE@H@Z"
  ;CYmMusicQA() As "??1CYmMusic@@QAE@XZ"
  bufferClearYAXPA() As "?bufferClear@@YAXPAFH@Z"
  getAttribCYmMusicQA() As "?getAttrib@CYmMusic@@QAEHXZ"
  getLastErrorCYmMusicQAEP() As "?getLastError@CYmMusic@@QAEPADXZ"
  getMusicInfoCYmMusicQAEXPAUymMusicInf() As "?getMusicInfo@CYmMusic@@QAEXPAUymMusicInfo_t@@@Z"
  getMusicTimeCYmMusicQA() As "?getMusicTime@CYmMusic@@QAEKXZ"
  getPosCYmMusicQA() As "?getPos@CYmMusic@@QAEKXZ"
  isSeekableCYmMusicQA() As "?isSeekable@CYmMusic@@QAEHXZ"
  playerCYmMusicAA() As "?player@CYmMusic@@AAEXXZ"
  readNextBlockInfoCYmMusicAA() As "?readNextBlockInfo@CYmMusic@@AAEXXZ"
  readYm6EffectCYmMusicAAEXPAE() As "?readYm6Effect@CYmMusic@@AAEXPAEHHH@Z"
  setAttribCYmMusicAA() As "?setAttrib@CYmMusic@@AAEXH@Z"
  setLastErrorCYmMusicAAEX() As "?setLastError@CYmMusic@@AAEXPAD@Z"
  setLoopModeCYmMusicQA() As "?setLoopMode@CYmMusic@@QAEXH@Z"
  setMusicTimeCYmMusicQA() As "?setMusicTime@CYmMusic@@QAEKK@Z"
  setPlayerRateCYmMusicAA() As "?setPlayerRate@CYmMusic@@AAEXH@Z"
  setTimeControlCYmMusicAA() As "?setTimeControl@CYmMusic@@AAEXH@Z"
  setVolumeCYmMusicQA() As "?setVolume@CYmMusic@@QAEXH@Z"
  stDigitMixCYmMusicAAEXP() As "?stDigitMix@CYmMusic@@AAEXPAFH@Z"
  updateCYmMusicQAEHP() As "?update@CYmMusic@@QAEHPAFH@Z"
  ymTrackerDesInterleaveCYmMusicAA() As "?ymTrackerDesInterleave@CYmMusic@@AAEXXZ"
  ymTrackerInitCYmMusicAA() As "?ymTrackerInit@CYmMusic@@AAEXH@Z"
  ymTrackerPlayerCYmMusicAAEXPAUymTrackerVoic() As "?ymTrackerPlayer@CYmMusic@@AAEXPAUymTrackerVoice_t@@@Z"
  ymTrackerUpdateCYmMusicAAEXP() As "?ymTrackerUpdate@CYmMusic@@AAEXPAFH@Z"
  ymTrackerVoiceAddCYmMusicAAEXPAUymTrackerVoice_t() As "?ymTrackerVoiceAdd@CYmMusic@@AAEXPAUymTrackerVoice_t@@PAFH@Z"
  C_00A() As "??_C@_00A@?$AA@"
  C_02JKAFrb() As "??_C@_02JKAF@rb?$AA@"
  C_04CPDMYM55() As "??_C@_04CPDM@YM?55?$AA@"
  C_04HKNJYM52() As "??_C@_04HKNJ@YM?52?$AA@"
  C_04KNFJMIX1() As "??_C@_04KNFJ@MIX1?$AA@"
  C_04NAEOYM53() As "??_C@_04NAEO@YM?53?$AA@"
  C_04NAIFYM56() As "??_C@_04NAIF@YM?56?$AA@"
  C_05GHIMYM9T1() As "??_C@_05GHIM@YM?9T1?$AA@"
  C_05JIDFYM9T2() As "??_C@_05JIDF@YM?9T2?$AA@"
  C_05MGIN9lh59() As "??_C@_05MGIN@?9lh5?9?$AA@"
  C_07PCHHUnknown() As "??_C@_07PCHH@Unknown?$AA@"
  C_08FDIALeOnArDCB() As "??_C@_08FDIA@LeOnArD?$CB?$AA@"
  C_0BABNOMYM9Chip5driver4() As "??_C@_0BA@BNOM@YM?9Chip?5driver?4?$AA@"
  C_0BANLAJMALLOC5Failed5CB() As "??_C@_0BA@NLAJ@MALLOC?5Failed?5?$CB?$AA@"
  C_0BBFFIDigi9Mix5driver4() As "??_C@_0BB@FFI@Digi?9Mix?5driver?4?$AA@"
  C_0BCGEHMUniversal5Tracker() As "??_C@_0BC@GEHM@Universal?5Tracker?$AA@"
  C_0BDEOPDUnknow5YM5format5CB() As "??_C@_0BD@EOPD@Unknow?5YM?5format?5?$CB?$AA@"
  C_0BDMBNEFile5is5corrupted4() As "??_C@_0BD@MBNE@File?5is?5corrupted?4?$AA@"
  C_0BGHEMCLH55Depacking5Error5CB() As "??_C@_0BG@HEMC@LH5?5Depacking?5Error?5?$CB?$AA@"
  C_0BGIHAAConverted5by5Leonard4() As "??_C@_0BG@IHAA@Converted?5by?5Leonard?4?$AA@"
  C_0BIIDDENot5a5valid5YM5format5CB() As "??_C@_0BI@IDDE@Not?5a?5valid?5YM?5format?5?$CB?$AA@"
  C_0BJMBBDLHARC5Header5must5be505CB() As "??_C@_0BJ@MBBD@LHARC?5Header?5must?5be?50?5?$CB?$AA@"
  C_0CALNJOMalloc5error5in5deInterleaveCICJ6() As "??_C@_0CA@LNJO@Malloc?5error?5in?5deInterleave?$CI?$CJ?6?$AA@"
  C_0CHPOEENo5more5YM4CB5support45Use5YM5C() As "??_C@_0CH@POEE@No?5more?5YM4?$CB?5support?4?5Use?5YM5?$CB?5f@"
  C_0DDOGKGBasic5types5size5are5not5cor() As "??_C@_0DD@OGKG@Basic?5types?5size?5are?5not?5correct@"
  C_0NEEPHMALLOC5Error() As "??_C@_0N@EEPH@MALLOC?5Error?$AA@"
  C_0NGFJEYM53b5CIloopCJ() As "??_C@_0N@GFJE@YM?53b?5?$CIloop?$CJ?$AA@"
  C_0PLEHOFile5not5Found() As "??_C@_0P@LEHO@File?5not?5Found?$AA@"
  ReadBigEndian32YAJP() As "?ReadBigEndian32@@YAJPAE@Z"
  ReadLittleEndian32YAJP() As "?ReadLittleEndian32@@YAJPAE@Z"
  checkCompilerTypesCYmMusicAA() As "?checkCompilerTypes@CYmMusic@@AAEHXZ"
  deInterleaveCYmMusicAA() As "?deInterleave@CYmMusic@@AAEHXZ"
  depackFileCYmMusicAAEP() As "?depackFile@CYmMusic@@AAEPAEXZ"
  loadCYmMusicQAEH() As "?load@CYmMusic@@QAEHPBD@Z"
  loadMemoryCYmMusicQAEHP() As "?loadMemory@CYmMusic@@QAEHPAXK@Z"
  mstrdupYAPADP() As "?mstrdup@@YAPADPAD@Z"
  myFreeYAXPAP() As "?myFree@@YAXPAPAX@Z"
  pauseCYmMusicQA() As "?pause@CYmMusic@@QAEXXZ"
  playCYmMusicQA() As "?play@CYmMusic@@QAEXXZ"
  readMotorolaDwordYAKPAP() As "?readMotorolaDword@@YAKPAPAE@Z"
  readMotorolaWordYAGPAP() As "?readMotorolaWord@@YAGPAPAE@Z"
  readNtStringYAPADPAP() As "?readNtString@@YAPADPAPAD@Z"
  stopCYmMusicQA() As "?stop@CYmMusic@@QAEXXZ"
  unLoadCYmMusicQA() As "?unLoad@CYmMusic@@QAEXXZ"
  ymDecodeCYmMusicAA() As "?ymDecode@CYmMusic@@AAEHXZ"
  CDcAdjusterQA() As "??0CDcAdjuster@@QAE@XZ"
  CYm2149ExQAE() As "??0CYm2149Ex@@QAE@KHK@Z"
  CYm2149ExQA() As "??1CYm2149Ex@@QAE@XZ"
  AddSampleCDcAdjusterQA() As "?AddSample@CDcAdjuster@@QAEXH@Z"
  ResetCDcAdjusterQA() As "?Reset@CDcAdjuster@@QAEXXZ"
  drumStartCYm2149ExQAEXHPA() As "?drumStart@CYm2149Ex@@QAEXHPAEKH@Z"
  drumStopCYm2149ExQA() As "?drumStop@CYm2149Ex@@QAEXH@Z"
  envStepComputeCYm2149ExAAE() As "?envStepCompute@CYm2149Ex@@AAEKEE@Z"
  noiseStepComputeCYm2149ExAA() As "?noiseStepCompute@CYm2149Ex@@AAEKE@Z"
  readRegisterCYm2149ExQA() As "?readRegister@CYm2149Ex@@QAEHH@Z"
  resetCYm2149ExQA() As "?reset@CYm2149Ex@@QAEXXZ"
  rndComputeCYm2149ExAA() As "?rndCompute@CYm2149Ex@@AAEKXZ"
  setClockCYm2149ExQA() As "?setClock@CYm2149Ex@@QAEXK@Z"
  sidSinStartCYm2149ExQAEX() As "?sidSinStart@CYm2149Ex@@QAEXHHH@Z"
  sidStartCYm2149ExQAEX() As "?sidStart@CYm2149Ex@@QAEXHHH@Z"
  sidStopCYm2149ExQA() As "?sidStop@CYm2149Ex@@QAEXH@Z"
  sidVolumeComputeCYm2149ExAAEXH() As "?sidVolumeCompute@CYm2149Ex@@AAEXHPAH@Z"
  syncBuzzerStartCYm2149ExQAE() As "?syncBuzzerStart@CYm2149Ex@@QAEXHH@Z"
  syncBuzzerStopCYm2149ExQA() As "?syncBuzzerStop@CYm2149Ex@@QAEXXZ"
  toneStepComputeCYm2149ExAAE() As "?toneStepCompute@CYm2149Ex@@AAEKEE@Z"
  updateCYm2149ExQAEXP() As "?update@CYm2149Ex@@QAEXPAFH@Z"
  writeRegisterCYm2149ExQAE() As "?writeRegister@CYm2149Ex@@QAEXHH@Z"
  sampleAdress3PAP() As "?sampleAdress@@3PAPAEA"
  sampleLen3P() As "?sampleLen@@3PAKA"
  DataInCLzhDepackerAAEHP() As "?DataIn@CLzhDepacker@@AAEHPAXH@Z"
  DataOutCLzhDepackerAAEHP() As "?DataOut@CLzhDepacker@@AAEHPAXH@Z"
  LzUnpackCLzhDepackerQAE_NPAX() As "?LzUnpack@CLzhDepacker@@QAE_NPAXH0H@Z"
  decodeCLzhDepackerAAEXI() As "?decode@CLzhDepacker@@AAEXIQAE@Z"
  decode_cCLzhDepackerAA() As "?decode_c@CLzhDepacker@@AAEGXZ"
  decode_pCLzhDepackerAA() As "?decode_p@CLzhDepacker@@AAEGXZ"
  decode_startCLzhDepackerAA() As "?decode_start@CLzhDepacker@@AAEXXZ"
  fillbufCLzhDepackerAA() As "?fillbuf@CLzhDepacker@@AAEXH@Z"
  getbitsCLzhDepackerAA() As "?getbits@CLzhDepacker@@AAEGH@Z"
  huf_decode_startCLzhDepackerAA() As "?huf_decode_start@CLzhDepacker@@AAEXXZ"
  init_getbitsCLzhDepackerAA() As "?init_getbits@CLzhDepacker@@AAEXXZ"
  make_tableCLzhDepackerAAEHHPAEH() As "?make_table@CLzhDepacker@@AAEHHPAEHPAG@Z"
  read_c_lenCLzhDepackerAA() As "?read_c_len@CLzhDepacker@@AAEXXZ"
  read_pt_lenCLzhDepackerAAEX() As "?read_pt_len@CLzhDepacker@@AAEXHHH@Z"
EndImport
; ImportC "StSoundLibrary.lib"
; 	ymMusicCreate.l() As "ymMusicCreate"
; ;  ymMusicLoad(*pMusic, *pFileName) As "_ymMusicLoad@8"  ; Method 1 : Load file using stdio library (fopen/fread, etc..)
; EndImport

YMMUSIC=ymMusicCreate()
;ymMusicLoad(0,0);
MessageRequester("Cadeau :) pour zorg",Str(YMMUSIC),#PB_MessageRequester_Ok)



;typedef struct
;{
;	ymchar	*	pSongName;
;	ymchar	*	pSongAuthor;
;	ymchar	*	pSongComment;
;	ymchar	*	pSongType;
;	ymchar	*	pSongPlayer;
;	yms32		musicTimeInSec;		// keep for compatibility
;	yms32		musicTimeInMs;
;} ymMusicInfo_t;

;// Create object
;extern	YMMUSIC *	ymMusicCreate();

;// Release object
;extern	void		ymMusicDestroy(YMMUSIC *pMusic);

;// Functions
;extern	ymbool			ymMusicLoad(YMMUSIC *pMusic,const char *fName);						// Method 1 : Load file using stdio library (fopen/fread, etc..)
;extern	ymbool			ymMusicLoadMemory(YMMUSIC *pMusic,void *pBlock,ymu32 size);			// Method 2 : Load file from a memory block

;extern	ymbool			ymMusicCompute(YMMUSIC *pMusic,ymsample *pBuffer,ymint nbSample);	// Render nbSample samples of current YM tune into pBuffer PCM 16bits mono sample buffer.

;extern	void			ymMusicSetLoopMode(YMMUSIC *pMusic,ymbool bLoop);
;extern	const char	*	ymMusicGetLastError(YMMUSIC *pMusic);
;extern	int				ymMusicGetRegister(YMMUSIC *pMusic,ymint reg);
;extern	void			ymMusicGetInfo(YMMUSIC *pMusic,ymMusicInfo_t *pInfo);
;extern	void			ymMusicPlay(YMMUSIC *pMusic);
;extern	void			ymMusicPause(YMMUSIC *pMusic);
;extern	void			ymMusicStop(YMMUSIC *pMusic);

;extern	ymbool			ymMusicIsSeekable(YMMUSIC *pMusic);
;extern	ymu32			ymMusicGetPos(YMMUSIC *pMusic);
;extern	void			ymMusicSeek(YMMUSIC *pMusic,ymu32 timeInMs);

;#endif


zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Message par zorg »

Ben alors!!
Comment trouver ça par soi-même?? 8O
Bon, je pense que seules les 15 premières lignes sont utiles (elles ressemblent aux lignes en C++ postées plus haut)
Par contre pour les paramètres à passer.. je vais voir.

Merci bien Progi1984.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ben j'ai tenté un

Code : Tout sélectionner

pMusic = ymMusicCreate();
  mf = ymMusicLoad(pMusic,filename);
  if (mf) {
    ymMusicGetInfo(pMusic,&info);
    ymMusicSetLoopMode(pMusic,YMTRUE);
    ymMusicPlay(pMusic);
seulement ça marche po !! :?
meme en utilisant "ymMusicLoadYAHPAXP" au lieu de ymMusicLoad , hum !! ... :)
zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Message par zorg »

Quant à moi, j'en suis là (inspiré par le code de KarlKox sur la DLL Stsound pour IE):

Ca me donnne bien les infos sur la musique mais aucun son...

Code : Tout sélectionner

Structure ymMusicInfo_t
  pSongName.l
  pSongAuthor.l
  pSongComment.l
  pSongType.l
  pSongPlayer.l
  musicTimeInSec.l
EndStructure


Global YMMUSIC.l
Global Music_infos.ymMusicInfo_t
Global Nomfichier.s



Import "msvcrt.lib"
EndImport

Import "StSoundLibrary.lib"
  ymMusicCreate.l() As "?ymMusicCreate@@YAPAXXZ"
  ymMusicDestroy(*pMusic) As "?ymMusicDestroy@@YAXPAX@Z"
  ymMusicLoad(*pMusic, *pFileName) As "?ymMusicLoad@@YAHPAXPBD@Z"                       ; Method 1 : Load file using stdio library (fopen/fread, etc..)
  ymMusicLoadMemory(*pMusic, *pBlock, size.l) As "?ymMusicLoadMemory@@YAHPAX0K@Z"       ; Method 2 : Load file from a memory block
  ymMusicCompute(*pMusic, *pBuffer, nbSample.w) As "?ymMusicCompute@@YAHPAXPAFH@Z"      ; Render nbSample samples of current YM tune into pBuffer PCM 16bits mono sample buffer.
  ymMusicSetLoopMode(*pMusic, bLoop.b) As "?ymMusicSetLoopMode@@YAXPAXH@Z"
  ymMusicGetLastError(*pMusic) As "?ymMusicGetLastError@@YAPBDPAX@Z"
  ymMusicGetRegister(*pMusic, reg.w) As "?ymMusicGetRegister@@YAHPAXH@Z"
  ymMusicGetInfo(*pMusic, *pInfo) As "?ymMusicGetInfo@@YAXPAXPAUymMusicInfo_t@@@Z"
  ymMusicPlay(*pMusic) As "?ymMusicPlay@@YAXPAX@Z"
  ymMusicPause(*pMusic) As "?ymMusicPause@@YAXPAX@Z"
  ymMusicStop(*pMusic) As "?ymMusicStop@@YAXPAX@Z"

  ymMusicIsSeekable(*pMusic) As "?ymMusicIsSeekable@@YAHPAX@Z"
  ymMusicGetPos(*pMusic) As "?ymMusicGetPos@@YAKPAX@Z"
  ymMusicSeek(*pMusic, timeInMs.l) As "?ymMusicSeek@@YAXPAXK@Z"
  
EndImport



Nomfichier = OpenFileRequester("Sélectionner le fichier musique", "", "YM|*.ym", 0)
result = ReadFile(0, Nomfichier)
If (result <> 0)
  Taille = Lof(0)
  Donnees = AllocateMemory(Taille)
  ReadData(0,Donnees, Taille)
  CloseFile(0)
  YMMUSIC=ymMusicCreate()
  ymMusicLoadMemory(YMMUSIC,Donnees, Taille)
  ymMusicGetInfo(YMMUSIC,Music_infos)
  ymMusicPlay(YMMUSIC)
  ymMusicSetLoopMode(YMMUSIC,#True)

  If OpenConsole()
    Print("Titre: "+PeekS(Music_infos\pSongName)+Chr(10)+Chr(13))
    Print("Auteur: "+PeekS(Music_infos\pSongAuthor)+Chr(10)+Chr(13))
    Print("Commentaires: "+PeekS(Music_infos\pSongComment)+Chr(10)+Chr(13))
    Print("Type: "+PeekS(Music_infos\pSongType)+Chr(10)+Chr(13))
    Print("Lecteur: "+PeekS(Music_infos\pSongPlayer)+Chr(10)+Chr(13))
    Print("Duree: "+Str(Music_infos\musicTimeInSec)+" secondes"+Chr(10)+Chr(13))
    Print(Chr(10)+Chr(13))
    PrintN("Appuyez sur [Entree] pour quitter")
    Input()
  EndIf
  ymMusicStop(YMMUSIC)
  ymMusicDestroy(YMMUSIC)
  FreeMemory(Donnees)
Else
  MessageRequester("", "Erreur d'ouverture du fichier " + Nomfichier)
EndIf

zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Message par zorg »

Bon, c'est pas gagné..

J'ai regardé un peu plus les fichiers en C et même si je n'y comprends rien, je vois bien que dans l'exemple de lecteur, il faut initialiser un Soundserver et lui charger les samples apparemment. (C'est le fichier soundserver.cpp de l'archive postée plus haut).

Je pense que je vais rester bloqué là. Dommage. :cry:

Si quelqu'un s'y connait en C++ :?:

Merci d'avance.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

zorg a écrit :Quant à moi, j'en suis là (inspiré par le code de KarlKox sur la DLL Stsound pour IE):

la dll de Karlkox marche impeccable !!
il a juste fallu passer le source en purebasic 4.10 :D

mais chez moi son code marche niquel
et comme il s'agit d'un player, on a tous ce qu'il faut pour en tirer partie :D
meme un Barre Graph dans la foulée :D

que demande le peuple :D

Merci KarlKox (avec un poil de retard !!)

si ça vous interresse je vous fait un petit pack du source des code de Karlkox mis a jour :D
avec le strict minimum pour que ça marche ! :D


allez ben tiens :

http://michel.dobro.free.fr/Forum_PB/ym_player.zip
:D
Répondre