- Fórumok
- Szoftverfejlesztés
- Programozás topic
- (kiemelt téma)
-
1700 - 1601
21046 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2023-12-13 06:18 Téma összefoglaló
Ú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] -
sghc_toma
senior tag
-
emitter
őstag
-
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
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] -
BlackV
őstag
-
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
-
BlackV
őstag
-
sghc_toma
senior tag
-
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ödik
emlé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
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
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 fut
Az snd_pcm_writei pedig már readbytes mennyiséget küld a hangkártyának. -
Jester01
veterán
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] -
Jester01
veterán
-
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! -
emitter
őstag
-
Jester01
veterán
-
emitter
őstag
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] -
Jester01
veterán
-
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
-
emitter
őstag
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
-
Jester01
veterán
-
emitter
őstag
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
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 -
Jester01
veterán
-
emitter
őstag
-
Jester01
veterán
-
emitter
őstag
-
Jester01
veterán
-
emitter
őstag
-
Jester01
veterán
-
emitter
őstag
é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 meg
ez 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
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átni
de 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?) -
Jester01
veterán
-
emitter
őstag
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
utana
telejesen értetlen vagyok.. -
Jester01
veterán
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
-
Jester01
veterán
-
emitter
őstag
-
Spyx
tag
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 -
emitter
őstag
-
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
-
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. -
ALI_G
veterán
-
Jester01
veterán
-
emitter
őstag
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
-
Tyrael
senior tag
-
emitter
őstag
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 dolog
de lehet h kipróbálom
[Szerkesztve] -
Jester01
veterán
-
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 cuccost
szó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
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. -
Jester01
veterán
-
emitter
őstag
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
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
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
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
-
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
-
Jester01
veterán
-
Sytex
tag
-
Tyrael
senior tag
-
Sytex
tag
My next question:
Melyik az a parancs C-ben amivel meg lehet szakitani a program futását? -
Sytex
tag
-
Jester01
veterán
-
Sytex
tag
-
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
-
emitter
őstag
-
Sytex
tag
-
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
-
Jester01
veterán
-
emitter
őstag
-
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] -
Miracle
senior tag
-
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
-
emitter
őstag
-
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
nem eleg az nvram irkalasa sajnos, mert akkor siman cat

dosemuig ertem, csak tudod a lustasag
hatha 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
-
emitter
őstag
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? -
Jester01
veterán
-
Jester01
veterán
-
#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
-
1700 - 1601
21046 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Programozás topic
- (kiemelt téma)
● olvasd el a téma összefoglalót!
- Milyen egeret válasszak?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Háztartási gépek
- Medence topik
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Kertészet, mezőgazdaság topik
- iPhone topik
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Apple MacBook
- További aktív témák...
- ASUS RTX 5070 Prime OC garis
- DELL Latitude 5520 Intel Core I7-1185G7, 32 GB, 512 SSD MAGYAR VILÁGÍTÓ BILLENTYŰZET
- PlayStation Portal - Midnight Black - Garanciával
- Új ASUS RYZEN 5 7600X GAMER ERŐMŰ PC 32Gb DDR5 512GB SSD NVIDIA RTX 3070TI 8Gb DDR6 750W TÁP 2ÉV GAR
- REDRAGON K530 TKL Draconic Compact RGB Red Switch
- ÚJ/BONTATLAN Surface Pro 7+ i5-1135G7 16G 256GB 1 év garancia
- BESZÁMÍTÁS! ASUS H510M i5 11400F 16GB DDR4 500GB SSD RX 6600 8GB Rampage SHIVA FSP 500W
- Új AKRACING CORE EX gamer szék dobozában, BONTATLAN!
- BESZÁMÍTÁS! Asrock B450M R7 2700 16GB DDR4 512GB SSD GTX 1660 Super 6GB ZALMAN S4 FSP 500W
- Jó ÁRON ELADÓ! Üzleti HP Elitebook 1040 G9 4g modem! / i5-1245U 16GB 256GB FHD+
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

NEM röhögünk ki senkit, ha bizonytalan vagy, privizhetsz is 




emlékeszem, régebben már kipróbáltam ezt a kiírófv-t, és ment
most már nem eszik prockót



télleg!
Ökör egy megoldás, de a célnak megfelel.

