Plop engine - pour les players audio/video


Description

Salut a tous!

Voila, ma toute derniere nouveautée, Plop Engine(v1.0.2)

Qu'est-ce que Plop Engine ?
Plop est un moteur (une API) pour les lecteurs multimedia, qu'ils soient basés sur FMOD, BASS, DSPACK ou n'importe qu'elle autre API Video/Audio.

Qu'est-ce que fait Plop Engine ?
Plop ne fait que le strict minimum pour le moment. Il fournis des fonctions, procedures, constantes, composants et classes necessaires pour faire un lecteur multimedia, comme toute API qui se respecte.

Je pose un composant et pouf! j'ai une lecteur multimedia ?
Non Non et Non, Plop ne vas pas jusque la. Il fournis juste quelques trucs utiles que vous n'aurez donc pas a developper. J'ai tenter d'apporter un grand soins a l'ecriture du code pour que Plop soit performant et n'handicape pas vos projets. Mais pour l'instant, Plop est tout jeune donc il se peu que certaines chose ne passe pas correctement.

Alors que contient Plop Engine precisement ?
Plop est constituer pour le moment de 5 unités distincte. PlopEngine, PlopTape, PlopTrack, PlopPanel et PlopGauge.

- PlopEngine est l'unité principale de Plop, elle contient tout ce qui n'est pas visuel, fonctions, types, constantes, variables ect... Vous devrez declarer manuellement PlopEngine dans la close uses de votre projet pour pouvoir acceder a tout ceci. (la source de PlopEngine.pas est largement commentée pour en expliquer le fonctionnement).

- PlopTape est l'unité de l'objet experimental(!) TPlopTape. TPlopTape est un objet permettant tout simplement de gerer trois boutton (play, stop pause) peut importe leurs type. Il est juste la pour gerer les etats (play, stop, pause) de votre lecteur multimedia. Pour utiliser TPlopTape vous devrez le créer dynamiquement dans votre projet.

- PlopTrack est l'unité de l'objet experimental(!) TPlopTrack. TPlopTrack est un objet permettant de fournir un certain nombre de champs standard et utile a n'importe quel lecteur multimedia : titre, album, artiste, genre, nom du fichier, extention du fichier, repertoire du fichier, durée de la piste, durée en cours de la piste, temps restant ...Pour utiliser TPlopTrack vous devrez le créer dynamiquement dans votre projet.

(!) risque d'etre modifier a l'avenir.

- PlopPanel est l'unité du composant visuel TPlopPanel qui a un look ecran LCD (parametrable, simple mais efficace), de par ses propriétés TPlopPanel peut etre utilisé comme un Label ou un Boutton bien qu'il ne soit initialement pas prevus pour cela.

- PlopGauge est l'unité du composant visuel TPlopGauge qui a egalement un look ecran LCD (en harmonie avec TPlopPanel).

En installant le package PlopEngineD7.dpk, ces deux nouveaux composants seront presents dans la palette "Plop Engine".

J'ai essayer de fournir un maximum de propriétés aux composants TPlopPanel et TPlopGauge pour qu'ils soient des plus pratique a utiliser.

Vous y retrouverez donc les propriétés (publiées) DoubleBuffered (a true par defaut), PopupMenu, TabStop, TabOrder, la plupart des evenements Souris, Clavier, Tabulation... et meme l'ajout des evenements OnMouseLeave et OnMouseEnter pour votre plus grand plaisir.

TPlopPanel possede egalement une propriété Caption gérée par deux autres propriétés TextHAlign et TextVAlign permettant de definir sa position, cela vous permettras de l'utiliser comme simple Label d'affichage.

Source / Exemple :


{ -------------------------------------------------------------------- }
{ -------------------------------------------------------------------- }
{
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;

Conclusion :


Si vous avez des suggestions, si vous remarquez des bugs ou ameliorations possible, postez un commentaire.

Si vous desirez prendre par au developpement de PlopEngine, contactez moi par Message privé.

version en cours : PlopEngine v1.0.2

(!) le package est marquer D7 mais il se peut qu'il soit installable sur d'autre version de Delphi. (au moins delphi 6 - 8 et 9)

(!) a venir : de nouveaux composants visuel au look Plop! De nouvelles fonctions et trucs utile.

Codes Sources

A voir également

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.