/* Martin Asser Hansen (mail@maasha.dk) Copyright (C) 2008 - All right reserved */
-#define BED_BUFFER 1024
+#define BED_BUFFER 2048
+#define BED_CHR_MAX 16
+#define BED_QID_MAX 256
+#define BED_ITEMRGB_MAX 16
+#define BED_BLOCKSIZES_MAX 256
+#define BED_QBEGS_MAX 256
-struct bed_entry3
-{
- char *chr;
- uint chr_beg;
- uint chr_end;
-};
-
-struct bed_entry12
+struct _bed_entry
{
+ int cols;
char *chr;
uint chr_beg;
uint chr_end;
char *q_id;
- float score;
+ int score;
char strand;
uint thick_beg;
uint thick_end;
char *q_begs;
};
-void bed_get_entry( FILE *fp, struct bed_entry3 *bed, int cols );
-void bed_split( char *string, struct bed_entry12 *bed, int cols );
+typedef struct _bed_entry bed_entry;
+bed_entry *bed_entry_new( const int cols );
+bed_entry *bed_entry_get( FILE *fp, const int cols );
+list_sl *bed_entries_get( char *path, const int cols );
+void bed_entry_put( bed_entry *entry, int cols );
+void bed_entries_put( list_sl *entries, int cols );
+int cmp_bed_sort_beg( const void *a, const void *b );
+int cmp_bed_sort_chr_beg( const void *a, const void *b );
+int cmp_bed_sort_chr_strand_beg( const void *a, const void *b );