0/5 (4 avis)
Vue 7 779 fois - Téléchargée 817 fois
{ -------------------------------------------------------------------- } { -------------------------------------------------------------------- } { A propos de PlopEngine.pas PlopEngine contient divers types, variables, constantes, fonctions et procedures utilisable dans n'importe quel projet de lecteur multimedia } procedure SetTimeFormat(const val : string); function MinutesToTime(const Minutes : integer) : TDateTime; function MinutesToStr(const Minutes : integer) : string; function SecondsToTime(const Seconds : integer) : TDateTime; function SecondsToStr(const Seconds : integer) : string; function MillisecsToTime(const MilliSecs : integer) : TDateTime; function MillisecsToStr(const MilliSecs : integer) : string; function TimeRemain(const Ps,Len : TDateTime) : TDateTime; function TimeRemainStr(const Ps,Len : TDateTime) : string; function GenreToStr(const GenreID : byte) : string; function ValueToPercent(const P,Max : single;const Min : single = 0) : single; function ValueToPercentStr(const P,Max : single;const Min : single = 0) : string; function ShuffleAPC(const PlaylistCount,CurrentTrackIndex : integer) : integer; function ShufflePlayList(var PlayList) : integer; Procedure PlopEngine_Close; Procedure PLOPPANIK; { -------------------------------------------------------------------- } { -------------------------------------------------------------------- } { A propos de PlopGraphics.pas PlopGraphics contient deux tout nouveaux types TPointFloat, TRectFloat et egalement leurs equivalent pointeurs PPointFloat et PRectFloat. Elle contient egalement diverses methodes pour gerer tout ce qui est d'ordre graphique (point, rect, pointfloat, rectfloat ect...) (!) le type TRectFloat est réellement derivé de TRect. (!) le type TPointFloat est réellement derivé de TPoint. } function RectFloat(ALeft,ATop,ARight,ABottom : Single) : TRectFloat; overload; function RectFloat(ATopLeft,ABottomRight : TPointFloat) : TRectFloat; overload; function PointFloat(AX,AY : Single) : TPointFloat; procedure FusionRect(const Src : TRect; var Dest : TRect); procedure FusionRectFloat(const Src : TRectFloat; var Dest : TRectFloat); function CollideRect(const R1,R2 : TRect) : boolean; overload; function CollideRect(const R1,R2 : TRectFloat) : Boolean; overload; function RectCenter(const ARect: TRect): TPoint; function RectFloatCenter(const ARect: TRectFloat): TPointFloat; function IsEmptyRect(const ARect : TRect) : boolean; overload; function IsEmptyRect(const ARect : TRectFloat) : boolean; overload; function IsZeroPoint(const APoint : TPoint) : boolean; overload; function IsZeroPoint(const APoint : TPointFloat) : boolean; overload; function IsPositivePoint(const APoint : TPoint) : boolean; overload; function IsPositivePoint(const APoint : TPointFloat) : boolean; overload; function PointInRect(const APoint : TPoint; const ARect : TRect) : boolean; overload; function PointInRect(const APoint : TPointFloat; const ARect : TRect) : boolean; overload; function PointInRect(const APoint : TPoint; const ARect : TRectFloat) : boolean; overload; function PointInRect(const APoint : TPointFloat; const ARect : TRectFloat) : boolean; overload; function PointFloatToPoint(const APoint : TPointFloat; const Scale : Single = 0) : TPoint; function PointToPointFloat(const APoint : TPoint; const Scale : Single = 0) : TPointFloat; function RectFloatToRect(const ARect : TRectFloat; const Scale : Single = 0) : TRect; function RectToRectFloat(const ARect : TRect; const Scale : Single = 0) : TRectFloat; function SetRect(ALeft,ATop,ARight,ABottom : Integer) : TRect; overload; function SetRect(ATopLeft,ABottomRight : TPoint) : TRect; overload; function SetPoint(AX,AY : Integer) : TPoint; function SetRectFloat(ALeft,ATop,ARight,ABottom : Single) : TRectFloat; overload; function SetRectFloat(ATopLeft,ABottomRight : TPointFloat) : TRectFloat; overload; function SetPointFloat(AX,AY : Single) : TPointFloat;
15 févr. 2013 à 00:10
Oui le projet est abandonné, rien ne t'empêche de le reprendre, c'est fait un peu pour cela. Faudra dépoussiérer j'ai fais ça a mes tout début ou presque.
J'ai fais ce que je voulais de bass et suis passé à d'autres choses.
14 févr. 2013 à 23:46
As tu un projet de demo pour utiliser tes compos ?
car je debute et aimerais etre guidé ...
As tu avancé avec BASS ?
Je sais cela fait deja quelques années, tu as peut etre abandonné le projet...
merci
27 janv. 2006 à 15:40
J'ai utiliser la methode paint car je ne savais pas qu'on pouvait utiliser Invalidate, il faut dire que PlopGauge et PlopPanel sont mes composant visuel les plus aboutis et je manque encore de pratique de ce coté la.
Pour les HPPEMIT je ne citerais que ce conseil :
"La directive NODEFINE empêche le symbole indiqué d'être inclus dans le fichier d'en-tête généré pour le C++ tout en permettant la génération d'information dans le fichier OBJ.
Quand vous employez NODEFINE, il est de votre responsabilité de définir n'importe quels types nécessaires avec HPPEMIT."
http://laurent-dardenne.developpez.com/articles/Delphi/2005/Evolution/Langage/ (chapitre 4.4)
Et comme je voulais un code prochede celui de borland pour les types TPoint et TRect, j'ai donc fait cela en bon et due forme ... mais l'utilitée reste par ailleur assé variable.
Pour ce qui est de l'ecriture du code, j'essaye toujours au maximum de respecter la meme discipline d'ecriture ... je pense que c'est mieux d'avoir une certaine façon de faire claire, precise, propre et j'essaye au maximum de la repetée dans tout un projet.
Concretement, ce n'est pas avec PlopEngine que le lecteur multimedia fonctionneras tout seul, Plopengine pour l'instant est assé sommaire dans ses possibilitée.
On pourrais meme retenir que seul PlopEngine et PlopGraphics ont un réel interet en fournissant des fonctions utile deja toute faite, comme la convertion de temps etc...
J'espere pouvoir réelement offrir de plus en plus d'elements pour faciliter la creation d'un lecteur multimedia presque "clef en main" (lecteur audio/video)
La je bosse sur l'inclusion non dependante des API MCI, BASS et FMOD, Excercice assé difficile en sois et donc les prochains ajout seront surrement les composant PlopSound, PlopFMOD et PlopBass, mais il faudrat etre patient. De plus certains elements de plop necessite des ameliorations majeur.
voila.
26 janv. 2006 à 16:30
N'ayant qu'une connaissance très limitée dans le multimédia je ne pense pas pouvoir t'être d'une aide à la hauteur de tes attentes (en réponse à ta demande sur le forum) mais j'ai toute fois une où deux remarques à formuler
- pourquoi utilises-tu Paint pour redessiner les contrôles au lieu de Invalidate qui est plus rapide me semble t'il.
- pourrais-tu commenter la partie de code dans PlopGraphics qui utilise (*$HPPEMIT 'namespace Types'*) etc. je dois avouer que je ne connais pas et que ça m'intrigue beaucoup.
- si non le code est réellement bien écrit d'une lisibilité sans faille c'est vraiment agréable. Bravo et merci (ça fait beaucoup de bien ^_^)
- et concrètement si je désir utiliser PlopEngine pour en faire un lecteur Multimédia comment dois-je m'y prendre ?
Conclusion même si j'ai pas tout bien compris je met quand même une note de 10 pour la qualité du code (facilité de lecture, commentaires, et somme de travail)
@+
Cirec
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.