Lines Matching refs:delay
51 gt68xx_delay_buffer_init (GT68xx_Delay_Buffer * delay,
72 delay->line_count = line_count = delay_count + 1;
73 delay->read_index = 0;
74 delay->write_index = delay_count;
76 delay->mem_block = (SANE_Byte *) malloc (bytes_per_line * line_count);
77 if (!delay->mem_block)
79 DBG (3, "gt68xx_delay_buffer_init: no memory for delay block\n");
84 delay->mem_block[i] = i % 256;
86 delay->lines =
88 if (!delay->lines)
90 free (delay->mem_block);
92 "gt68xx_delay_buffer_init: no memory for delay line pointers\n");
97 delay->lines[i] =
98 (unsigned int *) (delay->mem_block + i * bytes_per_line);
104 gt68xx_delay_buffer_done (GT68xx_Delay_Buffer * delay)
106 if (delay->lines)
108 free (delay->lines);
109 delay->lines = NULL;
112 if (delay->mem_block)
114 free (delay->mem_block);
115 delay->mem_block = NULL;
121 #define DELAY_BUFFER_WRITE_PTR(delay) ( (delay)->lines[(delay)->write_index] )
123 #define DELAY_BUFFER_SELECT_PTR(delay,dist) \
124 ((delay)->lines[((delay)->read_index + (dist)) % (delay)->line_count])
126 #define DELAY_BUFFER_READ_PTR(delay) ( (delay)->lines[(delay)->read_index ] )
128 #define DELAY_BUFFER_STEP(delay) \
131 (delay)->read_index = ((delay)->read_index + 1) % (delay)->line_count; \
132 (delay)->write_index = ((delay)->write_index + 1) % (delay)->line_count; \