Dźwięk z biblioteki CRT

0

Witam.
Napisałem programik w Pascalu z wykorzystaniem sygnału dźwiękowego z biblioteki CRT.
Wszystko działa z wyjątkiem tego dźwięku. Może ktoś by wiedział co jest nie tak.

Kod programu:

uses
	CRT;
const
	passwd='passwd';
var
	nick, haslo:string;

begin
	writeln('Podaj nick.');
	readln(nick);
	writeln('Cześć ', nick);

	REPEAT
		writeln('Podaj hasło do systemu');
		readln(haslo);
	
		IF not (haslo = passwd) THEN
		begin
			Sound(523);
			writeln('Haslo jest niepoprawne!');
			Delay(2000);
			NoSound;
		end;

	UNTIL haslo = passwd;
	
	writeln('Dostęp aktywny. Wybierz, którąś z poniższych opcji...');

end.

Jeśli to ważne to programuje pod Ubuntu 12.04 używając kompilatora FPC (na terminalu).

1

w FPC Sound oraz NoSound na większości platform (w tym win32 i linux bodaj też) są po prostu stubami które nie robią nic/robią beep. Użyj jakiejś biblioteki albo innej funkcji (na Win32 jest wspomniany Beep, jest również jakoś zadeklarowana alternatywa Sound w przydatnym module WinGraph, natomiast na linuxie niestety nie wiem).
Po krótkim szukaniu jest np. to: http://wiki.freepascal.org/Multimedia_Programming

0

A jest w takim razie jakaś ciekawsza alternatywa od FPC? Taka, w której by wszystko działało jak należy a nie wybiórczo. Wolałbym oczywiście coś pod linuxa, z windy mam zainstalowaną 7 x64, ale raczej jej nie używam.

0

A jest w takim razie jakaś ciekawsza alternatywa od FPC?

Zmiana całego kompilatora z powodu braku implementacji w RTL?
Innego dobrego kompilatora Pascala praktycznie nie ma (Delphi chyba nie ma na Linuxa?); jestem prawie pewien, że istnieje artykuł pokazujący w jaki sposób odgrywać dźwięki na Linuxie...

1
Vendetta napisał(a):

A jest w takim razie jakaś ciekawsza alternatywa od FPC? Taka, w której by wszystko działało jak należy a nie wybiórczo. Wolałbym oczywiście coś pod linuxa, z windy mam zainstalowaną 7 x64, ale raczej jej nie używam.

Zrozum, że FPC to najbardziej zaawansowany darmowy kompilator i bodaj jedyny Pascalowski który jest w stanie kompilować dobry kod na linuxa. Na prawdę, jego możliwości nie kończą się na wyświetlaniu i wczytywaniu tekstu...
To, że tego nie ma w RTL wynika z tego, że ta procedura jest rodem DOSa i nie jest wspierana przez współczesne systemy operacyjne/nikt nie bawił się w to.
To tak, jakbyś powiedział że FPC jest zły bo nie wspiera interuptów (TP7 wspiera, ale robi kod 16bitowy który współcześnie coraz rzadziej działa). W FPC są po prostu lepsze mechanizmy niż interupty (thready) i Sound (chociażby Bass).
Czytasz starodawny kurs, który był pisany X lat temu. To, że coś nie działa na FPC, świadczy o starodawności kursu, nie kompilatora.

1

Użyj jakiejś gotowej biblioteki jak FMOD albo BASS do obsługi dźwięku. Możesz też próbować coś odegrać na Linuksie niskopoziomowo (OSS? ALSA?).

0

Nie szukam na siłę niczego innego tylko orientuje się ;) Znalazłem go w markecie Ubuntu, myślałem, że może jest jeszcze coś innego. Skoro jest najlepszy to zostanę przy nim.
Co do Delphi to jest jego odzwierciedlenie na linuxa, nazywa się Lazarus. Z 10 lat temu pisałem coś nawet na Delphi w szkole, z tego co pamiętam je z tamtych czasów, a Lazarusa dziś instalowałem, to oba środowiska są wizualnie identyczne. Z komentarzy w Internecie wynika, że Lazarus jest warty polecenia.

W każdym razie temat się wyczerpał, dzięki za wytłumaczenie.

1

Nie jedyny, bo jest też GPC (GNU Pascal Compiler) ale jak ostatnio sprawdzałem to był nie rozwijany od kilku lat.

Dlatego dodałem słowo 'dobry' :P . Znam GPC ale mało kto tego używa gdyż jego filozofia jest inna niż FPC. I tak, nie jest rozwijany, ale wydaje mi się że nie od kilku lat, bo przez jakiś czas była osoba która opiekowała się jeszcze tym, dopiero ostatnio nie ma już chyba nikogo. Zresztą, chyba właśnie na forum FPC było o tym głośno i stąd o tym wiem bo zaglądam tam. Wydaje mi się że od mniej niż roku nie ma już żadnej osoby która oficjalnie by się nim zajmowała.

Co do Delphi to jest jego odzwierciedlenie na linuxa, nazywa się Lazarus. Z 10 lat temu pisałem coś nawet na Delphi w szkole, z tego co pamiętam je z tamtych czasów, a Lazarusa dziś instalowałem, to oba środowiska są wizualnie identyczne. Z komentarzy w Internecie wynika, że Lazarus jest warty polecenia.

Tak, jest. Przy czym Lazarus używa FPC jako kompilatora a sam dodaje LCL. Generalnie to polecam używanie Lazarusa ze względu na dużo ładniejsze środowisko niż FPC-Ide rodem DOSa. Pod maską jest i tak dokładnie to samo, a w Lazarusie można być leniwym i używać Ctrl+Spacja, Alt+Klawisz w górę albo Ctrl+Shift+Spacja. Więcej o tych skrótach się dowiesz jak poszukasz.

W każdym razie temat się wyczerpał, dzięki za wytłumaczenie.

Nie zapomnij optaszkować najlepszej odpowiedzi.

0

Ja jak na razie piszę w notatniku a kompiluję przez konsolą. Może później popatrzę Lazarusa, na razie jest ok. Ja to głównie uczę się Javy, Pascal to taka odskocznia, język z którym miałem najmniej styczności ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1