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

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
jerycha
Piegowaty Guziec
Piegowaty Guziec
Posty: 25
Rejestracja: 13 mar 2009, 21:43
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

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

Post 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 :/
Awatar użytkownika
1347
Piegowaty Guziec
Piegowaty Guziec
Posty: 22
Rejestracja: 25 sty 2010, 13:46
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

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

Post 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
:)
jerycha
Piegowaty Guziec
Piegowaty Guziec
Posty: 25
Rejestracja: 13 mar 2009, 21:43
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

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

Post 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)
marek63
Sędziwy Jeż
Sędziwy Jeż
Posty: 75
Rejestracja: 20 lut 2007, 22:49
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86

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

Post 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.
marek
Awatar użytkownika
1347
Piegowaty Guziec
Piegowaty Guziec
Posty: 22
Rejestracja: 25 sty 2010, 13:46
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

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

Post autor: 1347 »

U mnie działa. Mam 9.04 i wszystkie updaty.
jerycha
Piegowaty Guziec
Piegowaty Guziec
Posty: 25
Rejestracja: 13 mar 2009, 21:43
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

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

Post autor: jerycha »

wow normalnie mi pomogłeś >.< zdaje sobie sprawe ze niektorym dziala...
Awatar użytkownika
warlock24
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 102
Rejestracja: 20 cze 2008, 22:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

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

Post 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
jerycha
Piegowaty Guziec
Piegowaty Guziec
Posty: 25
Rejestracja: 13 mar 2009, 21:43
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

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

Post 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
Awatar użytkownika
warlock24
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 102
Rejestracja: 20 cze 2008, 22:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

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

Post 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
marek63
Sędziwy Jeż
Sędziwy Jeż
Posty: 75
Rejestracja: 20 lut 2007, 22:49
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86

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

Post 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?
marek
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości