Merci bien Médinoc,
J'ai rectifié le code.
je suis toujours planté par un Storage_Error ceci dis.
Merci bien Médinoc,
J'ai rectifié le code.
je suis toujours planté par un Storage_Error ceci dis.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Bonjour,
N'étant pas une flèche en math, j'ai opté pour une autre solution afin de formater le long.
Mai par contre je ne sais si je doit me retrouver pour un message "(0x90, 60, 100)" avec 100060144 ou 144060100.
Merci pour vos réponses.
Pm_Message(0x90, 60, 100) équivaut à Pm_Message(0x90, 0x3C, 0x64), qui doit donner 0x00643C90 (ou 6569104 en décimal)
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Bonjour,
J'ai réussis à formater mon message.
Mais a priori, j'ai toujours un problème avec l'objet PortMidiStream.
Merci encore. @+
Bonjour,
Comme j'en avez l'intuition, la fonction OpenOutput modifie le paramètre PortMidiStream.
Comme avec Ada il est impossible de le faire, j'ai contourné le problème avec un petit code C que voici :
Je récupère mon adresse et le tour est joué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #include <stdio.h> #include <portmidi.h> #include <porttime.h> #define DRIVER_INFO NULL #define OUTPUT_BUFFER_SIZE 0 #define TIME_PROC ((long (*)(void *)) Pt_Time) #define TIME_INFO NULL #define TIME_START Pt_Start(1, 0, 0) /* timer started w/millisecond accuracy */ long latency = 0; PmStream * midi; int Open_Handler (int device) { TIME_START; Pm_OpenOutput(&midi, device, DRIVER_INFO, OUTPUT_BUFFER_SIZE, (latency == 0 ? NULL : TIME_PROC), (latency == 0 ? NULL : TIME_INFO), latency); return midi; }
Merci pour votre aide
Heu... Comment ça, impossible en Ada ??? Et les modificateurs "In Out", alors, ils servent à décorer le sapin de Noël ?
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Donc, tout comme dans les mauvais langages, il est impossible d'avoir un élément de programme qui peut à la fois modifier des trucs et retourner une valeur?
Enfin au moins dans ton cas, tu devrais toujours pouvoir remplacer la fonction par une procédure et sa valeur de retour par un autre paramètre in/out...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Désolé si je parais désagréable, mais vouloir m'expliquer l'Ada ou le Pascal, c'est peut-être "un peu" gonflé... Si je te dis que "In Out" règle ton problème, c'est parce que c'est le cas.
Essaie ce code, tu verras bien :Quand je te dis que les passages par référence existent en Ada, ce n'est pas une supposition, c'est une certitude...
Code Ada : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Procedure Inc ( B : In Out Integer ) is Begin B:=B+1; End Inc ;
Bien sûr que non. De ce point de vue, Ada fonctionne à l'identique de Pascal et C : le passage par défaut est fait par valeur, et il faut expliciter les passages par référence (modificateur "Var" en Pascal, et "*"+"&" en C).
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Ok !
je suis près à prendre une leçon ...
Comment importes tu cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PmError Pm_OpenInput( PortMidiStream** stream, PmDeviceID inputDevice, void *inputDriverInfo, long bufferSize, PmTimeProcPtr time_proc, void *time_info );
Comme ça :Bien sûr, il faut adapter les types composés (PmError, PmDeviceID, PortMidiStream) en conséquence.
Code Ada : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Function Pm_OpenInput ( stream : In Out PortMidiStream ; inputDevice : PmDeviceID ; inputDriverInfo : In Out System.Address ; bufferSize : Long_Integer ; time_proc : System.Address ; -- Est en fait un pointeur de fonction, attention... time_info : In Out System.Address ) Return PmError ;
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager