Italia
Fonte/ Codesnippets

Player

 

KompilierenMarkierenSeparieren
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
        case @tmouse(17,43-19,49):cdnormal

    else

        datendisp

    endif

wend

end
 
15.07.2007  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.364 Views

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

Themeninformationen

Dieses Thema hat 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie