- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Austin F.: Intel Iris Xe driver frissítés
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja a trendeket...
- NASsoljunk: ZyXEL NSA-310 és az FFP
- tildy: Új élet kezdődik
- Magga: PLEX: multimédia az egész lakásban
- [K2]: A vagyonvédelmi rendszerszerelővé válás rögös útja
-
LOGOUT
Új hozzászólás Aktív témák
-
Gregorius
őstag
Bonyolult ügy. Megcsinálható, de bonyolult. Alapvetően két megoldásban lehet gondolkodni. Egyrészt lehet próbálkozni filter driverrel, ami az überprofi programozó és a félisten programozó szintje között van valahol. Másrészt meg lehet keyboard hook-kal meg WM-ekkel dolgozni, ez kevésbé biztos a multitasking miatt (nem garantált, hogy a leütések mindig felváltva követik egymást), de ez is elég messze van a HelloWorld kategóriától.
Ezekből lehet okkulni:
[link]
[link]
[Szerkesztve] -
emitter
őstag
neked meg mindenképp azt ajánlom, hogy áruld el a feladatod mibenlétét, mert így nagyon nehéz segíteni
NEM röhögünk ki senkit, ha bizonytalan vagy, privizhetsz is
amúgy realtime akármilyen programot szövegszerkesztésre használva szvsz lehetetlen ilyet csinálni.. vagy ahhoz már a billentyűzet driverjét kéne átírni -
emitter
őstag
válasz
aranyosij #1694 üzenetére
ez választható feladat vagy mi? ha ránézésre nem tudod eldönteni, hogy bonyolult-e vagy nem, akkor meggondolnám a helyedben, mielőtt belevágom a fejszémet
azért itt egy jó kis leírás [link] a hálózatos programozás alapjairól, neked különösen ajánlom átolvasni a ''6.2. select() - Szinkron I/O Multiplexelés'' részt, azon belül találsz egy nagyon egyszerű példát egy chat-programra, amit továbbfejleszthetsz
sok sikert!
mod: a link
[Szerkesztve] -
aranyosij
csendes tag
Hali,
lenne egy feladatom, ilyennel találkozott már vki?
vagy ha nem, mennyire bonyolult megírni?
http://www.kepfeltoltes.hu/view/060507/beadando_www.kepfeltoltes.hu_.jpg
thx -
Daveeboy
tag
Sziasztok!
[link]
Ebben a témaban ha tudna valaki segíteni, az sokat jelentene nekem.
Előre is köszi!
[Szerkesztve] -
BlackV
őstag
Sziasztok! Lehet olyan progit írni, amit ha aktiválok és ez után bárhova írok vmit, /mondjuk Word/ akkor minden egyes leütött karakter közé beékel nekem egy általam megadott karaktert? Hogy mire kell azt ne kérdezzétek
Bonyolult megírni egy ilyet?
-
emitter
őstag
miért nem működik nálam az mvprintw??
...
initscr();
clear();
mvprintw(1, 0, ''mvprintw'');
...
nem ír ki semmit, viszont cout-tal működikemlékeszem, régebben már kipróbáltam ezt a kiírófv-t, és ment
ncurses.h-t behúzom, nem is kapok semmi hibát, mégsem jó -
emitter
őstag
válasz
Jester01 #1687 üzenetére
köszi, erre a select-es bibre sosem jöttem volna rá magamtól
most már nem eszik prockót
a ciklus azért fut bufsize-ig, mert akkora a puffer (wav_buf) mérete (ami ugye shortokat tartalmaz)
ha átírom a cilusokat, és csak readbytes-ig futnak, akkor már tényleg megszólal a zene, de nagyon zavarosan, zajosan.. ez nem tudom mitől lehet
(frissítettem a forrásokat a neten)
másrészt azért is gondolom, h a cilusoknak bufsize-ig kell futniuk, mert itt van pl. ez a progi [link], ez volt az alapja a wav-lejátszásnak, és itt is bepakolom a wavot egy listába (egy bufsize-ih futó ciklussal), amiből szépen vissza is tudom rakni a pufferba.. na és ha ebben a progiban átírom a ciklust, és csak readbytes-ig fut, akkor néha ugyan jól lejátsza a wavot, de sokszor hibát ad vissza az snd_pcm_writei()szóval ezért maradnék a bufsize-ig futó cilkusnál
[szerk: ] ja és a buflevel nem a listában lévő bájtok számát mutatja, hanem a benne lévő wav_buf-ok számát, azaz pl ha buflevel 16, akkor van benne 16*bufsize*sizeof(short) bájt
[Szerkesztve] -
Jester01
veterán
válasz
emitter #1685 üzenetére
Ez a bufferelés egy nagy káosz nekem. Nem igazán értem ki kivel van.
Elõször ott van ugye a buflevel. Gondolom ez mondja meg mennyi byte van már a bufferben. Utána van egy ciklus ami wi->bufsize-ig futAz snd_pcm_writei pedig már readbytes mennyiséget küld a hangkártyának.
-
Jester01
veterán
válasz
emitter #1685 üzenetére
Azért ugrik meg a procihasználat, mert megállított állapotban nyilván nem kellene a select writefds közé a socket. Hiszen hiába is tudnál írni a hálózatra ha egyszer nem akarsz. Szóval most a select rögtön visszatér, hogy hajrá küldjél adatot, te viszont nem csinálsz semmit. Vagyis ott pörög a szerencsétlen.
A többit még nézem, majd jövök -
emitter
őstag
vajon miért nem működik az én kis pufferelő lejátszóm? belerakom a short típusú wav-adatokat egy listába, majd megvárom, míg eléggé feltöltődik, ezután elkezdem lejátszani
------
list<short> wavList;
...
if( ctrl == PLAY ){
numbytes = recv(data_fd, wav_buf, wi->bufsize*sizeof(short), 0);
if (numbytes == -1) {
perror(''recv'');
exit(0);
}
if (numbytes == 0){ //a kliens befejezte a beszelgetest
break;
}
if(buflevel > 16){
for(i=0; i < wi->bufsize; i++){
wav_buf = wavList.front();
wavList.pop_front();
}
if(snd_pcm_writei (wi->playback_handle, wav_buf, readbytes) < 0) {
cout << ''\nFehler\n'';
exit(0);
}
buflevel--;
}
for(i=0; i < wi->bufsize; i++){
wavList.push_back(wav_buf);
}
buflevel++;
}
...
---------
szóval: megvárom, míg 16 db lejátszanivaló adag összegyűlik a listában, ezután rakom vissza a listából
ha nem használok listát biztonsági pufferként, akkor rendesen lejátsza, de nekem kéne puffer
a másik, hogy ha a kliensben lepausézom a lejátszást, hirtelen megugrik a procihasználat és ott is marad - pedig a serverben és a kliensben is select-tel figyelem a hálózati aktivitást, és az elvileg nem eszik procit..
a források:
server: [link]
kliens: [link]
szerk: a pause funkció még nem okés, de sztem csak azért nem, mert nem működik még a biztonsági puffer, így ha pause-zott állapotában kap a server egy Play-jelet, előbb küldené a puffert a hangkártyának, mint átérkezett volna a friss adag wav...
[Szerkesztve] -
Szsolt
tag
Sziasztok!
A következő c++ programot alkottam:
#include <iostream>
#include <vector>
using namespace std;
class Proba {
public:
vector <int> v;
Proba() {
for (int i=0; i<10; ++i)
v.push_back(i);
}
vector <int> getV() {
return v;
}
};
int main() {
Proba p;
for (int i=0; i<p.getV().size(); ++i)
printf(''%d '', p.getV());
printf(''\n'');
p.getV().pop_back(); // Ha itt p.v.pop_back()-t használok akkot töröl a vectorból
for (int i=0; i<p.getV().size(); ++i)
printf(''%d '', p.getV());
printf(''\n'');
return 0;
}
A probléma az, hogy ezt használbva: ''p.getV().pop_back();'' nem töröl a vectorból.
Mi a különbség a direk és a getV()-s hivatkozás közöt?
Üdv! -
Jester01
veterán
-
emitter
őstag
válasz
Jester01 #1679 üzenetére
nem igazán értem, ami gondolsz..
beraktam, vagy nem így kéne?
----------
FD_ZERO(&readfds);
FD_ZERO(&writefds);
FD_SET(STDIN, &readfds);
FD_SET(data_fd, &writefds);
while(!feof(handle)){
tv.tv_sec = 0;
tv.tv_usec = 0;
select(data_fd+1, &readfds, &writefds, NULL, &tv);
if( FD_ISSET(STDIN, &readfds) ){
cout << ''\nBillentyu lenyomva!\n'';
exit(1);
...
--------
mit jelent az hogy lehet írni a hálózatra? ezt nem értettem
szerk: ja elfelejtettem hogy így sem megy - hiába nyomom akár folyton az entert, nem lép ki a progiból
[Szerkesztve] -
emitter
őstag
újra a select()-tel vannak problémáim... mégpedig az, hogy túl nagy a minimum-időintervalluma (1 mikrosec.), amíg várakozik
nekem nagyon kicsi ideig kéne csak h megnézze az STDIN-t, különben nem tudja a progi elég gyorsan adagolni a hálózatra a wavot...
ja és mindez azért kéne, hogy tudjak wavjátszás közben pause-zni, stb.
most így selectelek:
---------
fd_set readfds;
struct timeval tv;
...
FD_ZERO(&readfds);
FD_SET(STDIN, &readfds);
while(!feof(handle)){
tv.tv_sec = 0;
tv.tv_usec = 1; // még 1 usec is nagyon sok idő neki
select(STDIN+1, &readfds, NULL, NULL, &tv);
if( FD_ISSET(STDIN, &readfds) ){
cout << ''\nBillentyu lenyomva!\n'';
return 0;
}
...//itt olvasok a wavból, és send()-elem el
------nagyon jó lenne, ha nem kéne lemondanom a lejátszás vezérléséről... szóval csak van erre vmi megoldás
-
emitter
őstag
válasz
emitter #1675 üzenetére
az az érzésem, hogy a send lényegesen gyorsabban küldi az adatokat, mint ahogy én fogadni meg közben lejátszani tudom... ez előfordulhat? mert csak 2-3x fut le a main loop a szervernél, azaz csak 2-3x írja ki, h ''readbytes: xx'', bár ezt is rosszul, mert csak az első kiírásnál helyes az adat..
-
emitter
őstag
válasz
emitter #1672 üzenetére
asszem megvan: a new hívás után ráállítottam még a data-t egy másik változó címére...
szóval pl ehelyett
data = &wi.channels;
ezt írom:
*data = wi.channels;
de így sem jó a dolog, éppúgy csak az első átvitt adat helyes, a több random
akkor mi történik, ha nem new-val rakok alá memót, hanem simán alátolom egy létező válozó címét - és ezután kiadok egy delete data; utasítást? ekkor csak leáll róla, vagy törli a wi.channels-t?
pl.
data = &wi.channels;
delete data; -
emitter
őstag
válasz
Jester01 #1671 üzenetére
ha egymás után többször írok ilyet:
-----
data = new int;
...
delete data;
-----
(előtte van egy int* data;), szal miért dob ilyet? a server progiban ugyanezt csinálom, ott nem ad hibát..
*** glibc detected *** double free or corruption (!prev): 0x0804b010 ***
felraktam a forrásokat -
emitter
őstag
válasz
Jester01 #1663 üzenetére
értem, köszi
ez egyre jobb.. teljesen kész vagyok: fordítom mindkét progit (server, kliens), ezután első futtatásra teljesen jól átjönnek az adtaok, minden OK, úgy ahogy szeretném
ezután második futtatásra már tök random cuccok érkeznek megez mitől lehet?!
csak az újrafordítás segít ezen..
na, felrakom a forrásokat, íme
server: [link]
kliens: [link] -
Jester01
veterán
-
emitter
őstag
válasz
Jester01 #1661 üzenetére
igazad volt, még így látatlanban is megtaláltad a hibát
most viszont már a send() és recv() hívásokkal vagyok bajban, mert kiküldök send-del egymás után 3 adatot (mindegyik más hosszúságú char*), majd ezeket szeretném recv-elni, ami nem sikerül.. az első adat rendben megérkezik, a többi viszont sehogy sem akar eredeti formájában megérkezni..
ha jól tudom, ezek a hívások blokkolnak, szóval olyan nem lehet, hogy elmulasztok egy adatcsomagot a szinkronizáció hiánya miatt, ugye?
a kódot azért nem raknám be, mert tele van mindenféle debug-kiíratásokkal, még nekem is nehéz átlátnide ha gondolod, belinkelhetem..
szóval elvileg előfordulhat olyan, hogy sendelek 1 csomagot, megérkezik (ezután a fogadó oldalon csinálok egy csomó mindent - emiatt elképzelhető, hogy a következő csomag még eközben érkezik meg, így a fogadó fél lecsúszik a fogadásáról? van ilyen - vagy az oprendszer eltárolja vmi bufferban a beérkezett csomagokat?) -
-
emitter
őstag
válasz
Jester01 #1659 üzenetére
sprintf() köszi! ezzel jó
viszont újabb értelmetlen dolog előtt állok, van ez a kódrészlet:
cout << ''elotte\n'' << endl;
fseek(handle, wi.fp, SEEK_SET);
cout << ''utana\n'' << endl;
//komment kezdete
sprintf( buf_int, ''%d'', wi.sample_rate);
i = strlen(buf_int);
if(send(data_fd, buf_int, i, 0) == -1){
perror(''send'');
exit(1);
}
sprintf( buf_int, ''%d'', wi.bits_per_sample);
i = strlen(buf_int);
if(send(data_fd, buf_int, i, 0) == -1){
perror(''send'');
exit(1);
}
//komment vege
cout << ''elotte\n'' << endl;
fseek(handle, wi.fp, SEEK_SET);
cout << ''utana\n'' << endl;
----------
namost ez a következőt csinálja:
elotte
utana
elotte
Szegmens hiba
ha viszont a ''komment kezdete'' és a ''komment vege'' közti részt kikommentelem, akkor nem ad hibát, hanem
elotte
utana
elotte
utanatelejesen értetlen vagyok..
-
Jester01
veterán
válasz
emitter #1658 üzenetére
A castolás nem konvertál, az (int)''1'' eredménye nem 1 lesz, hanem a stringre mutató pointer értéke. Stringbõl számot strtol, strtoul, strtod (hibakezelés miatt ajánlott) vagy az atoi, atol, atoll, atof illetve sscanf függvényekkel lehet. Visszafelé sprintf, snprintf.
-
emitter
őstag
linuxon hogyan tudok integerből, ill. short-ból char*-ot csinálni?
stdlib.h-beli itoa()-ra ''was not declared in this scope'' dob..
másik kérdés, hogy fordítva hogyan tudok shortot csinálni a char*-ból? integer megy egy sima (int) castolással, de short-ra nem engedi, merthogy elveszti a pontosságát a szám - ez logikus, de akkor hogyan csináljam -
Spyx
tag
válasz
emitter #1653 üzenetére
kössz a választ. de elfelejtettem a legfontosabbat. JAVA -ban van a kód.
az fseek -et ismertem, de az csak C-ben van. bocs a pontatlanságért
amikor megnyitom a file-t akkor még nem tudom hogymi lesz az a szám
egy cikluson belül számolódnak az adatok amikkel a sorokat töltöm fel és a végén a ciklus lefutásának a számát kellene az elejére írnom -
Spyx
tag
hali van egy kis problémám.
a következővel írok file-ba szöveget ( kif.print() )
PrintWriter kif=new PrintWriter(new BufferedWriter(new FileWriter(''feladat.ki'')));
a program során írok jó sok sort a feladat.ki-be. és mielőtt kilépnék a fileból még kéne írnom egy számot az első sorba. mivel tudom visszapozícionálni a kurzort az elejére??
Please help!! előre is köszi
Spyx -
ALI_G
veterán
gyors kéne vmi eccerű algoritmus wav fájl 2 mono csatornára való szétbontására. Nem baj ha nem vmi jó, csak elég ha vmi kezdeményezés. Sajna már nincs időm megcsinálni, elbasztam másra az időt. Szégyenlem is magam, hogy ilyet kell kérjem, mert mindenki csinálja meg maga.
Megköszönném ha vki segítene. Ja, occam-ba kell, de ha C-ben v java-ban jön a kód az is jó. Átírom. -
emitter
őstag
válasz
emitter #1646 üzenetére
most még annyit kéne alakítani rajta, hogy legyen egy olyan pufferem, aminek a szintjét nem engedem pl. 30% alá menni (ez jó lenne a hálózati sebesség-ingadozások ellen)
szóval ebbe a nagy-nagy pufferba kéne pakolni sok-sok ilyen listát.. namost ezt hogyan
[Szerkesztve] -
emitter
őstag
válasz
Jester01 #1643 üzenetére
hehe
télleg!
akkor azt hogyan oldjam meg, hogy a listába 4096bájt méretű elemeket pakoljak? merthogy nekem nem csak egy elem első bájtját kell átküldenem majd a hálózaton hanem mindet
vagy nem is kell 4096, de mondjuk 256 azért kellene..
Tyrael: nem tudom, nem lenne-e túl lassú tőle a dologde lehet h kipróbálom
[Szerkesztve] -
-
emitter
őstag
az hogyan lehet, hogy én egy list<short>-ba bele tudok gyömöszölni pl 4096 bájtot?
így csinálom:
...
list<short> myList;
short *buf;
...
bufsize=4096;
i = fread(buf, 1, bufsize, handle);
myList.push_back(*buf);
*buf=myList.front();
...
snd_pcm_writei (playback_handle, buf, tmp);
...
és jól lejátsza a cuccostszóval ezt hogyan?
-
emitter
őstag
hát én ebből azt szűrtem le, hogy van a ''data'' string a 40-es offsettől, majd 4 bájt SubChunkSize (nemtom miez), majd így a 48.ik offset-től kezdődik az igazi stream
következőképpen:
mintánként 2 bájt bal-, majd 2 bájt jobb csatorna (egy hexa-kód (szám, betű) 4bit - tehát ha egy minta 3c f2 24 f2, akkor ebből 2 bájt (3c f2) a bal csati, és 2 bájt ( 24 f2) a jobb csati)
nem műxik így? azt nem tudom, h ez a szabványos wav, de elvileg annak kell lenni, mert nem írták, h nem így lenne
[Szerkesztve] -
ALI_G
veterán
válasz
emitter #1638 üzenetére
igen, ezt én is ismerem, bár ennél van jobb is, ami viszont nincs ilyen részletes. [link] én ez alapján próbáltam szétbontani fejben. Van 1 példa is. Az a nagy kérdés most, hogy mitől függ hány byte-onként váltakoznak a csatornák adatai. Le van írva, de akárhányszor kibogozom, más jön ki...
tuti én vok a béna.
-
emitter
őstag
válasz
Jester01 #1635 üzenetére
köszi az észrevételeket, kijavítottam
viszont tényleg nemtom, h mitől nem bírja nromálisan átadni a FILE* mutatót, szal inkább azt csináltam, h bezárom a fájlt a fv végén, majd a main-ben újra megnyitomés seekelek oda ahol a stream kezdődik
most másfajta hibába ütköztem, de először megpróbálom kisakkozni a helyét..
ALI_G: nem tudom, én nem mentem bele ennyire mélyen
innen vettem a chunk-infókat, sztem megtalálod benne ami neked kell
[link] -
ALI_G
veterán
válasz
emitter #1634 üzenetére
Látom wav-val szórakázol
Nekem is kellene tudni, és nemtom jól értettem-e meg a leírását. 1 dolog amiben nem vagyok biztos, mégpedig az mitől függ, hogy (kizárólag csak stereo-t nézzük) a bal és jobb csatorna hány bájtonként váltják egymást az adat mezőben? esetleg egy példát is mellékelhetsz -
STibi_
csendes tag
válasz
Jester01 #1602 üzenetére
Kösz az ötletet, én is azt nézegettem lelkesen, hogy van-e valami használható kapcsolója a netstatnak. Mint ahogy írtam az volt a lényeg, hogy ne kelljen a (másik) monitort bámulni folyamatosan, hogy fent van-e valaki... Körbenéztem a neten, elég halott ötletek voltak, úgyhogy úgy csináltam meg, winexec-el kiküldöm 10 másodpercenként a netstat statisztikáját egy fájlba és azt nézegetem a progival. Így felcsatlakozásonként bead egy légvédelmi sziréna hangot.
Ökör egy megoldás, de a célnak megfelel.
-
Jester01
veterán
válasz
emitter #1634 üzenetére
Icipicit elrontottad. Elõször is betettél egy cout << ''\nloadWav OK\n''; sort a saját megtévesztésedre, mivel nem ellenõrzöd a visszatérési értéket és így akkor is OK-ot ír ha nem is ...
Másrészt a loadWav függvényben kevered az exit és a return használatát, bizonyos hibákra kilépsz másokra pedig 0-t adsz vissza.
Ugyanakkor van egy cout << ''\nftell: '' << ftell(handle); sor a loadWav végén ami nem fut le, ebbõl észrevehetted volna, hogy idõ elõtt visszatér a függvény. -
emitter
őstag
ha egy függvényen belül megnyitok egy fájl, majd a handle-jét átadom a főproginak paraméterben, az miért nem működik? hibát ad.. ez itten:
class wavInfo{
public:
...
FILE *handle;
...
};
int loadWav(char* filename, wavInfo &wi){
...
handle = fopen(filename, ''r'');
...
wi.handle = handle;
...
}
main(){
...
wavInfo *wi;
wi = new wavInfo();
loadWav(argv[1], *wi); //ez okésan lefut
cout << ''\nFilepos: '' << ftell(wi->handle); //majd erre már szegmenshibát dob
...
}
------------
lehet, h egy fv visszatérésekor bezáródik a fájl? -
Jester01
veterán
Igen, ez a tömb-pointer ekvivalencia miatt van. Jelen esetben írhattad volna db + 1 alakban is, csak ez kevésbé olvasható. Az a lényeg, hogy a második elemre mutató pointert kell átadni. Ezt vagy az & operátorral vagy pointer aritmetikával lehet. Egy elem olvasásakor az & operátor jobban kifejezi mi történik, több elem olvasásakor viszont éppen a pointer aritmetika a kifejezõbb (szvsz). A fordítónak persze édesmindegy.
-
Sytex
tag
My next question:
Melyik az a parancs C-ben amivel meg lehet szakitani a program futását? -
Jester01
veterán
Azért, mert a srand(time(NULL)) egy másodpercen belül ugyanarra az értékre inicializálja a véletlenszám generátort. Ha a progid indíthatják egy másodpercen belül többször, akkor más kezdőértéket kell keresni. Egy futás alatt viszont csak egyszer szabad meghívni a srandot. Tehát nem minden alkalommal amikor véletlenszámok kellenek.
MOD: ja és a leírás kifejezetten nem ajánlja az alsó bitek használatát (vagyis a maradékképzést)
[Szerkesztve] -
-
Sytex
tag
Előzmények itt : [link]
Módisítottam erre:
srand(time(NULL));
for(i=0;i<5;i++){
db=rand()/3000;
}
ugy néz ki most jó.
Ezt a RAND_MAX-ot én is olvastam, de ha megpróbálok neki értéket adni akkor a fordító ezt adja: the left hand of the assignment can't be assigned to
Egyéb ötlet?
MOD: a kódban a db után vagy egy [ i ] csak a forum kiszedi.
[Szerkesztve]
[Szerkesztve] -
-
emitter
őstag
miért van az, hogy ez a kód wav-lejátszás közben folyamatosan szaggat??
------
bufsize=44100;
buf=(short*)malloc(bufsize*sizeof(short));
while(!feof(handle)){
i = fread(buf, 1, bufsize, handle);
if(i < 0){
printf(''\nHiba fajlolvasas kozben!\n'');
exit(1);
}
printf(''\ni=%d\n'',i);
if((err = snd_pcm_writei (playback_handle, buf, bufsize)) < 0) {
fprintf (stderr, ''\nWrite to audio interface failed (%s)\n'',
snd_strerror (err));
exit (1);
}
}
-------
az, csak nem lehet az oka, hogy snd_pcm_writei() előtt van egy fread meg 2 if...
szóval mitől
ha kell, a teljes kód [link] -
v@n
csendes tag
Sziasztok!
Segítség kellene, hogy c-ben hogyan lehet az egérkezelést legegyszerübb módon megcsinálni...Ha valaki tud segíteni küldjön üzit a privbe.
Elöre is köszönöm -
nagyferi
csendes tag
Hello, a nav4all kijott egy ingyenes navigacios programmal mobilokra amelyik java alapokon mukodik es semmi koze symbian rendszerekhez. En nem ertek ezekhez nagyon, de ez valoban lehetseges? Eddog azt hittem hogy mobilra navigacio = symbian. Ha nincs symbian nincs navigacio?
-
csulok0000
csendes tag
Hi
van egy oldalam fórummal együt oda is írhattok
amúgy az érdekelne hogy Delphi rendszerben egy tlabelre kattintva hogy tudom behozni a windows alapértelmezet böngészőjét előre meghatározott címmel.
kösz!!!
www.kcs.dy.hu -
Miracle
senior tag
Sziasztok... de reg jartam itt
Most azert jottem, mert szuksegem lenne valamilyen normalis, viszonylag ujabb CORBA tutorialra/konyvre, es az sem baj ha ez specifikusan az ORBIX implementacioval foglalkozik. tud valaki ilyet adni nekem? -
mszilard
tag
Sziasztok!
Bajban vagyok: szükségem lenne objektum orientált modellezéssel kapcsolatos 5-8 oldalas kis házidolgozatra két rokonom részére. Valami gyakorlati leírás. TEhát nem az elmélet. Megkértek és semmit nem értek hozzá, de azért próbálkozok itt!
Tudom hogy csinálja meg mindenki maga, de hátha valaki megszám!
Köszönöm előre is! -
#25954560
törölt tag
válasz
Jester01 #1603 üzenetére
nem eleg az nvram irkalasa sajnos, mert akkor siman cat
dosemuig ertem, csak tudod a lustasaghatha csinalt mar ilyet vki. levelegtem az alaplap gyartojaval (specko cpci kartya) es ok mondtak h hasznaljam azt a bbs interface-t, kuldtek is egy dos-os .exe-t h muxik
elotte persze tudtak jol h linux ala kellene, szal most ki vagyok veluk segitve.
-
emitter
őstag
válasz
emitter #1599 üzenetére
van ez a fv:
/* Load a music file */
Mix_Music *myMix_LoadMUS(const char *file)
{
FILE *fp;
char *ext;
Uint8 magic[5], moremagic[9];
Mix_Music *music;
/* Figure out what kind of file this is */
fp = fopen(file, ''rb'');
if ( (fp == NULL) || !fread(magic, 4, 1, fp) ) {
if ( fp != NULL ) {
fclose(fp);
}
Mix_SetError(''Couldn't read from '%s''', file);
return(NULL);
}
if (!fread(moremagic, 8, 1, fp)) {
Mix_SetError(''Couldn't read from '%s''', file);
return(NULL);
}
magic[4] = '\0';
moremagic[8] = '\0';
fclose(fp);
/* Figure out the file extension, so we can determine the type */
ext = strrchr(file, '.');
if ( ext ) ++ext; /* skip the dot in the extension */
/* Allocate memory for the music structure */
music = (Mix_Music *)malloc(sizeof(Mix_Music));
if ( music == NULL ) {
Mix_SetError(''Out of memory'');
return(NULL);
}
music->error = 0;
#ifdef CMD_MUSIC
if ( music_cmd ) {
music->type = MUS_CMD;
music->data.cmd = MusicCMD_LoadSong(music_cmd, file);
if ( music->data.cmd == NULL ) {
music->error = 1;
}
} else
#endif
#ifdef WAV_MUSIC
/* WAVE files have the magic four bytes ''RIFF''
AIFF files have the magic 12 bytes ''FORM'' XXXX ''AIFF''
*/
if ( (ext && MIX_string_equals(ext, ''WAV'')) ||
((strcmp((char *)magic, ''RIFF'') == 0) && (strcmp((char *)(moremagic+4), ''WAVE'') == 0)) ||
(strcmp((char *)magic, ''FORM'') == 0) ) {
music->type = MUS_WAV;
music->data.wave = WAVStream_LoadSong(file, (char *)magic);
if ( music->data.wave == NULL ) {
Mix_SetError(''Unable to load WAV file'');
music->error = 1;
}
} else
#endif
#ifdef MID_MUSIC
/* MIDI files have the magic four bytes ''MThd'' */
if ( (ext && MIX_string_equals(ext, ''MID'')) ||
(ext && MIX_string_equals(ext, ''MIDI'')) ||
strcmp((char *)magic, ''MThd'') == 0 ||
( strcmp((char *)magic, ''RIFF'') == 0 &&
strcmp((char *)(moremagic+4), ''RMID'') == 0 ) ) {
music->type = MUS_MID;
#ifdef USE_NATIVE_MIDI
if ( native_midi_ok ) {
music->data.nativemidi = native_midi_loadsong((char *)file);
if ( music->data.nativemidi == NULL ) {
Mix_SetError(''%s'', native_midi_error());
music->error = 1;
}
} MIDI_ELSE
#endif
#ifdef USE_TIMIDITY_MIDI
if ( timidity_ok ) {
music->data.midi = Timidity_LoadSong((char *)file);
if ( music->data.midi == NULL ) {
Mix_SetError(''%s'', Timidity_Error());
music->error = 1;
}
} else {
Mix_SetError(''%s'', Timidity_Error());
music->error = 1;
}
#endif
} else
#endif
#ifdef OGG_MUSIC
/* Ogg Vorbis files have the magic four bytes ''OggS'' */
if ( (ext && MIX_string_equals(ext, ''OGG'')) ||
strcmp((char *)magic, ''OggS'') == 0 ) {
music->type = MUS_OGG;
music->data.ogg = OGG_new(file);
if ( music->data.ogg == NULL ) {
music->error = 1;
}
} else
#endif
#ifdef MP3_MUSIC
if ( (ext && MIX_string_equals(ext, ''MPG'')) ||
(ext && MIX_string_equals(ext, ''MP3'')) ||
(ext && MIX_string_equals(ext, ''MPEG'')) ||
magic[0]==0xFF && (magic[1]&0xF0)==0xF0) {
SMPEG_Info info;
music->type = MUS_MP3;
music->data.mp3 = SMPEG_new(file, &info, 0);
if(!info.has_audio){
Mix_SetError(''MPEG file does not have any audio stream.'');
music->error = 1;
}else{
SMPEG_actualSpec(music->data.mp3, &used_mixer);
}
} else
#endif
#if defined(MOD_MUSIC) || defined(LIBMIKMOD_MUSIC)
if ( 1 ) {
music->type = MUS_MOD;
music->data.module = MikMod_LoadSong((char *)file, 64);
if ( music->data.module == NULL ) {
Mix_SetError(''%s'', MikMod_strerror(MikMod_errno));
music->error = 1;
} else {
/* Stop implicit looping, fade out and other flags. */
music->data.module->extspd = 1;
music->data.module->panflag = 1;
music->data.module->wrap = 0;
music->data.module->loop = 0;
#if 0 /* Don't set fade out by default - unfortunately there's no real way
to query the status of the song or set trigger actions. Hum. */
music->data.module->fadeout = 1;
#endif
}
} else
#endif
{
Mix_SetError(''Unrecognized music format'');
music->error = 1;
}
if ( music->error ) {
free(music);
music = NULL;
}
return(music);
}
---------------
a végén halálozik el:
...
Mix_SetError(''Unrecognized music format'');
music->error = 1;
}
if ( music->error ) {
free(music);
music = NULL;
}
return(music);
}
szóval errort-t 1-re állítja, és ezért NULL-pointerrel tér vissza.. a kérdésem, hogy az #ifdef és #endif tagok mit csinálnak pontosan, kellenek ezek egyáltalán bele?
vagy van olyan elsőre szemet szúró dolog, ami miatt ez történik? -
#25954560
törölt tag
hali,
vedett modu/16 bites programozasrol valaki? bootolasi sorrendet szeretnek linux alatt valtoztatni, BIOS-ba lepes nem johet szoba. interfesz elmeletileg letezik a dologhoz, de hogy kezdjen hozza az ember fia?
koszi,
&rew
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Autóápolás, karbantartás, fényezés
- Autós topik
- iPhone topik
- Egyre jobban hisz az AI-képes szemüvegekben a Meta
- Milyen légkondit a lakásba?
- Apple MacBook
- AMD Navi Radeon™ RX 6xxx sorozat
- A fociról könnyedén, egy baráti társaságban
- Elektromos autók - motorok
- AliExpress tapasztalatok
- További aktív témák...
- EVGA SuperNOVA 750W GT 80 Plus Gold full moduláris tápegység / 53 hónap Alza.hu garancia
- Surface Laptop 4 Touch 13.5 Retina Ryzen7 4980U 4.4Ghz 16GB 512GB Radeon RX Vega8 Win11 Pro Garancia
- Gigabyte AORUS B550I PRO AX ITX Rev 1.2 / Beszámítás OK!
- HP 15 Zbook Studio G8 FHD IPS i7-11850H vPro 32GB 512GB SSD Nvidia A2000 Studio Win11 Pro Garancia
- Dell 14 Latitude 7420 FHD IPS i7-1185G7 4.8Ghz 16GB 512GB SSD Intel Iris XE Win11 Pro Garancia
- IPhone 15 128GB Zöld ÚJ! 12 Hó Jótállás!
- AKCIÓ! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- Lenovo 13 Core i3-7100 Cpu laptop eladó
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
- Bomba ár! HP 255 G7 - AMD A4 I 4GB I 128SSD I HDMI I 15,6" FHD I Radeon I HDMI I W11 I Cam I Gari!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest