I2S slave read details

This is for the Arduino MKR Zero board. I'm sending 24 bit, 2 channel, standard I2S data into the board on the I2S designated pins using the I2S library calls and this code:

I2S.begin(I2S_PHILIPS_MODE, 24);

int sample32[2]; // int is 32 bits for SAMD proc, L & R channels

while (I2S.read(sample32, 2) == -1); // read an I2S frame, 2 32 bit words

  1. [u]How are the I2S 24 bits aligned into the 32 bit int?[/u] Is it MSB aligned?

  2. I2S.begin(I2S_PHILIPS_MODE, 24) puts it in I2S slave mode. [u]How does it know that the data is for read and to make the SD0 I2S data line an input?[/u]