Français
Source/ Codesnippets

Player

 

KompilierenMarqueSéparation
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
CD-Player
--- Windows CD Player ---
von
Jürgen Vetter
Gutenbergstraße 51
44139 Dortmund
Fido 2:243/4601.6
Version 1.00
Version 1.5 optisch aufbereitet von Roland G. Hülsmann
Version 1.6 angepaßt an XProfan von Roland G. Hülsmann
Dieses Programm wurde auf einem 486/33 MHz 8 MB
Windows 3.1
DOS 6.0
Mitsumi LU005S
getestet
Dieses Programm ist F R E E W A R E. Bei der Weitergabe dieses Programm darf keine
Gebühr erhoben werden. Es ist kostenfrei weiterzugeben. Ich übernehme keine
Verantwortung für Schäden an der Hardware oder Software bei Einsatz dieses Programms
Ich schließe auch alle anderen Pflichten aus.
Der Sourcecode darf nur mit meiner Genehmigung verändert werden.
Mein Dank geht an Roland G. Hülsmann für Profan Version 2.5
Mich würde ein Kontaktaustausch zwischen Programmieren natürlich freuen
Bitte schreibe doch eine kleine NetMail im Fido.
--------------------------------------------------------------------------------------------
*** programm endekennzeichen -> 0
declare verkz%
*** betriebsmouds -> 1 shuffle
declare modus%
*** 99 Stücke können gespeichert werden
dim$ 99
*** CD Variablen
declare cdanz%,cdanzs$,cdlaen$,cdplay$,cdtrack$,cdzw$
declare cdakt%,cdalt%,cdmin%,cdsec%,cdmalt%,cdsalt%
*** laufvariablen / zwischenvariablen
declare sub%,ende%,zw$,zahl%,mci1$,trenn$,steppos$,disp$,zufall%,nummer%,zwert%
*** Daten alle refreshen -> 1
declare datenref%,timeref$
*** Variablen auf Grund setzen
verkz%    = 1
cdakt%    = 1
cdplay$   = 01:00:00:00
datenref% = 1
trenn$    = :
modus%    = 0
color 1,15
*---------------------------*
* MCI Error eingetreten     *
*---------------------------*

proc mfehler

    @messagebox(Es ist ein Mediafehler aufgetreten!,
    Ignorieren?,33)
    case (%button = 2):verkz%   = 0

endproc

*---------------------------*
* Ermittelt die CD-Daten    *
*---------------------------*

proc cddaten

    cdanzs$  = @mcisend$(status cd number of tracks)
    cdlaen$  = @mcisend$(status cd length)
    cdanz%   = @val(cdanzs$)
    sub%     = 1
    ende%    = 1

    while ende%

        list$ sub% = @mcisend$(status cd length track  + @str$(sub%))

        if (sub% = cdanz%)

            ende% = 0

        endif

        inc sub%

    wend

endproc

*---------------------------*
* Füllt eine Box mit Daten  *
*---------------------------*

proc aufbau

    declare sub$
    clearlist
    sub%  = 1
    ende% = 1

    while ende%

        sub$=@str$(sub%)
        case (sub% < 10):sub$ = 0 + sub$
        zw$ = sub$ +  -
        addstring zw$ + @list$(sub%)

        if (sub% = cdanz%)

            ende% = 0

        endif

        inc sub%

    wend

endproc

*---------------------------*
* zeigt die CD Daten nun an *
* und ermöglicht Auswahl    *
*---------------------------*

proc cdlist

    declare wahl$
    wahl$=@ListBox$(Stück - Länge,0)

    If (wahl$ <> )

        nummer% = %getcursel + 1
        @mcisend$(play cd from  + @Str$(nummer%))

        if (%mcierror <> 0)

            mfehler

        endif

    endif

endproc

*---------------------------*
* Schirm aufbauen           *
*---------------------------*

proc schirm

    cls
    usebrush 1,0
    rectangle 0,0-420,42
    font 2
    color 14,0
    locate 1,2
    print Aktuelle Position:
    locate 1,30
    print Uhrzeit.....:
    locate 2,2
    print Anzahl Gesamt....:
    locate 2,30
    print Länge Gesamt:
    locate 3,2
    print Aktuelles Stück..:
    locate 3,30
    print Länge Stück.:
    loadsizedbmp WINLOGO.BMP,0,42-420,258;0
    color 15,8
    tbox 5,2 - 7,8;0
    print Liste
    tbox 9,2 -11,8;0
    print Ende
    color 14,2
    tbox  5,11- 7,15;0
    print  1
    tbox  5,17- 7,21;0
    print  2
    tbox  5,23- 7,27;0
    print  3
    tbox  9,11-11,15;0
    print  4
    tbox  9,17-11,21;0
    print  5
    tbox  9,23-11,27;0
    print  6
    tbox 13,11-15,15;0
    print  7
    tbox 13,17-15,21;0
    print  8
    tbox 13,23-15,27;0
    print  9
    tbox 17,11-19,15;0
    print  1*
    tbox 17,17-19,21;0
    print  0
    tbox 17,23-19,27;0
    print  2*
    color 0,13
    tbox  5,30- 7,35;0
    print  <<
    tbox  5,37- 7,42;0
    print  ->
    tbox  5,44- 7,49;0
    print  >>
    tbox  9,30-11,35;0
    print  |<
    tbox  9,37-11,42;0
    print  ##
    tbox  9,44-11,49;0
    print  >|
    tbox 13,30-15,35;0
    print  ||
    tbox 13,37-15,49;0
    print   Shuffle
    tbox 17,37-19,49;0
    print   Normal
    color 14,0

endproc

*---------------------------*
* CD-Rom nicht gefunden     *
*---------------------------*

proc mfehler2

    @messagebox(CD-Rom nicht gefunden oder wird bereits benutzt,
    Programmabbruch !,16)
    verkz% = 0

endproc

*---------------------------*
* fehlerhafte Auswahl       *
*---------------------------*

proc fehlaus

    @messagebox(Dieses Stück gibt es nicht,
    Hinweis,0)

endproc

*---------------------------*
* Programm beenden          *
*---------------------------*

proc ende

    @messagebox(Wollen Sie das Programm wirklich beenden?,
    Frage:,36)
    case @equ(%button,6):verkz% = 0

endproc

*---------------------------*
* MCI-Befehl aufbauen       *
*---------------------------*

proc mcivor

    mci1$   = @str$(cdmin%)
    mci1$   = mci1$ + trenn$
    mci1$   = mci1$ + @str$(cdsec%)
    cdplay$ = @str$(cdakt%) + trenn$
    cdplay$ = cdplay$ + mci1$

endproc

*---------------------------*
* nächstes Stück bestimmen  *
* muss noch erweitert werden*
* ausgrenzung gespielter st *
*---------------------------*

proc bestimme

    zufall% = @rnd (cdanz%)
    inc zufall%
    cdakt%  = zufall%

endproc

*---------------------------*
*  CD-Betriebsmodus         *
*---------------------------*

proc cdmodus

    if (modus% = 1)

        color 13,5
        tbox 13,37-15,49;1
        print   Shuffle
        color 0,13
        tbox 17,37-19,49;0
        print   Normal

    else

        color 0,13
        tbox 13,37-15,49;0
        print   Shuffle
        color 13,5
        tbox 17,37-19,49;1
        print   Normal

    endif

endproc

*---------------------------*
* Modus normal              *
*---------------------------*

proc cdnormal

    modus% = 0
    cdmodus

endproc

*---------------------------*
* Shuffle aktivieren        *
*---------------------------*

proc cdshuffle

    modus% = 1
    cdmodus

endproc

*---------------------------*
* alle Daten neuaufbauen    *
*---------------------------*

proc datenerw

    color 14,0
    locate 2,21
    print cdanzs$
    locate 2,44
    print cdlaen$
    locate 3,21
    print @mid$(disp$,1,2)
    locate 3,44
    print @list$(cdakt%)
    datenref% = 0
    cdalt%    = cdakt%

endproc

*---------------------------*
* Datendisplay              *
*---------------------------*

proc datendisp

    color 14,0
    locate 1,44
    print @time$(0)
    disp$  = @mcisend$(Status cd position)

    ifnot (%mcierror = 0)

        mfehler

    else

        locate 1,21
        print @mid$(disp$,4,5)

        if (datenref% = 1)

            datenerw

        endif

        cdakt% = @val(@mid$(disp$,1,2))

        if (cdakt% <> cdalt%)

            if (modus% = 1)

                bestimme

            endif

            datenerw

        endif

    endif

endproc

*---------------------------*
* CD abspielen              *
*---------------------------*

proc cdplay

    @mcisend$(play cd from  + cdplay$)

    if (%mcierror <> 0)

        mfehler

    endif

endproc

*---------------------------*
* CD ein Stück zurück       *
*---------------------------*

proc cdback

    zahl% = cdakt%
    dec zahl%

    if (zahl% > 0)

        cdakt%  = zahl%
        cdalt%  = cdakt%
        cdplay$ = @str$(cdakt%)
        cdplay
        datenref% = 1

    endif

endproc

*---------------------------*
* CD ein Stück vor          *
*---------------------------*

proc cdfor

    zahl% = cdakt%
    inc zahl%

    if (zahl% <= cdanz%)

        cdakt%  = zahl%
        cdalt%  = cdakt%
        cdplay$ = @str$(cdakt%)
        cdplay
        datenref% = 1

    endif

endproc

*---------------------------*
* CD zurück springen        *
*---------------------------*

proc cdstepb

    steppos$ = @mcisend$(status cd position)
    cdsec%   = @val(@mid$(steppos$,7,2))
    cdmin%   = @val(@mid$(steppos$,4,2))
    cdsec%   = @sub(cdsec%,15)

    if (cdsec% < 0)

        cdsec% = cdsec% + 60
        cdmin% = cdmin% - 1

        if (cdmin% >= 0)

            mcivor
            cdplay

        endif

    else

        mcivor
        cdplay

    endif

endproc

*---------------------------*
* CD stoppen                *
*---------------------------*

proc cdstop

    @MCISEND$(stop cd)

    if (%mcierror <> 0)

        mfehler

    else

        cdakt%    = 1
        cdalt%    = 1
        datenref% = 1

    endif

endproc

*---------------------------*
* CD vor springen           *
*---------------------------*

proc cdstepf

    cdzw$    = @mid$(@mcisend$(status cd length track  + @str$(cdakt%)),1,5)
    cdmalt%  = @val(@mid$(cdzw$,1,2))
    cdsalt%  = @val(@mid$(cdzw$,4,2))
    steppos$ = @mcisend$(status cd position)
    cdsec%   = @val(@mid$(steppos$,7,2))
    cdmin%   = @val(@mid$(steppos$,4,2))
    cdsec%   = cdsec% + 15

    if (cdsec% > 60)

        sub cdsec%,60
        cdmin% = cdmin% + 1

        if (cdmin% <= cdmalt%)

            if (cdsec% <= cdsalt%)

                mcivor
                cdplay

            endif

        endif

    else

        mcivor
        cdplay

    endif

endproc

*---------------------------*
* CD an Position anhalten   *
*---------------------------*

proc cdhold

    @MCISEND$(stop cd)

    if (%mcierror <> 0)

        mfehler

    else

        cdplay$ = @mcisend$(status cd position)

    endif

endproc

*---------------------------*
* 10er Block                *
*---------------------------*

proc asub1

    if @tmouse(17,11-19,15)

        locate 9,21
        color 14,2
        tbox 17,11-19,15;0
        print  1*
        tbox 17,17-19,21;0
        print  0
        tbox 17,23-19,27;0
        print  2*
        color 2,10
        tbox 17,11-19,15;1
        print  1*
        color 14,0
        nummer% = 10

    endif

    if @tmouse(17,23-19,27)

        locate 9,21
        color 14,2
        tbox 17,11-19,15;0
        print  1*
        tbox 17,17-19,21;0
        print  0
        tbox 17,23-19,27;0
        print  2*
        color 2,10
        tbox 17,23-19,27;1
        print  2*
        color 14,0
        nummer% = 20

    endif

endproc

*---------------------------*
* Stück spielen per Display *
*---------------------------*

proc asub2

    if (nummer% <= cdanz%)

        cdakt%    = nummer%
        cdalt%    = cdakt%
        cdplay$   = @str$(cdakt%)
        cdplay
        datenref% = 1

    else

        fehlaus

    endif

    color 14,2
    tbox 17,11-19,15;0
    print  1*
    tbox 17,17-19,21;0
    print  0
    tbox 17,23-19,27;0
    print  2*
    nummer% = 0

endproc

*---------------------------*
* Auswahl Nummerndisplay    *
*---------------------------*

proc auswahl

    zwert% = 999
    case @tmouse( 5,11- 7,15):zwert% = 1
    case @tmouse( 5,17- 7,21):zwert% = 2
    case @tmouse( 5,23- 7,27):zwert% = 3
    case @tmouse( 9,11-11,15):zwert% = 4
    case @tmouse( 9,17-11,21):zwert% = 5
    case @tmouse( 9,23-11,27):zwert% = 6
    case @tmouse(13,11-15,15):zwert% = 7
    case @tmouse(13,17-15,21):zwert% = 8
    case @tmouse(13,23-15,27):zwert% = 9
    case @tmouse(17,11-19,15):asub1
    case @tmouse(17,17-19,21):zwert% = 0
    case @tmouse(17,23-19,27):asub1

    if (zwert% <> 999)

        nummer% = nummer% + zwert%

        if (nummer% <> 0)

            asub2

        endif

    endif

endproc

*---------------------------*
* Hauptprogramm             *
*---------------------------*
WindowTitle PROFAN² CD-Player 1.6
windowstyle 10
window 50,50-420,320
Cls
locate 9,8
print Der CD-Player wird initialisiert ...
@mcisend$(open cdaudio alias cd)

ifnot @equ(%mcierror,0)

    mfehler2
    case @equ(verkz%,0):end

endif

@mcisend$(set cd time format tmsf)
cddaten
aufbau
schirm
cdmodus
datendisp

while verkz%

    if @equ(%mousekey,1)

        if @tmouse( 5, 2- 7, 8)

            cdlist

        endif

        case @tmouse( 9, 2-11, 8):ende
        case @tmouse( 5,11-19,27):auswahl
        case @tmouse( 5,30- 7,35):cdback
        case @tmouse( 5,37- 7,42):cdplay
        case @tmouse( 5,44- 7,49):cdfor
        case @tmouse( 9,30-11,35):cdstepb
        case @tmouse( 9,37-11,42):cdstop
        case @tmouse( 9,44-11,49):cdstepf
        case @tmouse(13,30-15,35):cdhold
        case @tmouse(13,43-15,49):cdshuffle
        cas @tmouse(17,43-19,49):cdnormal

    d'autre

        datendisp

    endif

Wend

end
 
15.07.2007  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.359 Views

Untitledvor 0 min.
Walter17.09.2020
PETER195618.07.2018
OldShep16.08.2014
Profanet11.11.2011

Themeninformationen

cet Thema hat 1 participant:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie