Korkad nybörjare försöker förstå libsndfile
Postat: 10 jun 2010, 06:10
Har för ett tag sedan laddat ner libsndfile, ett bibliotek för läsning och skrivning av ljudfiler av olika format. Syftet är givetvis att jag själv tänkte skriva ett och annat litet miniprogram för att manipulera sådana på ett eller annat sätt.
Jag installerade libsndfile via pakethanteraren, men jag nöjer mig ju inte med att bara ha biblioteket installerat; jag vill ju förstå det också, därför har jag i studiesyfte även laddat ner källkoden. Har laddat ner version 1.0.17, så det var ett tag sedan, men mina frågor är ganska allmäna, så det spelar nog inte så stor roll.
Så jag har kikat runt i källkoden och funnit att jag inte förstår vissa saker:
I vissa filer anges:
Dock finns ingen fil som heter så, däremot:
Vad innebär det där extra tillägget ”.in”? Är det denna fil som åsyftas i #include-raden ovan?
I sndfile.hh finns raden:
Givetvis har jag missuppfattat allt som vanligt, men jag har fått för mig att när man skriver h-filer inom <> så lär h-filen ifråga finnas installerad i systemet redan, men hur kan den göra det innan man installerat libsndfile?
Sedan försöker jag förgäves att hitta var typen sf_count_t är definierad, men jag är nog på gång nu, tror jag. Annars, om någon vet, är det bara att skrika till. Har i alla fall hittat följande rader i sndfile.h.in:
Så det är väl bara att leta vidare, antar jag… Fast jag undrar ju varför det är så farligt att i kommentarerna ange exakt vad definitionen finns. När jag söker på ”loff_t” som innehåll i fil i mappen med källkoden får jag ingen träff heller, för övrigt. Antar att den står att finna någon annanstans, då… men var?
Har nog fler frågor i ämnet, men kommer inte på mer just nu. Återkommer.
Jag installerade libsndfile via pakethanteraren, men jag nöjer mig ju inte med att bara ha biblioteket installerat; jag vill ju förstå det också, därför har jag i studiesyfte även laddat ner källkoden. Har laddat ner version 1.0.17, så det var ett tag sedan, men mina frågor är ganska allmäna, så det spelar nog inte så stor roll.
Så jag har kikat runt i källkoden och funnit att jag inte förstår vissa saker:
I vissa filer anges:
Kod: Markera allt
#include "sndfile.h"
Kod: Markera allt
sndfile.h.in
sndfile.hh
I sndfile.hh finns raden:
Kod: Markera allt
#include <sndfile.h>
Sedan försöker jag förgäves att hitta var typen sf_count_t är definierad, men jag är nog på gång nu, tror jag. Annars, om någon vet, är det bara att skrika till. Har i alla fall hittat följande rader i sndfile.h.in:
Kod: Markera allt
/* The following typedef is system specific and is defined when libsndfile is.
** compiled. sf_count_t can be one of loff_t (Linux), off_t (*BSD),
** off64_t (Solaris), __int64_t (Win32) etc.
*/
typedef @TYPEOF_SF_COUNT_T@ sf_count_t ;
Har nog fler frågor i ämnet, men kommer inte på mer just nu. Återkommer.