Strona 1 z 1

[Pascal] free pascal i głośnik systemowy

: 10 mar 2010, 19:30
autor: jerycha
Witam
mam malutki problem z kompilatorem free pascal tzn chcialbym napisac programik odgrywajacy melodyjke i wszystko byloby fajnie tyle ze free pascal nie odtwarza dzwieku z glosnika systemowego no i w ten sposob nie wiem co ukladam :/ oczywiscie dodalem bilioteke crt ktora obsluguje polecenie sound.

Bardzo mi na tym zalezy, w Virtualbox mam wirtualnego XP na nim wiadomo glosnik systemowy nie dziala, a nawet w kompilatorze turbopascal odpalonego przez dosemu.

i moje pytanie brzmi czy istnieje mozliwosc wlaczenia tego glosnika? jezeli tak to w jaki sposob moge to zrobic? w google niestety tylko pisze jak go wylaczyc :/

Odp: [Pascal] free pascal i głośnik systemowy

: 14 mar 2010, 15:17
autor: 1347
Zdecyduj się: Ubuntu czy winda.

w konsole

Kod: Zaznacz cały

fpc kod.pas
i uruchamiasz pascala dla ubuntu (jak nie masz zainstalowanego to tam apt-get install..).
czytaj też

Kod: Zaznacz cały

man fpc
:)

Odp: [Pascal] free pascal i głośnik systemowy

: 15 mar 2010, 13:58
autor: jerycha
jak uruchomić free pascala to wiem manual przejrzalem tylko nie zauwazylem nic co by mnie interesowalo. Sprawa jest prosta po prostu pascal nie uzywa glosnika systemowego co za tym idzie nie odtwarza dzwieku w ubuntu i to jest problem (glosnik sprawny)

Odp: [Pascal] free pascal i głośnik systemowy

: 15 mar 2010, 14:35
autor: marek63
Podpinam sie do tematu bo też mnie interesuje. Próbowałem sam go rozwiązać, Znalazłem pokrewny temat tutaj: viewtopic.php?t=82788
Spróbowałem metody z edycją pliku: /etc/modprobe.d/blacklist.conf (nawiasem pisząc w poscie Ufok4 był drobny błąd bo było "blacklist" zamiast "blacklist.conf"). Okazało się, że można tam załączać i wyłączać PCSpeaker co skutkuje pojawianiem się bądź nie niektórych dźwięków systemowych ale n ie wpłhywa to na Free Pascala; tam dźwięk nie działa. Mówiąc krótku na razie kicha.

Odp: [Pascal] free pascal i głośnik systemowy

: 16 mar 2010, 20:52
autor: 1347
U mnie działa. Mam 9.04 i wszystkie updaty.

Odp: [Pascal] free pascal i głośnik systemowy

: 17 mar 2010, 11:14
autor: jerycha
wow normalnie mi pomogłeś >.< zdaje sobie sprawe ze niektorym dziala...

Odp: [Pascal] free pascal i głośnik systemowy

: 19 mar 2010, 11:19
autor: warlock24
Według dokumentacji modułu crt funkcja sound w niektórych systemach operacyjnych MOŻE BYĆ pusta. Np. u mnie na Ubuntu 9.10 funkcja Sound w module crt.pas wygląda tak

Kod: Zaznacz cały

procedure sound(hz:word);

{sound and nosound are not implemented because the OS/2 API supports a freq/
 duration procedure instead of start/stop procedures.}

begin
end;
czyli nie robi nic

Jeżeli u 1347 ta funkcja działa to może niech wklei na forum jej treść a ty sobie ją włączysz do swojego programu, chyba że znasz assemblera i możesz ją sobie napisać sam od podstaw.


Otwórz plik /usr/share/fpcsrc/2.2.4/rtl/emx/crt.pas i sprawdź jak jest u ciebie

Odp: [Pascal] free pascal i głośnik systemowy

: 20 mar 2010, 00:13
autor: jerycha
dziwne ja wgl nie mam katalogu fpcsrc po wpisaniu w szukajke crt.pas rowniez nic nie znalazlem ale po wpisaniu samego crt znalazlem plik crt.o i crt.ppu ktorych otworzyc nie potrafie bo cos z kodowaniem wurzuca gedit a znajduje sie to wszystko w katalogu
/usr/lib/fpc/2.2.4/units/i386-linux/rtl/

do braku glosnika juz sie przyzwyczailem no ale szkoda ze nie dzwieczy :D w chwili obecnej uzywam Turbo Pascala w wersji na windows odpalanego przez dosemu ale glosnik nadal nie dziala :D

Odp: [Pascal] free pascal i głośnik systemowy

: 20 mar 2010, 20:35
autor: warlock24
jerycha pisze:dziwne ja wgl nie mam katalogu fpcsrc po wpisaniu w szukajke crt.pas rowniez nic nie znalazlem
pewnie dlatego że mam zainstalowany pakiet fpc-source - kod źródłowy free pascala. Cały ja, instaluję wszystko jak leci a potem nie wiem skąd wziął się jaki plik :razz:
jerycha pisze: do braku glosnika juz sie przyzwyczailem no ale szkoda ze nie dzwieczy :D w chwili obecnej uzywam Turbo Pascala w wersji na windows odpalanego przez dosemu ale glosnik nadal nie dziala :D
jest jeszcze nadzieja, na forum Free Pascala (http://community.freepascal.org:10000/b ... m_id=24083) ktoś kiedyś rzucił taki kod

Kod: Zaznacz cały

unit PCSpeaker;
interface
uses linux;

{
    Call the procedure makeTone with a duration in milliseconds and a frequency
in hertz.
}
procedure makeTone ( duration, frequency : word);

implementation

{ This value comes from /usr/include/linux/kd.h }
const
  kd_mktone = $4b30;

procedure makeTone ( duration, frequency : word);
  var
    SoundDesc : longword;
  begin
    soundDesc := (duration * 16) + (1193180 div frequency);

    { Note that the KD_MKTONE ioctl actually requires a long int as its 3rd arg.
The ioctl function expects a pointer. }
    ioctl (STDOutputHandle, kd_mktone, pointer(soundDesc));
  end;

begin
end.
nie testowałem nie wiem czy zadziała

Odp: [Pascal] free pascal i głośnik systemowy

: 20 mar 2010, 21:09
autor: marek63
Sprawdziłem u sibie zawartość pliku crt.pas. Rzeczywiście procedury sound i nosound są puste. W takim razie co u licha jeszcze może być puste? Trzeba sobi tak testować wszystko zanim sie napisze jakiś program? A sprawdzał ktoś na dystrybucji dla Windows?